Voila :
Le plus souvent les plugins sont utilisés comme ça (cf doc Modx sur les plugins) :
$words = array("snippet", "template"); // words to filter
$e = &$modx->Event;
switch ($e->name) {
case "OnWebPagePrerender":
$o = &$modx->documentOutput; // get a reference of the output
$o = str_replace($words,"<b>[filtered]</b>",$o);
break;
default :
return; // stop here - this is very important.
break;
}
C’est à dire que lors de l’évènement "OnWebPagePrerender" on récupère le contenu de "documentOutput" et on le manipule.
Or OnWebPagePrerender est le dernier évènement avant l’envoi au navigateur et à cette étape documentOutput contient la compilation du template de la page et de son contenu (Tv [*content*]).
C’est pas génant si on se borne à remplacer des placeholdes spécifiques, par contre lors de la création du plugin FootNote je souhaitais ajouter à la fin du contenu de ma page la liste des notes.
Il fallais donc que j’effectue mon traitement des notes avant que le template et le Content ne soient assemblés.
Pour cela il faut activer le plugin avant l’évènement "OnWebPagePrerender", cad à l’évènement "OnLoadWebDocument".
Quant au contenu à traité à cette étape on accède au Content en utilisant $modx->documentObject[’content’]
Que l’on peux manipuler puis parser.
D’ou le code suivant :
$words = array("snippet", "template"); // words to filter
$e = &$modx->Event;
switch ($e->name) {
case "OnLoadWebDocument":
$o = &$modx->documentObject['content'];
//traitement du Content avant qu'il ne fusionne avec le template
$o = str_replace($words,"<b>[filtered]</b>",$o);
break;
default :
return;
break;
}
heu ... on fait comment pour éditer un titre