Magento 2: chiama un widget in un file .phtml


11

Ho un widget:

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

Quindi funziona nel contenuto del blocco CMS o della pagina CMS. Voglio mostrarlo in un file .phtml, come posso farlo?


Perché preferisci aggiungere widget in phtml piuttosto che in layout xml?
Paul,

Risposte:


12

Per tipo di visualizzazione = Widget Tutti i prodotti

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

e

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

Per tipo di visualizzazione = Widget Nuovo prodotto

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

e

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

Questo non funziona in Magento 2.1.1
thdoan

controlla aggiorna funziona bene
PG Sutariya

1

Se diamo un'occhiata al modulo cliente, ad esempio:

vendor / Magento / module-cliente / 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 ?>

Come possiamo vedere, possiamo chiamare un widget direttamente nel modello phtml: $ block-> getLayout () -> createBlock ('your \ widget') .


0

Prova il seguente codice e controlla se funziona:

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

Dove page_id = "2" è il mio widget è appena sostituito con il tuo ID widget.


Opps che è magento 1 sembra questo link: magentotutorialbeginners.blogspot.com/2014/03/…
Minh Dao

Questo è il modo corretto spiegato qui Modo corretto per aggiungere widget nel file
.phtml

@muditmehrotra No, questo è per Magento 1.
Design di Adrian,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.