Les fonctions de templates
void smarty_function_name (array $params, object &$smarty)
Tous les attributs
passés aux fonctions de template à partir du template
sont contenus dans le tableau associatif $params.
Le retour de la fonction sera substituée à la balise de fonction
du template (fonction
{fetch}
par exemple). Sinon, la fonction peut simplement accomplir une autre tâche 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 celà.
Exemple 16-1. 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 façon suivante :
Question: Will we ever have time travel?
Answer: {eightball}. |
Exemple 16-2. 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); } ?>
|
|
Voir aussi :
register_function() et
unregister_function().