Les fonctions de templatesvoid smarty_function_namearray $paramsobject &$smarty
Tous les attributs passés aux fonctions de template a partir du template
sont contenus dans le tableau associatif $params.
Vous pouvez accéder a ces valeurs soit directement, par exemple
$params['start'], soit en utilisant
extract($params) pour les importer dans la table
des symboles.
Le retour de la fonction sera substituée a la balise de fonction
du template (fonction fetch par exemple). Sinon,
la fonction peut simplement accomplir une autre tGche sans sortie
(la fonction assign par exemple)
Si la fonction a besoin d'assigner des variables aux templates ou d'utiliser
d'autres fonctionnalités fournies par Smarty, elle peut recevoir un
objet $smarty pour cela.
Référez-vous aussi a :
register_function(),
unregister_function().
fonction de plugin avec sortie
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* Fichier : function.eightball.php
* Type : fonction
* Nom : eightball
* Rôle : renvoie une phrase magique au hasard
* -------------------------------------------------------------
*/
function smarty_function_eightball($params, &$smarty)
{
$answers = array('Yes',
'No',
'No way',
'Outlook not so good',
'Ask again soon',
'Maybe in your reality');
$result = array_rand($answers);
return $answers[$result];
}
?>
peut être utilisée dans le template de la faton suivante :
Question: Will we ever have time travel?
Answer: {eightball}.fonction de plugin sans sortie
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* Fichier : function.assign.php
* Type : fonction
* Nom : assign
* Purpose : assigne une valeur a une variable de template
* -------------------------------------------------------------
*/
function smarty_function_assign($params, &$smarty)
{
extract($params);
if (empty($var)) {
$smarty->trigger_error("assign: missing 'var' parameter");
return;
}
if (!in_array('value', array_keys($params))) {
$smarty->trigger_error("assign: missing 'value' parameter");
return;
}
$smarty->assign($var, $value);
}
?>