Fonctions de compilation
Les fonctions de compilation sont appelées durant la compilation du template.
Elles sont utiles pour injecter du code PHP ou du contenu "statique variant
avec le temps" (bandeau de pub par ex.). Si une fonction de compilation et
une fonction personnalisée
ont le même nom, la fonction de compilation a priorité.
mixed smarty_compiler_name (string $tag_arg, object &$smarty)
Les fonctions de compilation ont deux paramètres : une chaîne contenant
la balise - en gros, tout, depuis le nom de la fonction jusqu'au délimiteur de fin - et
l'objet Smarty. Elles sont censées retourner le code PHP qui doit être
injecté dans le template compilé.
Exemple 16-6. Fonction de compilation simple
<?php /* * Smarty plugin * ------------------------------------------------------------- * Fichier : compiler.tplheader.php * Type : compilation * Nom : tplheader * Rôle : Renvoie l'en-tête contenant le nom du fichier * source et le temps de compilation. * ------------------------------------------------------------- */ function smarty_compiler_tplheader($tag_arg, &$smarty) { return "\necho '" . $smarty->_current_file . " compiled at " . date('Y-m-d H:M'). "';"; } ?>
|
Cette fonction peut-être appelée depuis le template comme suivant :
{* cette fonction n'est executée que lors de la compilation *}
{tplheader} |
Le code PHP résultant dans les templates compilés ressemblerait à ça :
<?php echo 'index.tpl compiled at 2002-02-20 20:02'; ?>
|
|
Voir aussi :
register_compiler_function() et
unregister_compiler_function().