Ошибка Smarty из за вставки js скрипта. Проблемы в H-script

Думаю многие, кто хоть раз работал с H-script, нарывались на такую ситуацию когда нужно вставить js код (например счетчик Яндекс Метрика или Google аналитики) и вместо своего сайта видели белый экран с синтаксической ошибкой Smarty. Как правило тут нас спасает тег Smarty — {literal}, но это не единственный выход!

Данная проблема довольно часто встречается в H-script (HSbuilder) или другой CMS использующей шаблонизатор Smarty — оно и правильно, ведь это ошибка синтаксиса самого смарти.

Что же так не нравится смарти!? Ответ прост: фигурные скобки конфликтуют с синтаксисом разделителей. Фигурные скобки выглядят так:

{ }

Сама ошибка за частую выглядит так:

Fatal error: Uncaught exception ‘SmartyCompilerException’ with message ‘Syntax Error in template «tpl/ru/top.tpl on line 30 «}).css …….

Если взглянуть на ошибку, то «tpl/ru/top.tpl» — это путь до файла в котором ошибка, line 30 — это 30я строка в блокноте, если ваш блокнот не показывает номера строк — это плохой блокнот (установите например notepad++). Сразу после указания номера строки вам показывают место в котором происходит данная синтаксическая ошибка смарти.

Что делать в таком случае? Можно применить тег {literal}, можно воспользоваться одиночными тегами {rdelim} и {ldelim}. Как все это делается покажу подробнее в видео:

| 17.01.2019 | Автор: Jack | Комменты: 0 | Просмотры: 130

Добавить комментарий

Ваш e-mail не будет опубликован.