AgelxNash/DocLister

Символ ` в полях ресурсов

Closed this issue · 6 comments

Если в pagetitle (возможно и других) присутствует вертикальная тильда (`), возникает ошибка и сценарий на $modx->runSnippet('DocLister'... прерывается без каких либо пояснений.

Хотя нет, пояснение всё же есть: The nest of values are hard to read. Please use three different quotes

Скорей всего это моя ошибка, но чтобы это понять пришлось изрядно постараться, так как сценарий вызывался через ajax, при этом даже излюбленный phpstorm+debugger не был в состоянии сделать процесс вылова ошибки приятным занятием.

Напишу для тех кто придёт сюда из гугл. Следует избегать использование кавычек там, где они не нужны, например:

[[DocLister?tpl=`[[item?id=[+id+] &content=[+content+]... ]]`

Вместо:

[[DocLister?tpl=`[[item?id=`[+id+]` &content=`[+content+]`... ]]`
[[DocLister?tpl=`[[item?id='[+id+]' &content='[+content+]'... ]]`
[[DocLister?tpl=`[[item?id="[+id+]" &content="[+content+]"... ]]`

Это позволит редактору использовать перечисленные выше кавычки во всех возможных полях ресурсов (tv).

Я проверял все, всё ок

Всё же есть косяк мной рекомендованного варианта, так что единственный метод, который я вижу, это выбрать, какой тип кавычки не использовать в полях, и предупредить об этом редакторов.

Просто если выбрать ' или " то использование их в полях приводит лишь к обрезанию строки до этих символов, в то время как вертикальная тильда прерывает сценарий. Вероятно она прерывает так как использовалась в моём случае дважды, соответственно в поле инициируется третий раз.

В общем я прерываю дискуссию.