Magento XML usando antes / depois para colocar blocos quase nunca funciona
Eu sou um desenvolvedor Magento de front-end, construí alguns dos meus próprios temas e eu quero entender melhor o posicionamento de bloco de XML do Magento ...
Eu normalmente uso umlocal.xml
arquivo para manipular tudo, eu posso definir um bloco da seguinte forma:
<cms_index_index>
<reference name="root">
<block type="core/template" name="example_block" as="exampleBlock" template="page/html/example-block.phtml"/>
</reference>
</cms_index_index>
Isso criaria um bloqueio na home page (cms_index_index
) e como o bloco é criado um nível abaixoroot
, Eu normalmente chamaria o bloco adicionando:
<?php echo $this->getChildHtml('exampleBlock') ?>
...para1column.phtml
(ou2columns-left
/right.phtml
, 3columns.phtml
etc). O bloco pode ser colocado em qualquer página, substituindocms_index_index
para a tag de página apropriada.
Eu vejo coisas como as seguintes nos arquivos XML principais e nos tutoriais:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
content
é um bloco que faz parte da estrutura geral da página do magento e, pelo que entendi,before="content"
deve colocá-lo onde você esperaria, sem precisar usargetChildHtml('exampleBlock')
, até aí tudo bem ... no entanto, antes / depois quase nunca parece funcionar para mim, e frequentemente me encontro recorrendo ao método getChildHtml como backup, o que nem sempre é ideal, e significa editar mais arquivos .phtml do que o necessário .
Eu tentei:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
Nada aparece ...
<reference name="root">
<block type="core/template" name="example_block" after="header" template="page/html/example-block.phtml"/>
</reference>
Ainda nada .... também estou ciente de usarbefore="-"
ouafter="-"
colocar algo antes de tudo dentro do seu bloco pai. Eu ocasionalmente tenho alguma sorte com isso, mas geralmente fico confuso e frustrado.
Eu pesquisei em todo o lugar para 'magento xml antes / depois de não trabalhar' e começando a me perguntar se é só comigo isso acontece com ... alguém pode explicar quando eu posso e não posso usar antes / depois de posicionar os blocos? O que há de errado com os exemplos acima?
Eu estou no magento 1.7.0.2 (mais recente disponível no momento da postagem)
A principal motivação para isso é reduzir o número de arquivos .phtml principais que preciso editar apenas para adicionargetChildHtml()
, então se houver outra maneira (XML) de contornar isso eu estaria interessado em saber ...