Evitare il parsing di Smarty
A volte è desiderabile o necessario che Smarty ignori sezioni che altrimenti
verrebbero analizzate. Un esempio tipico è l'incorporazione di codice Javascript
o CSS in un template. Il problema nasce dal fatto che questi linguaggi utilizzano
i caratteri { e } che per Smarty sono i delimitatori di default.
La cosa più semplice sarebbe evitare queste situazioni tenendo il codice Javascript
e CSS separato in appositi file e usando i collegamenti standard dell'HTML per
recuperarli.
E' possibile includere contenuto letterale usando blocchi di questo tipo:
{literal} .. {/literal}.
Potete anche usare, in modo simile alle entità HTML, {ldelim},{rdelim} oppure {$smarty.ldelim},{$smarty.rdelim}
per visualizzare i delimitatori senza che Smarty ne analizzi il contenuto.
Spesso risulta semplicemente conveniente cambiare il $left_delimiter ed il
$right_delimiter di Smarty.
Esempio 3-6. esempio di cambio dei delimitatori
<?php
$smarty = new Smarty; $smarty->left_delimiter = '<!--{'; $smarty->right_delimiter = '}-->'; $smarty->assign('foo', 'bar'); $smarty->display('example.tpl');
?>
|
Dove example.tpl è:
<script language="javascript">
var foo = <!--{$foo}-->;
function dosomething() {
alert("foo is " + foo);
}
dosomething();
</script> |
|