Voir le
post anglais correspondant.
A de multiples reprises j’ai vu des solutions pour parser le contenu du document pour le modifier avant son ajout dans le template.
Les exemples que j’ai en tête sont les
notes de bas de pages,
Wordreplace pour remplacer les mots à la volée, un
système de pagination utilisant la balise {{break}}
La solution principale consiste à appeler un plugin lors du chargement du document. Mais alors il me semble que ce plugin est appelé indistinctement pour tous les documents du site, ce qui n’est pas forcément (même si ce n’est pas génant) ce que l’on souhaite.
J’avais initialement pensé à un snippet qui viendrait remplacer le placeholder [*contenu*]. Ce snippet retourne le contenu du document modifié
comme on le souhaite. Je trouve cette solution peu pratique car il faut un template pour chaque type de sortie que l’on souhaite.
Ce que j’aimerai serait de pouvoir associé le code modificateur (disons un snippet) au document. Il s’agit donc d’un nouveau champ dans la base de donnée. Lors de l’insertion du contenu dans [*contenu*], modx vérifie si ce champ contient du code ou une référence à un snippet. Si oui il applique la transformation demandée. Si non il ne fait rien. Ensuite seulement on insère le contenu du document dans [*contenu*].