Макет Magento и многоуровневая навигация

Я пытаюсь создать пользовательскую страницу, для которой у меня есть следующий XML, используя пустой шаблон.

В моем контроллере у меня есть

public function indexAction()
{
        $this->loadLayout();
        $this->getLayout()->getBlock('root')->setTemplate('page/empty.phtml');
        $this->renderLayout();
}

И в моем макете, у меня есть

<?xml version="1.0"?>
<layout version="0.1.0">
    <brands_index_index>
        <reference name="content">
            <block type="catalog/layer_view" name="catalog.leftnav" before="brands" template="catalog/layer/view.phtml"/>
            <block type="core/template" name="brands" template="brands/brands.phtml" />
        </reference>
    </brands_index_index>
</layout>

Это работает нормально, и отображается многоуровневая навигация.

Однако я хочу, чтобы многоуровневая навигация отображалась в шаблоне brands.phtml. Таким образом, я попытался сделать следующее:

<?xml version="1.0"?>
<layout version="0.1.0">
    <brands_index_index>
        <reference name="content">
            <block type="core/template" name="brands" template="brands/brands.phtml" >
                <block type="catalog/layer_view" name="catalog.leftnav" as="catalog.leftnav" template="catalog/layer/view.phtml"/>
            </block>
        </reference>
    </brands_index_index>
</layout>

Тем не менее, это не работает, когда я вызываю getChildHtml("catalog.leftnav") в brands.phtml.

Как мне перенести многоуровневую навигацию туда, где мне нужно ее вызвать в brands.phtml?

Таким образом, кажется, что блок загружается, когда я просматриваю раздел "Рендеринг блоков" в "Magento Debug". Однако HTML не генерируется. Есть ли правило, которое говорит, что многоуровневая навигация должна быть в левом / контентном / правом блоках или что-то?

Спасибо

1 ответ

getChildHtml ищет детей, используя их атрибут as, а не атрибут name. Поэтому попробуйте изменить определение своего блока на это и соответственно изменить вызов getChildHtml:

<block type="catalog/layer_view" name="catalog.leftnav" as="mynav" template="catalog/layer/view.phtml" />
Другие вопросы по тегам