Шаблонизатор Fenom
Шаблонизатор Fenom в MODx
Шаблонизатор Fenom
Поддержка шаблонизатора Fenom появилась в pdoTools с версии 2.0, после чего он стал требовать PHP 5.3+.
Он работает гораздо быстрее, чем родной modParser, и если вы перепишите свой чанк так, что в нём не будет ни одного тега MODx, то modParser и вовсе не будет запускаться. При этом, конечно, одновременная работа и старых тегов, и новых в одном чанке допускается.
На обработку шаблонизатором влияют следующие системные настройки:
- pdotools_fenom_default — включает обработку через Fenom чанков pdoTools. Включено по умолчанию.
- pdotools_fenom_parser — включает обработку шаблонизатором всех страниц сайта. То есть, не только чанков, но и шаблонов.
- pdotools_fenom_php — включает поддержку PHP функций в шаблонизаторе. Очень опасная функция, так как любой менеджер получит доступ к PHP прямо из чанка.
- pdotools_fenom_modx — добавляет системные переменные
{$modx}
и{$pdoTools}
в шаблоны Fenom. Тоже очень опасно — любой менеджер может управлять объектами MODx из чанков. - pdotools_fenom_options — JSON строка с массивом настроек согласно официальной документации. Например:
{"auto_escape":true,"force_include":true}
- pdotools_fenom_cache — кэширование скопмилированных шаблонов. Имеет смысл только для сложных чанков на рабочих сайтах, по умолчанию отключено.
Итак, по умолчанию Fenom включен для работы только в чанках, которые проходят через pdoTools. Это вполне безопасно и менеджеры системы не получают никаких дополнительных возможностей, кроме более удобного синтаксиса и высокой скорости работы.
Включение pdotools_fenom_parser позволяет использовать синтаксис Fenom прямо в контенте документов и шаблонах страниц, но есть один нюанс — шаблонизатор может неверно реагировать на фигурные скобочки, которые в MODx очень любят. Как результат вы будете получать примерно такую ошибку:
(ERROR @ /public_html/core/components/pdotools/model/pdotools/pdotools.class.php : 582) Unexpected token 'm' in expression in file:chunks/_counters/metrika.tpl line 3, near '{(m' <- there
Решение проблемы я описал в этой статье.
Если вы планируете включить Fenom глобально для всего сайта, вам нужно проверить, на всех ли страницах он нормально работает.
Время запросов: 0,1129 s
Количество запросов: 24
Источник: cache