Оглавление

Почему не работает тег ignore

Переписывая родные теги MODx на Fenom или при работе с pdoParser, разработчики часто встречаются с ошибкой, которую генерирует шаблонизатор Fenom. Сергей Шлоков в своей статье — [Fenom] Почему не работает тег ignore, подробно расписал механику работы pdo парсера и объяснил, что именно вызывает ошибку.

Если front-end вашего сайта лег (белая страница или ошибка 500), а в логах вы встречаете подобные ошибки:

(ERROR @ /public_html/core/components/pdotools/model/pdotools/pdotools.class.php : 582) Unexpected token '&' in expression in deebf8d3b231815d0668e2aa47868e7d line 133, near '{&' <- there

или

(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

это значит что вы либо не использовали тег ignore, либо он не работает, не производится игнорирование тегов, которые заключены в фигурные скобки.

Варианты решения проблемы:

Есть несколько вариантов избавиться от этой ошибки:

Обрамляем код в тег ignore

Первый вариант решения проблемы — заключить ваш код в тег фенома ignore.

{ignore}
    {ваш код}
{/ignore}

Решение от автора сайта modzone

Если первый вариант не помог, то в статье по ссылке выше, есть два варианта решения. 

  1. Указать в шаблоне кэшируемый тег [[*content]] вместо {$_modx->resource.content}.
  2. Перенести блок с тегом {ignore} в ресурс (зачастую такие теги размещают в чанках). 

Пробелы между фигурными скобками

На случай если два варианта выше не помогли или не подошли, есть еще один. Он немного костыльный, но по большому счету ничего ужасного в нем нет. Необходимо поставить пробелы между фигурными скобками:

{ ваш код }

В этом случае тег ignore не нужен.