Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Les fonctions de templates

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