Existe-t-il un moyen d’obtenir le rendu complet de la page avant de revenir au navigateur? Je veux obtenir la pleine page (de <html>
à </html>
), remplace quelques pseudo variables et retourne à la version modifiée par l'utilisateur. Je peux le faire en utilisant index.php mais j'ai l’air moche.
Peut-être il y a un rappel comme "sur après la page rendue"?
Pour éditer directement l'intégralité de la sortie HTML, créez un plug-in système avec l'événement onAfterRender
. Utilisez la méthode getBody()
de l'application pour obtenir le contenu et setBody()
pour enregistrer le contenu modifié.
defined('_JEXEC') or die;
plgSystemExample
{
protected $app;
public function onAfterRender()
{
if ($this->app->getDocument()->type !== 'html')
{
return;
}
$body = $this->app->getBody();
//do modifications to $body here
$this->app->setBody($body);
}
}
Mais si le contenu que vous souhaitez remplacer se trouve uniquement à l'intérieur des éléments de contenu (par exemple, des codes courts dans des articles), créez un plug-in de contenu avec l'événement onContentPrepare
et modifiez uniquement le texte de l'article.