Magento 2:在.phtml文件中调用小部件


11

我有一个小部件:

{{widget type="Magento\Catalog\Block\Product\Widget\NewWidget" display_type="all_products" products_count="5" template="product/widget/new/content/new_grid.phtml"}}

因此,它适用于CMS块或CMS页面的内容。我想在.phtml文件中显示它,该怎么办?


为什么您更喜欢在phtml中而不是在布局xml中添加小部件?
保罗

Answers:


12

对于显示类型=所有产品小部件

{{widget type="Magento\Catalog\Block\Product\Widget\NewWidget" 
display_type="all_products" products_count="5" template="product/widget/new/content/new_grid.phtml"}}

<?php echo $this->getLayout()->createBlock("Magento\Catalog\Block\Product\Widget\NewWidget")->setDisplayType("all_products")->setProductsCount("5")->setTemplate("product/widget/new/content/new_grid.phtml")->toHtml(); ?>

对于显示类型=新产品小部件

{{widget type="Magento\Catalog\Block\Product\Widget\NewWidget" display_type="new_products" products_count="5" template="product/widget/new/content/new_grid.phtml"}}

<?php echo $this->getLayout()->createBlock("Magento\Catalog\Block\Product\Widget\NewWidget")->setDisplayType("new_products")->setProductsCount("5")->setTemplate("product/widget/new/content/new_grid.phtml")->toHtml(); ?>

这在Magento 2.1.1中
不起作用

检查更新其工作正常
PG Sutariya

1

如果我们看一下客户模块,例如:

供应商/ magento /模块客户/视图/前端/模板/表格/edit.phtml

<?php $_dob = $block->getLayout()->createBlock('Magento\Customer\Block\Widget\Dob') ?>
<?php if ($_dob->isEnabled()): ?>
    <?php echo $_dob->setDate($block->getCustomer()->getDob())->toHtml() ?>
<?php endif ?>

如我们所见,我们可以直接在phtml模板中调用小部件:$ block-> getLayout()-> createBlock('your \ widget')


0

尝试以下代码,并检查其是否有效:

<?php
    $filter = new Mage_Widget_Model_Template_Filter();
    $_widget = $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
    echo $_widget; 
?>

其中page_id =“ 2”是我的小部件,只是替换为您的小部件ID。


哎呀这是Magento的1似乎是此链接:magentotutorialbeginners.blogspot.com/2014/03/...
胡志明道


@muditmehrotra没有,那是Magento的1
设计由阿德里安
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.