Вопрос по шаблонизации
Здравствуйте. Как я понял в чанках нельзя выполнять код. Но оказалось, что можно в чанк вписать не html а именно php-код и выполнить его из сниппета с помощью функции php
eval('текст чанка')
Сначала чанк можно выполнитьб как обычно, а потом уже сам результат
eval('результат обработки чанка')
Вопрос — это как-то повлияет на безопасность?
Хотелось использовать стандартную шаблонизацию modx, но ее несколько не хватает. А использовать fenom — не хотелось бы.
И какие еще шаблонизаторы можно использовать в modx? (fenom, smarty, twig, blitz — уже смотрел, не совсем подходят, по скорости наверное только fenom подойдет и то...)
eval('текст чанка')
Сначала чанк можно выполнитьб как обычно, а потом уже сам результат
eval('результат обработки чанка')
Вопрос — это как-то повлияет на безопасность?
Хотелось использовать стандартную шаблонизацию modx, но ее несколько не хватает. А использовать fenom — не хотелось бы.
И какие еще шаблонизаторы можно использовать в modx? (fenom, smarty, twig, blitz — уже смотрел, не совсем подходят, по скорости наверное только fenom подойдет и то...)
Комментарии: 5
А почему fenom не хочется использовать? Есть какие то объективные причины?
Использование фенома и файловых элементов для разработки из IDE это практически промышленный стандарт в MODX уже года два как. Шаблонизатор существенно упрощает работу, за счет удобных условий, циклов, встроенных модификаторов. Прирост по скорости значительный. Ну и кроме того сильно уменьшается число чанков.
Использование фенома и файловых элементов для разработки из IDE это практически промышленный стандарт в MODX уже года два как. Шаблонизатор существенно упрощает работу, за счет удобных условий, циклов, встроенных модификаторов. Прирост по скорости значительный. Ну и кроме того сильно уменьшается число чанков.
Иногда даже с феном не очень удобно, когда слишком много логики на странице. Тогда в помощь плагины на события типа OnLoadWebDocument, OnWebPagePrerender. Там можно получить и переназначить все поля ресурса. А можно установить плейсхолдеры $modx->setPlaceholder('name', value); И в чанке или шаблоне уже не городить конструкции из if'ов, а вывести [[+my_placeholder]], или {$_pls['my_placeholder']} который будет содержать результат обработки данных плагином.
Я пока не использовал fenom в полномасштабном варианте, просто изучаю вопрос. У fenom парсер использует {}, что не есть хорошо (javascript использует то же самое). Одновременно использовать парсер modx и fenom не рекомендуется (скорость нестабильна, а мне скорость важна). Стандартный парсер чанков в modx имеет несколько слабоватые возможности, поэтому я и попытался использовать другой. Но как оказалось быстрых парсеров php раз два и обчелся. Многие из них тоже используют {}
Хотелось чтобы парсер был быстрый, простой, не мешал в modx… это в идеале
ps. Но похоже все равно придется в основном использовать чисто fenom (без стандартного парсера modx), в некоторых случаях можно и eval…
Хотелось чтобы парсер был быстрый, простой, не мешал в modx… это в идеале
ps. Но похоже все равно придется в основном использовать чисто fenom (без стандартного парсера modx), в некоторых случаях можно и eval…
«У fenom парсер использует {}, что не есть хорошо (javascript использует то же самое).»
А что в этом страшного?
А что в этом страшного?
Ставите пробел после { и fenom игнорирует всё что после скобки. Нужно просто пробелы выставить в скриптах после {. Также все что внутри {ignore}{/ignore} тоже будет проигнорировано.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.