Manuel Smarty

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

  1. <?php
  2. /*
  3. * Smarty plugin
  4. * -------------------------------------------------------------
  5. * Fichier : function.eightball.php
  6. * Type :    fonction
  7. * Nom :    eightball
  8. * Rôle :    renvoie une phrase magique au hasard
  9. * -------------------------------------------------------------
  10. */  
  11. function smarty_function_eightball($params, &$smarty)  
  12. { 
  13.    $answers = array('Yes', 
  14.                'No', 
  15.                'No way', 
  16.                'Outlook not so good', 
  17.                'Ask again soon', 
  18.                'Maybe in your reality'); 
  19.  
  20.    $result = array_rand($answers); 
  21.    return $answers[$result];  
  22. }  
  23. ?> 

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

  1. <?php
  2. /*
  3. * Smarty plugin
  4. * -------------------------------------------------------------
  5. * Fichier : function.assign.php
  6. * Type :    fonction
  7. * Nom :    assign
  8. * Purpose : assigne une valeur a une variable de template
  9. * -------------------------------------------------------------
  10. */  
  11. function smarty_function_assign($params, &$smarty)  
  12. { 
  13.    extract($params); 
  14.  
  15.    if (empty($var)) { 
  16.       $smarty->trigger_error("assign: missing 'var' parameter"); 
  17.       return; 
  18.    } 
  19.  
  20.    if (!in_array('value', array_keys($params))) { 
  21.       $smarty->trigger_error("assign: missing 'value' parameter"); 
  22.       return; 
  23.    } 
  24.  
  25.    $smarty->assign($var, $value);  
  26. }  
  27. ?> 

Voir aussi : register_function() et unregister_function().


Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique