我正在使用自定义扩展程序创建自定义小部件。我按照this在我的自定义扩展程序中创建小部件。所有工作正常,但数据未显示在模板中$this->setTemplate('widget/viewed_list.phtml');
在我的代码下面:
Technologymindz / Instagramfeed /砌块/空间/ Instawidget.php
<?php
namespace Technologymindz\Instagramfeed\Block\Widget;
class Instawidget extends \Magento\Framework\View\Element\Template implements \Magento\Widget\Block\BlockInterface
{
public function _toHtml()
{
$this->setTemplate('widget/viewed_list.phtml');
}
}
Technologymindz / Instagramfeed的/ etc / widget.xml
<?xml version="1.0" encoding="UTF-8"?>
<widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Magento/Widget/etc/widget.xsd">
<widget id="tm_customwidget" class="Technologymindz\Instagramfeed\Block\Widget\Instawidget">
<label translate="true">Instagram Feeds</label>
<description>Show Your Instagram Feeds Anywhere</description>
<parameters>
<parameter name="tmfeedtoshow" xsi:type="select" required="true" visible="true">
<label>Show Latest Feeds</label>
<options>
<option name="default" value="12" selected="true">
<label translate="true">12</label>
</option>
<option name="list" value="24">
<label translate="true">24</label>
</option>
</options>
</parameter>
<parameter name="tmview_type" xsi:type="select" required="true" visible="true">
<label>Select View Type</label>
<options>
<option name="default" value="widget/viewed_grid.phtml" selected="true">
<label translate="true">Grid View</label>
</option>
<option name="list" value="widget/viewed_list.phtml">
<label translate="true">List View</label>
</option>
</options>
</parameter>
</parameters>
</widget>
</widgets>
Technologymindz / Instagramfeed /视图/前端/插件/ viewed_list.phtml
<?php
echo $this->getTmview_type();
echo 'Welcome';
?>
数据输出未显示viewed_list.phtml
,但是如果我在阻止_toHtml()
功能中设置的内容比显示的要好。
public function _toHtml()
{
return '<p class="hello">Hello world!</p>';
}
我希望.phtml
中的管理输出不在Block中,希望我可以在模板上获得Magento 2自定义Widget数据渲染的更好或更好的教程。
答案 0 :(得分:2)
好的,经过大量的研究,我找到了一篇温和的文章here,这对我来说是一个问题。我完全删除了_toHtml
函数
解决方案对我有用:
protected function _construct()
{
parent::_construct();
$this->setTemplate('widget/viewed_list.phtml');
}