Smarty解析的转义
有时,有需要也有必要使Smarty忽略某些它本来会解析的段落。一个经典的例子是模板中嵌入的Javascript或CSS代码。问题在于,这些语言使用{和}字符,而它们本来是Smarty的缺省分隔符。
要彻底避免这些问题的最简单的方法是将你的Javascript和CSS代码放入独立的文件中,然后使用常规的HTML方法存取。
包含字符串内容可以使用{literal}..{/literal}块。类似于HTML实体用法,你可以用{ldelim},{rdelim}或{$smarty.ldelim}来显示当前的分隔符。
通常,直接修改Smarty的$left_delimiter和$right_delimiter会更方便。
例子3-7. 改变分隔符例子
<?php
$smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->';
$smarty->assign('foo', 'bar'); $smarty->assign('name', 'Albert'); $smarty->display('example.tpl');
?>
|
而模板为:
Welcome <!--{$name}--> to Smarty
<script language="javascript">
var foo = <!--{$foo}-->;
function dosomething() {
alert("foo is " + foo);
}
dosomething();
</script> |
|