Les fonctions de templates void smarty_function_name array $params object &$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); } ?>