마 젠토 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로 위젯을 추가하는 것을 선호하는 이유는 무엇입니까?
Paul

답변:


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

예를 들어 고객 모듈을 살펴보면 다음과 같습니다.

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/…
Minh Dao


@muditmehrotra 아니, 그건 마 젠토 1입니다.
디자인 : Adrian Adrian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.