Magento: Как поместить виджеты в макет xml?

Я использую Magento Enterprise Edition. Он включает в себя виджет для баннеров, который я хочу использовать внутри своего шаблона, а не изнутри блока содержимого CMS. Мне удалось генерировать вывод изнутри блока контента:

{{widget type="enterprise_banner/widget_banner" display_mode="fixed" rotate="series" banner_ids="4" template="banner/widget/block.phtml" unique_id="744a56c9a042cc9fa166163c12d869d9"}}

Прост достаточно. Поэтому внутри моего макета xml я пробовал это:

<block type="enterprise_banner/widget_banner" name="hero_banners" as="hero_banners" display_mode="fixed" rotate="series" banner_ids="4" template="banner/widget/block.phtml" unique_id="744a56c9a042cc9fa166163c12d869d9" />

Те же параметры; Я просто добавил имя и как. И затем, внутри моего шаблона...

<?php echo $this->getChildHtml('hero_banners'); ?>

Но я не получаю выход. Профайлер отмечает, что блок hero_banners загружен, но его файл шаблона (banner/widget/block.phtml) никогда не запускается.

Кто-нибудь знает, что я делаю неправильно?

-P

Ответ 1

Оказывается, он не вставлял каких-либо значимых данных, потому что он не получал своих параметров. Для нестандартных параметров необходимо установить теги действий:

<block type="enterprise_banner/widget_banner" name="hero_banners" as="hero_banners" template="banner/widget/hero.phtml">
    <action method="setDisplayMode"><value>fixed</value></action>
    <action method="setBannerIds"><value>4</value></action>
</block>

Ответ 2

Поскольку тема уже решена, у меня есть решение без темы

Это может быть установлено как блок в файле .phtml, если это необходимо.

<?php echo $this->getLayout()->createBlock('enterprise_banner/widget_banner')->setBannerIds('4')->setDisplayMode('fixed')->setTemplate('banner/widget/block.phtml')->toHtml(); ?>