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 ฉันต้องทำอย่างไร


ทำไมคุณถึงชอบเพิ่มวิดเจ็ตใน phtml มากกว่าในเลย์เอาต์ xml
พอล

คำตอบ:


12

สำหรับประเภทการแสดง = Widget ผลิตภัณฑ์ทั้งหมด

{{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 ผลิตภัณฑ์ใหม่

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

ถ้าเราดูโมดูลลูกค้าตัวอย่างเช่น:

ผู้ขาย / วีโอไอพี / โมดูลลูกค้า / view / ส่วนหน้า / แม่แบบ / รูปแบบ / 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 ( 'ของคุณ \ วิดเจ็ต')


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 วิดเจ็ตของคุณ


Opps ที่เป็น magento 1 ดูเหมือนว่าลิงก์นี้: magentotutorialbeginners.blogspot.com/2014/03/ …
Minh Dao

วิธีนี้เป็นวิธีที่ถูกต้องอธิบายที่นี่วิธีที่ถูกต้องเพิ่มวิดเจ็ตในไฟล์ .phtml
mudit Mehrotra

@muditmehrotra ไม่สำหรับ Magento 1.
ออกแบบโดย Adrian
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.