Heim >Backend-Entwicklung >PHP-Tutorial >Zwei Möglichkeiten zum Schreiben und Aufrufen von Widget-Erweiterungen in ThinkPHP

Zwei Möglichkeiten zum Schreiben und Aufrufen von Widget-Erweiterungen in ThinkPHP

墨辰丷
墨辰丷Original
2018-05-23 09:37:391502Durchsuche

In diesem Artikel werden hauptsächlich die beiden Möglichkeiten zum Schreiben und Aufrufen von Widget-Erweiterungen in ThinkPHP vorgestellt und die Schreibmethoden und entsprechenden Aufruftechniken von Widget-Erweiterungen detailliert analysiert.

Allgemeine Verwendung von Widget Erweiterungen Zur Erweiterung von Seitenkomponenten können je nach Bedarf unterschiedliche Inhalte auf der Seite ausgegeben werden. Hier gibt es zwei Möglichkeiten, Widget in ThinkPHP zu schreiben und aufzurufen

Schreibmethode eins:

ArticlWidget.class.php-Datei:

class ArticleWidget extends Widget {
  /**
   *
   * @param array $data
   * @return type
   * 调用方法:{:W('ArticleList',array('cid'=>25,'limit'=>5))}
   * cid为分类id,limit为调用数量
   */
  public function render($data) {
    $Article = M('Article');
    $articleMap["cid"] = $data["cid"];
    $data["articleList"] = $Article->where($articleMap)->order('id desc')->limit($data["limit"])->select();
    foreach ($articleList as $key => $value) {
      if ($value["thumbnail"] == "") {
        $data["articleList"][$key]["thumbnail"] = '/Public/Img/Common/noThumbnail.jpg';
      }
    }
    return $this->renderFile('articleList', $data);
  }
}

Die Vorlagendatei ArticleList.html befindet sich in der Lib/Widget /Artikelverzeichnis

<volist name="articleList" id="articleList_vo">
  <li>
    <a href="__APP__/Channel/articleDetail/code/article/id/{$articleList_vo.id}" rel="external nofollow" title="{$articleList_vo.title}">{$articleList_vo.title}</a>
  </li>
</volist>

Schreibmethode zwei:

class ArticleWidget extends Action {
  /**
   *
   * @param array $data
   * @return type
   * 调用方法:{:R(&#39;Article/articleList&#39;,array(&#39;cid&#39;=>25,&#39;limit&#39;=>5),&#39;Widget&#39;)}
   * cid为分类id,limit为调用数量
   */
  public function articleList($cid, $limit) {
    $Article = M(&#39;Article&#39;);
    $articleMap["cid"] = $cid;
    $data = $Article->where($articleMap)->order(&#39;id desc&#39;)->limit($limit)->select();
    foreach ($data as $key => $value) {
      if ($value["thumbnail"] == "") {
        $data[$key]["thumbnail"] = &#39;/Public/Img/Common/noThumbnail.jpg&#39;;
      }
    }
    $this->assign(&#39;articleList&#39;, $data);
    $this->display(&#39;Widget:articleList&#39;);
  }
}

Vorlage Die Datei ArticleList.html hat den gleichen Inhalt, wird jedoch im Verzeichnis Tpl/style name/Widget/ abgelegt.

Wenn die Vorlagendatei im Ordner Article im Verzeichnis abgelegt wird Wo sich die Datei ArticleWiget.class.php befindet, lautet die Schreibmethode wie folgt:

$this->display(dirname(__FILE__) . &#39;/Article/articleList.html&#39;);

Verwandte Empfehlungen:

PHP9 vordefinierte Variablen Detaillierte Erklärung der Super-Global-Array-Nutzung_php-Grundlagen

PHP Zufallszahl C erweiterter Zufall Zahl

PHP-Abhängigkeitsinjektion und Inversion von control_php-Fähigkeiten verstehen

Das obige ist der detaillierte Inhalt vonZwei Möglichkeiten zum Schreiben und Aufrufen von Widget-Erweiterungen in ThinkPHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn