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

filtres de pré-compilation/filtres de post-compilation

Les filtres de pré-compilation et les filtres de post-compilation ont des concepts très proches. Ils différent dans leur exécution, plus précisément dans le moment où ils sont exécutés.

string smarty_prefilter_name( $source,  
  &$smarty);  
string $source;
object &$smarty;
 

Les filtres de pré-compilation sont utilisés pour transformer la source d'un template juste avant la compilation. Le premier paramètre passé à la fonction de filtre de pré-compilation est la source du template, éventuellement modifiée par d'autres filtres de pré-compilations. Le plugin est supposé retourner la source modifiée. Notez que cette source n'est sauvegardée nulle part, elle est seulement utilisé pour la compilation.

string smarty_postfilter_name( $compiled,  
  &$smarty);  
string $compiled;
object &$smarty;
 

Les filtres de post-compilation sont utilisés pour modifier la sortie du template (le code PHP) juste après que la compilation a été faîte mais juste avant que le template ne soit sauvegardé sur le système de fichiers. Le premier paramètre passé à la fonction de filtre de post-compilation est le code du template compilé, éventuellement déja modifié par d'autres filtres de post-compilations. Le plugin est censé retourner la version modifiée du code.

Example 16.7. Plugin de filtre de post-compilation


<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Fichier :  prefilter.pre01.php
 * Type :     filtre de pré-compilation
 * Nom :      pre01
 * Rôle :     Passe les balises HTML en minuscules.
 * -------------------------------------------------------------
 */
 function smarty_prefilter_pre01($source, &$smarty)
 {
     return preg_replace('!<(\w+)[^>]+>!e', 'strtolower("$1")', $source);
 }
?>

  

Example 16.8. Plugin de filtre de post-compilation


/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Fichier :  postfilter.post01.php
 * Type:      filtre de post-compilation
 * Nom :      post01
 * Rôle :     Renvoie du code qui liste toutes les variables
 *            du template.
 * -------------------------------------------------------------
 */
 function smarty_postfilter_post01($compiled, &$smarty)
 {
     $compiled = "<pre>\n<?php print_r(\$this->get_template_vars()); ?>\n</pre>" . $compiled;
     return $compiled;
 }
?>

  

Voir aussi register_prefilter(), unregister_prefilter() register_postfilter() et unregister_postfilter().