Magento 2: Bir .phtml dosyasında Widget çağırın


11

Bir widget'ım var:

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

Böylece CMS bloğunun veya CMS sayfasının içeriğinde çalışır. Bir .phtml dosyasında göstermek istiyorum, nasıl yapabilirim?


Neden xml düzeninde değil de phtml'de widget eklemeyi tercih ediyorsunuz?
Paul

Yanıtlar:


12

Görüntü Türü için = Tüm Ürün Widget'ı

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

ve

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

Görüntü Türü için = Yeni Ürün Widget'ı

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

ve

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

Bu Magento 2.1.1'de çalışmıyor
thdoan

ince çalışır güncelleme kontrol
PG Sutariya

1

Müşteri modülüne bakarsak, örneğin:

satıcı / Magento / modül-müşteri / görüş / kullanıcı arayüzü / templates / formu / 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 ?>

Gördüğümüz gibi, bir widget'ı doğrudan phtml şablonunda çağırabiliriz: $ block-> getLayout () -> createBlock ('sizin \ widget' ') .


0

Aşağıdaki kodu deneyin ve çalışıp çalışmadığını kontrol edin:

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

Burada page_id = "2" widget'ım, widget widget'ınızla değiştirildi.


Magento 1 olan Opps bu bağlantıya benziyor: magentotutorialbeginners.blogspot.com/2014/03/…
Minh Dao


@muditmehrotra Hayır, bu Magento 1 için
Adrian tarafından tasarlandı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.