Вставка JS и CSS кода в шаблон

Seopirat

Admin
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
21 Фев 2017
Сообщения
2.169
Реакции
1.556
Баллы
113
Вставка JS кода в шаблоны MSE производится обычным способом в код шаблона. Однако, в некоторых случаях могут происходить конфликты с разделителями, из-за особенностей синтаксиса Smarty.

Например такой код может вызвать ошибку шаблонизатора:
Код:
<script type="text/javascript">
VK.init({apiId: xxxxxxx});
</script>
Smarty, встретив конструкцию {apiId: xxxxxxx} попробует обработать его как тег шаблона, так же, как тег {$title}

Для разрешения такого конфликта можно отформатировать код:
Код:
<script type="text/javascript">
VK.init({
apiId: xxxxxxx
});
</script>
Теперь шаблонизатор не будет обрабатывать данную конструкцию и выведет ее в шаблон в первоначальном виде. Так же можно воспользоваться тегами {literal}{/literal}. Текст, находящийся между этими тегами не будет интерпритироваться шаблонизатором и будет обработан буквально.
Код:
{literal}
<script type="text/javascript">
VK.init({apiId: xxxxxxx});
</script>
{/literal}
Такой же способ можно использовать для вставки CSS:
Код:
{* включаем этот стиль... в качестве эксперимента *}
<style type="text/css">
{literal}
/* это интересная идея для этого раздела */
.madIdea{
border: 3px outset #ffffff;
margin: 2 3 4 5px;
background-color: #001122;
}
{/literal}
</style>
<div class="madIdea">With smarty you can embed css in the template</div>
 
Сверху Снизу