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ファイルで表示したいのですが、どうすればよいですか?


ウィジェットをレイアウトxmlではなくphtmlに追加するのはなぜですか?
ポール

回答:


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では機能しません
thdoan

正常に動作するアップデートを確認してください
PG Sutariya

1

たとえば、customerモジュールを見てみましょう。

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( 'your \ widget')


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"は私のウィジェットですが、ウィジェットIDに置き換えられます。


Magentoの1であるOPPSは、このリンクのように思える:magentotutorialbeginners.blogspot.com/2014/03/...
ミン・ダオ


Magentoの1のためだ@muditmehrotraいいえ、
デザインエイドリアンにより
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.