Escaping Smarty Parsing
It is sometimes desirable or even necessary to have Smarty ignore sections it
would otherwise parse. A classic example is embedding Javascript or CSS code in
a template. The problem arises as those languages use the { and } characters
which are also the default
delimiters for Smarty.
The simplest thing is to avoid the situation altogether by separating your Javascript
and CSS code into their own files and then using standard HTML methods to access them.
Including literal content is possible using {literal} .. {/literal} blocks.
Similar to HTML entity usage, you can use {ldelim},{rdelim} or {$smarty.ldelim}
to display the current delimiters.
It is often convenient to simply change Smarty's $left_delimiter and
$right_delimiter.
Example 3-7. changing delimiters example
<?php
$smarty = new Smarty; $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; $smarty->assign('foo', 'bar'); $smarty->display('example.tpl');
?>
|
Where example.tpl is:
<script language="javascript">
var foo = <!--{$foo}-->;
function dosomething() {
alert("foo is " + foo);
}
dosomething();
</script> |
|
See also escape modifier