Manuel Smarty

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

Exemple 16-3. Plugin modificateur simple

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

  1. <?php
  2. /*
  3. * Smarty plugin
  4. * -------------------------------------------------------------
  5. * Fichier : modifier.capitalize.php
  6. * Type :    modificateur
  7. * Name :    capitalize
  8. * Rôle :    met une majuscule aux mots d'une phrase
  9. * -------------------------------------------------------------
  10. */  
  11. function smarty_modifier_capitalize($string)  
  12. { 
  13.    return ucwords($string);  
  14. }  
  15. ?> 

Exemple 16-4. Un plugin modificateur un peu plus complexe

  1. <?php
  2. /*
  3. * Smarty plugin
  4. * -------------------------------------------------------------
  5. * Fichier : modifier.truncate.php
  6. * Type :    modificateur
  7. * Name :    truncate
  8. * Rôle :    Tronque une chaene a une certaine longueur si
  9. *         nécessaire, la coupe optionnellement au milieu
  10. *         d'un mot et ajoute la chaene $etc
  11. * -------------------------------------------------------------
  12. */  
  13. function smarty_modifier_truncate($string, $length = 80, $etc = '...', 
  14.                         $break_words = false)  
  15. { 
  16.    if ($length == 0) 
  17.       return ''; 
  18.  
  19.    if (strlen($string) > $length) { 
  20.       $length -= strlen($etc); 
  21.       $fragment = substr($string, 0, $length+1); 
  22.       if ($break_words) 
  23.          $fragment = substr($fragment, 0, -1); 
  24.       else 
  25.          $fragment = preg_replace('/\s+(\S+)?$/', '', $fragment); 
  26.       return $fragment.$etc; 
  27.    } else 
  28.       return $string;  
  29. }  
  30. ?> 

Voir aussi : register_modifier() et unregister_modifier().


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