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().
