Il riferimento before_body_end non funziona - after_body_start funziona?


8

Iniziando a pensare che ho perso il mio mojo ...

Entrambi i blocchi hanno nome before_body_ende after_body_startsono di tipo core/text_list. Tuttavia, il seguente layout xml:

<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>

Non genera i blocchi figlio nel riferimento. Se cambio swap per before_body_end after_body_start, i blocchi vengono visualizzati come previsto

Entrambi i blocchi figlio si estendono da Mage_Core_Block_Text.

Qualche idea sul perché? Penso di avere il venerdì-osi ...

Risposte:


23

Può sembrare stupido, ma ti chiederò comunque: hai ricontrollato che il file modello principale (ad esempio 1column.phtml) del tuo tema funzioni echo $this->getChildHtml('before_body_end')?

Su un Vanilla CE 1.7.0.2, questo codice

<?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>

emette il mio blocco di prova tre volte.

Ragioni per cui potrebbe comparire after_body_startnella before_body_endparte superiore della mia testa ma non dentro :

  1. Il blocco non viene ripetuto nel file .phtml principale utilizzato.
  2. Alcuni codici si disattivano before_body_enddurante la creazione della pagina.
  3. Alcuni codici disinseriscono i bambini before_body_enddurante la costruzione della pagina.

Presumo che sia stato modificato page.xml(in modo che il blocco non sia dichiarato) o che si possa escludere un problema di cache dato che sei tu. ;-)


1
Purtroppo ho controllato tutte queste cose. echo $this->getChildHtml('before_body_end')è presente ... page.xml non è modificato. Continuerò a scavare. Mi rifiuto di lasciarmi battere! :)
Philwinkle,

2
La risposta, alla fine, è stato un / page.xml file / di layout modificato enterprise / default che rinominato before_body_enda closure. Era venerdì e per qualche motivo non pensavo all'impresa / al default - grazie per avermi fatto jogging in memoria!
Philwinkle,

1
@Matthias Zeis ho usato "after_body_start" e ora funziona per me. Grazie
Sarfaraj Sipai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.