Chapter 16. Etendre Smarty avec des plugins

Table of Contents

Comment fonctionnent les plugins
Conventions de nommage
Ecrire des plugins
Les fonctions de templates
Modificateurs
Fonctions de blocs
Fonctions de compilation
filtres de pré-compilation/filtres de post-compilation
Filtres de sortie
Ressources
Insertions

La version 2.0 a introduit l'architecture de plugin qui est utilisée pour pratiquement toutes les fonctionnalités personnalisables de Smarty. Ceci comprend :

A part pour les ressources, la compatibilité avec les anciennes façons d'enregistrer les fonctions de gestion avec l'API register_ est conservée. Si vous n'avez pas utilisé cette API et que vous avez à la place directement modifié les variables de classes $custom_funcs, $custom_mods et d'autres, vous devez alors modifier vos scripts pour utiliser l'API ou convertir vos fonctionnalités personnalisées en plugins.

Comment fonctionnent les plugins

Les plugins sont toujours chargés à la demande. Seuls les modificateurs de variables, les ressources, etc invoqués dans les scripts de templates seront chargés. De plus, chaque plugin n'est chargé qu'une fois, et ce même si vous avez plusieurs instances de Smarty qui tournent dans la même requête.

Les filtres de post/pré-compilation et les filtres de sortie sont des cas un peu spéciaux. Comme ils ne sont pas mentionnés dans les templates, ils doivent être déclarés ou chargés explicitement via les fonctions de l'API avant que le template ne soit exécuté. L'ordre dans lequel les filtres multiples d'un même type sont exécutés dépend de l'ordre dans lequel ils sont enregistrés ou chargés.

Le répertoire de plugin peut être une chaîne de caractères contenant un chemin ou un tableau contenant de multiples chemins. Pour installer un plugin, placez-le simplement dans un de ces dossiers et Smarty l'utilisera automatiquement.