Comment loguer les handles d’une page Magento ?

Pour loguer les handles du moteur de templating magento, il suffit d’ajouter cette ligne au fichier app/code/core/Mage/Core/Controller/Varien/Action.php – après le dispatchEvent de rendu de layout :

Mage::log($this->getLayout()->getUpdate()->getHandles());

Voir ci-dessous – ligne 23 de l’extrait de code de ce fichier:

public function renderLayout($output='')
    {
        $_profilerKey = self::PROFILER_KEY . '::' . $this->getFullActionName();

        if ($this->getFlag('', 'no-renderLayout')) {
            return;
        }

        if (Mage::app()->getFrontController()->getNoRender()) {
            return;
        }

        $this->_renderTitles();

        Varien_Profiler::start("$_profilerKey::layout_render");


        if (''!==$output) {
            $this->getLayout()->addOutputBlock($output);
        }

        Mage::dispatchEvent('controller_action_layout_render_before');
        Mage::dispatchEvent('controller_action_layout_render_before_'.$this->getFullActionName());
        //ajout
        Mage::log($this->getLayout()->getUpdate()->getHandles());
        //fin ajout
        #ob_implicit_flush();
        $this->getLayout()->setDirectOutput(false);

        $output = $this->getLayout()->getOutput();
        Mage::getSingleton('core/translate_inline')->processResponseBody($output);
        $this->getResponse()->appendBody($output);
        Varien_Profiler::stop("$_profilerKey::layout_render");

        return $this;
    }

Il est évident qu’il ne faut pas modifier le coeur de magento, cette ligne est à supprimer dès qu’elle ne vous est plus utile.

De plus un module de débug peut très facilement être développé afin d’afficher les handles d’une page. Ce module sera prochainement disponible sur ce site.

Tweet about this on Twitter0Share on Facebook0Share on Google+0

Michael

Originally trained as a sound engineer, I reinvented myself in computer development. In 2010, I got my professional degree as a developer in computer science and I I've started studying Magento framework. I quickly developed my skills in that area at Brand Online Commerce web agency. Today, I work at Soon Agency on Magento ecommerce websites.

Vous aimerez également...

2 Responses

  1. Tu peux aussi ajouter une ligne un poil similaire tout en bas du fichier index.php !
    Ça te donnera le même résultat et en plus ça sera directement à la fin de ton HTML.

    Cette ligne :
    Zend_Debug::dump(Mage::app()->getLayout()->getUpdate()->getHandles());

  2. Michaël Joseph dit :

    C’est vrai cette méthode est bien plus simple. On peut même l’utiliser où bon nous semble. Le log que je propose est plus intrusif et au core du sujet :).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>