El uso de Magento XML antes / después para colocar bloques casi nunca funciona
Soy un desarrollador de Magento de front-end, he creado algunos de mis propios temas y quiero entender mejor el posicionamiento del bloque XML de Magento ...
Normalmente uso unlocal.xml
Archivo para manipular todo, puedo definir un bloque de la siguiente manera:
<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>
Esto crearía un bloque en la página de inicio (cms_index_index
) y como el bloque se crea un nivel debajo deroot
Normalmente llamaría al bloque agregando:
<?php echo $this->getChildHtml('exampleBlock') ?>
...a1column.phtml
(o2columns-left
/right.phtml
, 3columns.phtml
etc). El bloque se puede colocar en cualquier página sustituyendocms_index_index
para la etiqueta de página apropiada.
Veo cosas como las siguientes en los archivos XML principales y en los tutoriales:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
content
es un bloque que forma parte de la estructura general de la página de magento y, por lo que entiendo,before="content"
Debería colocarlo donde lo esperaría, sin necesidad de usarlo.getChildHtml('exampleBlock')
, hasta ahora muy bien ... sin embargo, antes / después casi nunca me funciona, y con frecuencia me encuentro recurriendo al método getChildHtml como copia de seguridad, lo que no siempre es ideal, y significa editar más archivos .phtml de los necesarios .
He intentado:
<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>
Todavía nada .... También soy consciente de usarbefore="-"
oafter="-"
colocar algo antes de todo dentro de su bloque padre. Ocasionalmente tengo algo de suerte con eso, pero generalmente me confundo y me frustro.
He buscado en Google por todo el 'magento xml antes / después de no trabajar' y comencé a preguntarme si a mí solo le pasa esto ... ¿alguien puede explicar cuándo puedo y no puedo usar antes / después para posicionar los bloques? ¿Qué hay de malo con los ejemplos anteriores?
Estoy en Magento 1.7.0.2 (última disponible al momento de la publicación)
La motivación principal para esto es reducir la cantidad de archivos .phtml principales que necesito editar solo para agregar ungetChildHtml()
, así que si hay otra forma (XML) de evitar esto, me gustaría saber ...