web-dev-qa-db-fra.com

Comment obtenir le rendu complet de la page avant de revenir au navigateur?

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.

4
Sharky