Magento - добавление экземпляра виджета в файл шаблона - PullRequest
2 голосов
/ 15 февраля 2011

Я знаю, что вы можете вызвать блок cms напрямую из файла шаблона, используя следующую команду:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_links')->toHtml() ?>

Есть ли способ сделать это с экземплярами виджета?

Ответы [ 4 ]

21 голосов
/ 16 февраля 2011

В вашем шаблоне:

<?php
$filter = Mage::getModel('widget/template_filter');
echo $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
?>
5 голосов
/ 28 мая 2013

Эндрю пропустил функцию toHtml () в конце:

<?php echo $this->getLayout()->createBlock('cms/widget_page_link')->setTemplate('cms/widget/link/link_block.phtml')->setPageId(2)->toHtml(); ?>
2 голосов
/ 10 мая 2012

Ответ выше может работать, но то же самое можно достичь, загрузив виджет так же, как статический блок, и передавая пользовательские параметры, используя магические сеттеры, подобные этому:

<?php echo $this->getLayout()->createBlock('cms/widget_page_link')->setTemplate('cms/widget/link/link_block.phtml')->setPageId(2); ?>
2 голосов
/ 26 марта 2012

Чтобы узнать правильные параметры «тип», «шаблон» и т. Д., Вы можете использовать кнопку «Вставить виджет» в графическом редакторе в шаблоне блока / страницы, затем щелкнуть редактор отображения / скрытия и получите код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...