Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

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.

Example 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>