2016-06-24 5 views
3

Ich arbeite daran, benutzerdefinierte Widget in benutzerdefinierten Erweiterung zu erstellen. i folgen this Widget in meiner benutzerdefinierten extension.All arbeiten gut, aber keine Daten zeigt, die in der Vorlage $this->setTemplate('widget/viewed_list.phtml'); Unter meinen Code zu erstellen:Magento 2 Custom Widget Set Vorlage Daten nicht am Frontend rendern

Technologymindz/Instagramfeed/Block/Widget/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/view/Frontend/Widget/viewed_list.phtml

<?php 
echo $this->getTmview_type(); 
echo 'Welcome'; 
?> 

Datenausgabe zeigt, die nicht für viewed_list.phtml aber wenn ich etwas in Block _toHtml() Funktion gesetzt, als es zeigt.

public function _toHtml() 
    { 
     return '<p class="hello">Hello world!</p>'; 
    } 

i verwalten möge Ausgabe in .phtml nicht in Block, hofft, dass ich für dieses Problem beheben bekommen oder besser Tutorial für Magento 2 benutzerdefinierten Widget Daten bei Vorlage machen.

Antwort

2

Ok, nach viel Forschung, fand ich einen sanften Artikel here und dieses Problem beheben für mich. ich habe vollständig entfernt _toHtml Funktion

Lösung für mich gearbeitet:

protected function _construct() 
    { 
     parent::_construct(); 
     $this->setTemplate('widget/viewed_list.phtml'); 
    } 
Verwandte Themen