Manchmal ist es wünschenswert, dass Smarty Teile eines Templates nicht parst. Dies ist zum Beispiel der Fall, wenn Javascript oder CSS im Template eingebettet werden. Da diese Sprachen selbst { und } nutzen, erkennt Smarty diese als Start- beziehungsweise End-Tags.
Der einfachste Weg, dieses Problem zu umgehen, ist das Auslagern des betreffenden Javascript oder CSS Codes in eigene Dateien.
Um solche Inhalte trotzdem im gleichen Template einzubetten, können Sie {literal} .. {/literal} Blöcke verwenden. Die aktuell benutzten Trennzeichen können Sie mit {ldelim}, {rdelim}, {$smarty.ldelim} und {$smarty.rdelim} ausgeben.
Manchmal ist es auch einfacher, die Trennzeichen selbst zu ändern: $left_delimiter und $right_delimiter definieren diese.
Example 3.7. Beispiel wie die Trennzeichen angepasst werden
<?php
$smarty = new Smarty;
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';
$smarty->assign('foo', 'bar');
$smarty->assign('name', 'Albert');
$smarty->display('example.tpl');
?>
example.tpl würde somit wie folgt aussehen:
Willkommen bei Smarty, <!--{$name}-->!
<script language="javascript">
var foo = <!--{$foo}-->;
function dosomething() {
alert("foo is " + foo);
}
dosomething();
</script>
Siehe auch: Escape Modifikator
