Magento: Как поместить виджеты в макет XML? - PullRequest
11 голосов
/ 22 июня 2010

Я использую 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

Ответы [ 2 ]

19 голосов
/ 22 июня 2010

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

<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 голосов
/ 28 октября 2013

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

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

<?php echo $this->getLayout()->createBlock('enterprise_banner/widget_banner')->setBannerIds('4')->setDisplayMode('fixed')->setTemplate('banner/widget/block.phtml')->toHtml(); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...