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