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?


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

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') .


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.