Bloquear problemas de renderização no Magento 1.9.2.0
-
29-09-2020 - |
Pergunta
tendo algum problema estranho no Magento 1.9.2.0
Eu tenho meu arquivo 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>
Quando tento fazer: $this->getChildHtml('leftmenu');
não renderiza nada, se eu var_dump ele mostra string '' (0)
No entanto, se eu alterar a referência de root para conteúdo, ele será renderizado, mas abaixo de todo o html.
Se eu mudar de volta para root e mudar $this->getChildHtml('leftmenu');
para $this->getLayout()->getBlock('leftmenu')->toHtml();
ele será renderizado como deveria ...alguma ideia do porquê?
Obrigado
Solução 2
Ok, então a resposta é - catalog_product_view não usa root para criar blocos - deveria 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>
Outras dicas
Use o código abaixo
<?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>
Chame-o usando abaixo
echo $this->getChildHtml('leftmenu');
Mais informações aqui
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange