Le funzioni di compilazione sono chiamate solo durante la compilazione del template. Sono utili per inserire nel template codice PHP o contenuto statico dipendente dal momento (ad es. l'ora). Se esistono una funzione di compilazione e una funzione personalizzata registrate sotto lo stesso nome, la funzione di compilazione ha la precedenza.
mixed smarty_compiler_name( |
$tag_arg, | |
&$smarty); |
string $tag_arg;object &$smarty;Alla funzione di compilazione vengono passati due parametri: la stringa che rappresenta l'argomento tag - fondamentalmente, tutto dal nome della funzione fino al delimitatore finale, e l'oggetto Smarty. Ci si aspetta che la funzione restituisca il codice PHP da inserire nel template compilato.
See also register_compiler_function(), unregister_compiler_function().
Example 16.6. semplice funzione di compilazione
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File: compiler.tplheader.php
* Type: compiler
* Name: tplheader
* Purpose: Output header containing the source file name and
* the time it was compiled.
* -------------------------------------------------------------
*/
function smarty_compiler_tplheader($tag_arg, &$smarty)
{
return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';";
}
?>
Questa funzione può essere chiamata dal template in questo modo:
{* questa funzione viene eseguita solo al momento della compilazione *}
{tplheader}
Il codice PHP risultante nel template compilato sarà qualcosa di questo tipo:
<?php
echo 'index.tpl compiled at 2002-02-20 20:02';
?>
