Magento 2: Panggil Widget dalam file .phtml

11

Saya punya widget:

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

Jadi itu berfungsi dalam konten blok CMS atau halaman CMS. Saya ingin menunjukkannya dalam file .phtml, bagaimana saya bisa melakukannya?

Minh Dao
sumber
Mengapa Anda lebih suka menambahkan widget di phtml daripada di layout xml?
Paul

Jawaban:

12

Untuk Jenis Display = Semua Widget Produk

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

dan

<?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(); ?>

Untuk Jenis Display = Widget Produk Baru

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

dan

<?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(); ?>
PG Sutariya
sumber
Ini tidak berfungsi di Magento 2.1.1
thdoan
periksa perbarui kerjanya
PG Sutariya
1

Jika kita melihat pada modul pelanggan, misalnya:

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 ?>

Seperti yang bisa kita lihat, kita dapat memanggil widget langsung di templat phtml: $ block-> getLayout () -> createBlock ('your \ widget') .

Khoa TruongDinh
sumber
0

Coba kode berikut dan periksa apakah itu berfungsi:

<?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; 
?>

Di mana page_id = "2" adalah widget saya baru saja diganti dengan id widget Anda.

DALAM JOSHI
sumber
Opps yang magento 1 tampak seperti tautan ini: magentotutorialbeginners.blogspot.com/2014/03/…
Minh Dao
Ini adalah cara yang benar dijelaskan di sini Cara yang benar untuk menambahkan widget dalam file .phtml
mudit mehrotra
@muditmehrotra Tidak, itu untuk Magento 1.
Desain oleh Adrian