Проблемы с рендерингом блоков в Magento 1.9.2.0
-
29-09-2020 - |
Вопрос
возникла какая-то странная проблема в Magento 1.9.2.0
У меня есть мое 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>
Когда я пытаюсь сделать: $this->getChildHtml('leftmenu');
он ничего не отображает, если я его var_dump, он показывает строку " (0)
Однако, если я изменю ссылку на root на content, то она будет отображаться, но ниже всего html.
Если я затем изменю его обратно на root и изменю $this->getChildHtml('leftmenu');
к $this->getLayout()->getBlock('leftmenu')->toHtml();
затем он будет отображаться так, как должен...есть идеи, почему?
Спасибо
Решение 2
Итак, ответ таков - catalog_product_view не использует root для создания блоков - это должно быть:
<?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>
Другие советы
Используйте приведенный ниже код
<?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>
Назовите это, используя приведенный ниже
echo $this->getChildHtml('leftmenu');
Дополнительная информация здесь