Достался на продвижение и обслуживание корпоративный сайт, работающий под управлением HOST-CMS одной из самых первых версий. Возникла необходимость установить на сайт счётчик яндекс-метрики. Но при его установке возникла ошибка: «syntax error: unrecognized tag ‘var’«. Почему возникает эта ошибка и как её побороть, расскажу в этом посте.Как известно, ранние версии движка HOST-CMS работают на шаблонах Smarty. Одной из особенностей этого шаблонизатора является его особенная обработка фигурных скобок, которые включены непосредственно в шаблон. Компилятор Smarty обрабатывает эти скобки «как свои», в результате чего возникают ошибки вида
- Fatal error: Uncaught exception ‘SmartyCompilerException’ with message ‘Syntax Error in template «…/
- string(92) «Smarty error: [in tpl_head:12 line 36]: syntax error: unrecognized tag ‘var’ (Smarty_Compiler.class.php, line 261)»
а также нарушается целостность html-вёрстки сайта. В исходном коде же яндекс-метрики как раз содержатся фигурные скобки и «просто так» вставить код счётчика не получится.
Что делать? Нужно всего лишь обернуть код счётчика в специальные теги
{literal}…{/literal},
где вместо многоточия — ваш код.
Также для эранирования фигурных скобок в скриптах можно использовать и конструкцию
{ldelim}{rdelim}
Важный момент: смотрите внимательно, какой именно шаблон отвечает за вывод кода счётчика Метрики. Для неподготовленного пользователя это не всегда очевидно.
На этом сегодня всё. Успехов!