Smarty Parsing umgehen
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.
Beispiel 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