Les filtres, que l’on utilise pour modifier le résultat d’une balise, ont un chargement particulier par rapport aux autres fonctions surchargeables de SPIP.
En effet, il est possible à la fois d’utiliser n’importe quelle fonction PHP, mais aussi de déclarer explicitement qu’une fonction est un filtre. Voici donc l’ordre dans lequel SPIP va chercher lorsqu’on utilise un filtre |modifier
:
-
filtre_modifier(…)
-
filtre_modifier_dist(…)
-
modifier(…)
Il est donc possible de surcharger une fonction PHP pré-existante pour modifier son comportement lorsqu’elle est appelée en tant que filtre (par exemple pour échanger l’ordre des arguments). Et cette surcharge est elle-même surchargeable une seconde fois, sur le même principe que les autres fonctions _dist
.