Problemas de renderizado de bloques en Magento 1.9.2.0
-
29-09-2020 - |
Pregunta
tener algún problema extraño en Magento 1.9.2.0
Tengo mi archivo local.xml:
<?xml version="1.0"?>
<layout>
<catalog_product_view>
<reference name="root">
<block type="core/template" name="leftmenu" as="leftmenu"
template="catalog/product/view/left.phtml />
</reference>
</catalog_product_view>
</layout>
Cuando intento hacer: $this->getChildHtml('leftmenu');
no representa nada, si lo vuelco var_dump muestra la cadena '' (0)
Sin embargo, si cambio la referencia a la raíz por el contenido, se representa, pero debajo de todo el html.
Si luego lo cambio de nuevo a root y cambio $this->getChildHtml('leftmenu');
a $this->getLayout()->getBlock('leftmenu')->toHtml();
luego se renderizará como debería...¿Alguna idea de por qué?
Gracias
Solución 2
Ok, entonces la respuesta es: catalog_product_view no usa root para crear bloques; debería ser:
<?xml version="1.0" ?>
<layout>
<catalog_product_view>
<reference name="product.info">
<block type="core/template" name="product.left.menu" as="product.left.menu"
template="catalog/product/view/left.phtml" />
<block type="core/template" name="product.tabs" as="product.tabs"
template="catalog/product/view/tabs/tabs.phtml" />
<block type="core/template" name="product.related" as="product.related"
template="catalog/product/list/related.phtml" />
</reference>
</catalog_product_view>
</layout>
Otros consejos
Utilice el siguiente código
<?xml version="1.0"?>
<layout>
<catalog_product_view>
<reference name="content">
<block type="core/template" name="leftmenu" as="leftmenu"
template="catalog/product/view/left.phtml />
</reference>
</catalog_product_view>
</layout>
Llámalo usando a continuación
echo $this->getChildHtml('leftmenu');
Más información aquí
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange