What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
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()
.