La référence before_body_end ne fonctionne pas - after_body_start fonctionne?


8

Commencer à penser que j'ai perdu mon mojo ...

Les deux blocs sont nommés before_body_endet after_body_startsont de type core/text_list. Cependant, le format XML suivant:

<layout>
    <default>
        <reference name="before_body_end">
            <block type="remarketing/ecjs" name="remarketing_ecjs" as="remarketing_ecjs" />
            <block type="remarketing/modal" name="remarketing_modal" as="remarketing_modal" />
        </reference>
    </default>
</layout>

Ne produit pas les blocs enfants dans la référence. Si j'échange le before_body_end after_body_start, les blocs s'affichent comme prévu

Les deux blocs enfants s'étendent de Mage_Core_Block_Text.

Des idées pourquoi? Je pense que j'ai vendredi-osis ...

Réponses:


23

Cela peut sembler stupide, mais je vais quand même demander: avez-vous revérifié que le fichier de modèle principal (par exemple 1column.phtml) de votre thème le fait echo $this->getChildHtml('before_body_end')?

Sur un vanilla CE 1.7.0.2, ce code

<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
        <reference name="after_body_start">
            <block type="core/template" name="test1" template="test.phtml" />
        </reference>
        <reference name="before_body_end">
            <block type="core/template" name="test2" template="test.phtml" />
        </reference>
        <reference name="content">
            <block type="core/template" name="test3" template="test.phtml" />
        </reference>
    </default>
</layout>

sort mon bloc de test trois fois.

Raisons pour lesquelles il peut apparaître after_body_startmais pas before_body_enddu haut de ma tête:

  1. Le bloc n'est pas répercuté dans le fichier .phtml principal utilisé.
  2. Certains codes sont désactivés before_body_endlors de la création de la page.
  3. Un code désactive les enfants before_body_endlors de la création de la page.

Je suppose qu'un page.xmlproblème modifié (afin que le bloc ne soit pas déclaré) ou un problème de mise en cache puisse être exclu étant donné que c'est vous. ;-)


1
Malheureusement, j'ai vérifié toutes ces choses. echo $this->getChildHtml('before_body_end')est présent ... page.xml n'est pas modifié. Je vais continuer à creuser. Je refuse de laisser celui-ci me battre! :)
philwinkle

2
La réponse à la fin était une entreprise modifiée / default / layout / page.xml fichier qui renommé before_body_endà closure. C'était un vendredi et pour une raison quelconque, je ne pensais pas à l'entreprise / par défaut - merci d'avoir joggé ma mémoire!
philwinkle

1
@Matthias Zeis j'ai utilisé "after_body_start" et maintenant ça marche pour moi. Merci
Sarfaraj Sipai
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.