Напишите нам в WhatsApp
+7(906) 943-40-17
Сохраните этот номер в контактах и вы сможете написать нам в WhatsApp.
Или оставьте номер и мы сами напишем вам в WhatsApp
Условиями о персональных данных
Кнопка закрыть
Спасибо!
Спасибо, что оставили заявку.
Мы обработаем вашу заявку и обязательно позвоним!
Кнопка закрыть
Форма заявки
Оставьте ваши контакты,
мы обязательно с вами свяжемся
Ваше имя
Номер телефона (Перезвоним Вам)
Комментарий
Отправляя форму вы соглашаетесь с политикой конфиденциальности
пн-вс с 9:00 до 21:00
Почта: hello@redbe.ru
Уже есть сайт?
Сделаем бесплатный аудит с точки зрения маркетинга и SEO

MODX Fenom — что это, как подключить и использовать

Fenom — быстрый и гибкий PHP-шаблонизатор, который в MODX используется через компонент pdoTools. Он компилирует шаблон в PHP-код и исполняет его за один проход, за счёт чего сложные чанки и крупные списки рендерятся быстрее и предсказуемее. Для разработчиков это удобный синтаксис, наследование шаблонов, модификаторы и безопасный доступ к данным сайта.

Зачем Fenom в MODX и чем он отличается

  • Один проход без рекурсии — Fenom не «дожёвывает» плейсхолдеры циклами, как это делает стандартный парсер, а подставляет значения сразу.
  • Производительность — шаблоны компилируются в PHP и кэшируются, что особенно заметно на листингах и каталоге.
  • Чистый, понятный синтаксис — условия, циклы, фильтры, наследование блоков.
  • Безопасные переменные — в MODX доступны служебные объекты для безопасных операций (например, получение ресурса, вызов сниппета).
На практике переход на Fenom часто сокращает время рендеринга больших чанков и упрощает логику шаблонов без «лесов» из фильтров.

Как правильно подключить Fenom в MODX

  1. Установите pdoTools через пакет-менеджер MODX.
  2. Fenom в чанках включён по умолчанию — настройка pdotools_fenom_default активирует синтаксис Fenom в чанках и шаблонах, которые обрабатывает pdoTools.
  3. Чтобы обрабатывать Fenom на всей странице, включите системную настройку pdotools_fenom_parser (режим «site-wide»). Этот режим продвинутый: Fenom запускается на этапе финальной обработки страницы.
  4. Проверка/переключение парсера страницы: при необходимости задайте в системных настройках parser_class = pdoParserparser_class_path к классу pdoTools). В новых версиях pdoTools это обычно уже выставлено автоматически.
  5. Не включайте опасные опции без необходимости: pdotools_fenom_php (чистый PHP в чанках) и pdotools_fenom_modx (полный доступ к { $modx } ) — для продвинутых сценариев и только на доверенных проектах.

Важно: смешанный синтаксис (MODX-теги вместе с Fenom) допустим, но медленнее. Для максимальной скорости старайтесь писать чанк целиком на Fenom.

Быстрый старт: базовые примеры Fenom в MODX

Задача Пример (Fenom) Комментарий
Вывод плейсхолдера { $pagetitle } Аналог MODX Fenom — что это, как подключить и использовать / [[+pagetitle]].
Условие { if $longtitle } { $longtitle } { else } { $pagetitle } { /if } Тернарный вариант: { $longtitle ?: $pagetitle } .
Цикл { foreach $rows as $row } { $row.title } { /foreach } Классический foreach по массиву.
TV с точкой в имени { $_pls['product.color'] } Через $_pls для плейсхолдеров с точками/дефисами.
Вызов сниппета { '!pdoResources' | snippet : ['parents' => 2, 'limit' => 10] } Через фильтр snippet с параметрами массивом.
Вставка чанка { $_modx->getChunk('Card', $row) } Безопасный доступ к методам для вывода чанков.

Практический пример: список новостей на Fenom

 { '!pdoPage' | snippet : [
  'element' => 'pdoResources',
  'parents' => 5,
  'limit' => 12,
  'tpl' => '@INLINE <article class="news"><h3> { $pagetitle } </h3><p> { $introtext } </p></article>',
  'includeTVs' => 'teaser,thumb',
  'showLog' => 0,
  'toPlaceholder' => 'news_list'
] } 
 { 'news_list' | placeholders } 
 { 'page.nav' | placeholders } 

Здесь pdoPage запускает pdoResources, результаты складываются в плейсхолдер news_list, а Fenom аккуратно подставляет переменные в шаблоне карточки.

Модификаторы и фильтры

  • Строковые операции: { $pagetitle | upper } , { $introtext | truncate:180 } .
  • Даты: { $createdon | date_format:'%d.%m.%Y' } или собственные модификаторы сниппетов (например, dateAgo).
  • Сниппеты как модификаторы: добавляйте их через параметр сниппета (&fenomModifiers) или список в настройке pdotools_fenom_modifiers.

Лучшие практики и подводные камни

  • Старайтесь избегать микса синтаксисов. Полностью переписывайте чанк на Fenom — это быстрее и предсказуемее.
  • Режим «на всю страницу» (pdotools_fenom_parser) включает Fenom на этапе финальной обработки. В нём каждое условие выполняется при каждом запросе, а фигурные скобки в JSON могут ломать парсинг. Вставляйте пробел после { в JS/JSON либо оборачивайте проблемные блоки в { ignore } ... { /ignore } .
  • Безопасность: не включайте pdotools_fenom_php и pdotools_fenom_modx на проектах с редакторами контента без тех. экспертизы.
  • Статика и кэш: храните сложные шаблоны в @FILE и включайте кэш Fenom для продакшена (pdotools_fenom_cache).

Типовые сценарии миграции на Fenom

  1. Начните с чанк-листингов: карточки каталога, новости, меню — перепишите на Fenom.
  2. Замените вложенные фильтры MODX на модификаторы Fenom, где это уместно.
  3. Перенесите вычисления из шаблонов в сниппеты, а Fenom оставьте для разметки.
  4. Постепенно откажитесь от смешанного синтаксиса на ключевых чанках.
  5. Только при необходимости включайте site-wide режим и тщательно тестируйте.

Когда Fenom особенно полезен

  • Каталоги с пагинацией и фильтрами: много однотипных карточек.
  • Блоги/СМИ: сотни элементов на странице, вывод отложенных блоков.
  • Лендинги с условиями показа блоков, вариативные шаблоны.

Нужно внедрить Fenom и ускорить проект? 👉 Рассмотрите профессиональную разработку сайтов на MODX — поможем настроить pdoTools, оптимизировать шаблоны и сократить TTFB.

FAQ

Fenom включён сразу после установки pdoTools?

Да, синтаксис Fenom в чанках включён по умолчанию. Для обработки всей страницы включите настройку pdotools_fenom_parser.

Нужно ли ставить pdoParser как парсер системы?

В актуальных версиях pdoTools он как правило включается сам. При необходимости задайте parser_class= pdoParser и parser_class_path к классу pdoTools.

Опасно ли включать pdotools_fenom_php и pdotools_fenom_modx?

Да, эти опции дают больше прав шаблонам. Включайте их только на контролируемых проектах и понимайте риски.

Можно смешивать MODX-теги и Fenom?

Можно, но это медленнее. Рекомендуется писать чанк целиком на Fenom для максимальной скорости.