smarty template engine
Thursday, November 20, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


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

<?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}.

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




 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.