Get Smarty

Donate

Paypal

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

Modificateurs

Les modificateurs sont de petites fonctions appliquées à une variable de template avant qu'elle ne soit affichée ou utilisée dans un autre contexte. Les modificateurs peuvent être chaînés entre eux.

mixed smarty_modifier_name( $value,  
  $param1);  
mixed $value;
[mixed $param1, ...];
 

Le premier paramètre passé au modificateur est la valeur sur laquelle le modificateur est supposé opérer. Les autres paramétres peuvent être optionnels, dépendant de quel genre d'opération doit être effectué.

Le modificateur doit retourner le résultat de son exécution.

Example 16.3. Plugin modificateur simple

Ce plugin est un alias d'une fonction PHP. Il n'a aucun paramètre supplémentaires.


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Fichier :  modifier.capitalize.php
 * Type :     modificateur
 * Name :     capitalize
 * Rôle :     met une majuscule aux mots d'une phrase
 * -------------------------------------------------------------
 */
function smarty_modifier_capitalize($string)
{
    return ucwords($string);
}
?>

  

Example 16.4. Un plugin modificateur un peu plus complexe


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Fichier :  modifier.truncate.php
 * Type :     modificateur
 * Name :     truncate
 * Rôle :     Tronque une chaene a une certaine longueur si
 *            nécessaire, la coupe optionnellement au milieu
 *            d'un mot et ajoute la chaene $etc 
 * -------------------------------------------------------------
 */
function smarty_modifier_truncate($string, $length = 80, $etc = '...',
                                  $break_words = false)
{
    if ($length == 0)
        return '';

    if (strlen($string) > $length) {
        $length -= strlen($etc);
        $fragment = substr($string, 0, $length+1);
        if ($break_words)
            $fragment = substr($fragment, 0, -1);
        else
            $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment);
        return $fragment.$etc;
    } else
        return $string;
}
?>

  

Voir aussi : register_modifier() et unregister_modifier().

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors