- Регистрация
- 21 Фев 2017
- Сообщения
- 2.168
- Реакции
- 1.556
- Баллы
- 113
Вставка JS кода в шаблоны MSE производится обычным способом в код шаблона. Однако, в некоторых случаях могут происходить конфликты с разделителями, из-за особенностей синтаксиса Smarty.
Например такой код может вызвать ошибку шаблонизатора:
Smarty, встретив конструкцию {apiId: xxxxxxx} попробует обработать его как тег шаблона, так же, как тег {$title}
Для разрешения такого конфликта можно отформатировать код:
Теперь шаблонизатор не будет обрабатывать данную конструкцию и выведет ее в шаблон в первоначальном виде. Так же можно воспользоваться тегами {literal}{/literal}. Текст, находящийся между этими тегами не будет интерпритироваться шаблонизатором и будет обработан буквально.
Такой же способ можно использовать для вставки CSS:
Например такой код может вызвать ошибку шаблонизатора:
Код:
<script type="text/javascript">
VK.init({apiId: xxxxxxx});
</script>
Для разрешения такого конфликта можно отформатировать код:
Код:
<script type="text/javascript">
VK.init({
apiId: xxxxxxx
});
</script>
Код:
{literal}
<script type="text/javascript">
VK.init({apiId: xxxxxxx});
</script>
{/literal}
Код:
{* включаем этот стиль... в качестве эксперимента *}
<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>