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?
Пол

Відповіді:


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
thoan

перевірити оновлення його робіт чудово
PG Sutariya

1

Якщо ми подивимось на модуль замовника, наприклад:

vendor / magento / module-customer / view / frontend / templates / form / 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 ('ваш \ віджет') .


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" - мій віджет, просто замінюється вашим ідентифікатором віджета.


Опси, які є магенто 1, здаються таким посиланням: magentotutorialbeginners.blogspot.com/2014/03/…
Мінь Дао

Це правильний спосіб, пояснений тут Правильний спосіб додати віджет у .phtml файл
mudit mehrotra

@muditmehrotra Ні, це для Magento 1.
Дизайн Адріана
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.