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

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

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors