void smarty_function_name( |
$params, | |
&$smarty) ; |
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à.
Example 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}.
Example 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()
.