Name
register_function() — Déclare dynamiquement des plugins de fonction de templates
Description
void register_function(string name,
mixed impl,
bool cacheable,
mixed cache_attrs);
Il faut passer en paramètres le nom de la fonction de templates, suivi par le nom de la fonction PHP qui l'implémente.
La fonction PHP de callback function
peut être soit :
Une chaîne de caractères contenant la fonction
name
Un tableau sous la forme
array(&$object, $method)
où&$object
est une référence d'objet et$method
une chaîne contenant le nom de la méthodeUn tableau sous la forme
array($class, $method)
où$class
est le nom de la classe et$method
est une méthode de la classe.
Les paramètres cacheable
et
cache_attrs
peut être omis dans la
plupart des cas. Voir Contrôler la mise en cache des sorties des Plugins
pour plus d'informations concernant cette utilisation.
Example 13.23. Exemple avec register_function()
<?php $smarty->register_function('date_now', 'print_current_date'); function print_current_date ($params) { extract($params); if(empty($format)) $format="%b %e, %Y"; echo strftime($format,time()); } ?>
Où le template est :
{date_now} {* ou, formaté différemment *} {date_now format="%Y/%m/%d"}
Voir aussi
unregister_function()
et
les plugins de fonction.