2010-11-08 10 views
0

dans le fichier template.phtml il ya une ligne de code qui se réfère au contenu, en utilisant getChildHtml ('content')?> qui echos sur le contenu et les divs contenant, je souhaite accéder à ce code brut donc je peut insérer certaines données personnalisées, mais pour la vie de moi ne peut pas trouver où il est ?! J'ai trouvé la classe Mage_Page_Block_Html dans le noyau, mais je ne vois pas le code html qu'il lance!

Merci à l'avance

+1

Je ne veux pas insulter si Je m'excuse d'avance. C'est une question vraiment novice. Vous feriez bien de lire quelques [guides] (http://www.magentocommerce.com/knowledge-base) en premier. – clockworkgeek

Répondre

1

Dans Admin, si vous allez dans Système> Config> Avancé> Développeur et sélectionnez votre vue magasin du Sélecteur Scope (en haut à gauche), vous pouvez activer des notes de modèles et bloc. Cela vous dira exactement quel bloc PHP génère le code et par conséquent $this se rapporte à.

Généralement, tous les modèles de présentation de base sont pris en charge par Mage_Core_Block_Template et tous les blocs héritent de Mage_Core_Block_Abstract.

Cheers, Jonathan

+0

Salut et merci, où serait le Mage_Core_Block_Abstract à peu près? – adam

+0

Le nom de la classe se traduit par son emplacement. Donc Mage_Core_Block_Abstract devient 'app/code/core/Mage/Core/Block/Abstract.php' – clockworkgeek

1

Comme toujours, je vous recommande understanding what the entire layout system is doing de comprendre ce qui se passe. En ce qui concerne votre question spécifique, $this fait toujours référence à la classe Block du template. (Chaque template phtml a une classe Block dans Magento). La classe dépend de ce que contiennent les fichiers XML de votre présentation. Vous pouvez toujours sortir la classe à l'exécution avec quelque chose comme ceci:

var_dump (get_class ($ this));

La méthode getChildHtml est définie sur la classe abstraite bloc de base

app/code/core/Mage/Core/Bloc/Abstract.php

Cette méthode est utilisée par tous les blocs, alors assurez-vous prenez cela en compte avec votre code.

0

comme une note de côté .. si jamais vous demander où $ c'est le point de vous pouvez également utiliser

echo get_class($this) 

m'a aidé à quelques reprises calme