Smarty und Parsen ausschalten

Hallo,

wie kann ich Teile eines Scriptes aus dem Parser herauskommentieren. Ich habe zwar unten stehendes Beispiel gefunden aber bei mri funktioneirt das irgendwie nicht. Außerdem verstehe ich nicht warum s.u. um $fo ausmaskiert wird und um die "}" nicht. Mein Code am Ende


<?php

$smarty
= new Smarty;
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';
$smarty->assign('foo', 'bar');
$smarty->display('example.tpl');

?>


example.tpl würde somit wie folgt aussehen:
<script language="javascript">var foo = <!--{$foo}-->;function dosomething() { alert("foo is " + foo);}dosomething();</script> <!--{
<script>
onloads.push( registerAjaxStuff );
function registerAjaxStuff()
{
ajaxEngine.registerRequest( 'getPersonInfo', 'ajax_person_info' );
ajaxEngine.registerAjaxElement( 'personInfo' );
}

function getPersonInfo(selectBox)
{
var nameToLookup = selectBox.value.split(",");
var firstName = nameToLookup[1].substring(1);
var lastName = nameToLookup[0];

ajaxEngine.sendRequest( 'getPersonInfo',
"firstName=" + firstName,
"lastName=" + lastName );
}
</script>
}-->
 
Hi, es gibt eine viel einfacherer Methode das Parsen von Smarty zum umgehen, ohne die Delimiter umzustellen, wobei das umstellen um auf HTML-Kommentare nicht gerade die optimal Lösung ist ;)

Um das Parsing für Bestimmte Code-Abschnitte (JavaScript, CSS...) zu umgehen, gibt es die literal-Funktion
 
Zurück