Предотвращение обработки Smarty
Иногда необходимо, чтобы Smarty не обрабатывал часть шаблона,
которая должна по умолчанию обрабатываться. Классическим примером
такой ситуации является встраивание Javascript или CSS-кода в
шаблон. Проблема появляется из-за того, что эти языки используют
символы { и }, которые так же используются в качестве
разделителей
для Smarty.
Самым простым решением является избежание этой ситуации путём выноса Javascript'а
и CSS-кода в отдельные файлы и использования стандартных методов HTML для доступа к ним.
Дословное включение контента возможно при помощи блоков {literal} .. {/literal}.
Подобно тому, как вы используете HTML-сущности ( и т.п.), вы можете
использовать {ldelim},{rdelim} или {$smarty.ldelim}
для отображения текущих разделителей.
Порой бывает удобно просто изменить свойства $left_delimiter и
$right_delimiter
в объекте Smarty.
Пример 3-7. Изменение разделителей
<?php
$smarty = new Smarty; $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; $smarty->assign('foo', 'bar'); $smarty->assign('name', 'Albert'); $smarty->display('example.tpl');
?>
|
Шаблон example.tpl:
Welcome <!--{$name}--> to Smarty
<script language="javascript">
var foo = <!--{$foo}-->;
function dosomething() {
alert("foo is " + foo);
}
dosomething();
</script> |
|
См. также модификатор escape