首頁 > 後端開發 > php教程 > ThinkPHP中Widget擴充的兩種寫法及呼叫方法

ThinkPHP中Widget擴充的兩種寫法及呼叫方法

墨辰丷
發布: 2023-03-27 15:30:01
原創
1521 人瀏覽過

這篇文章主要介紹了ThinkPHP中Widget擴展的兩種寫法及調用方法,詳細分析了Widget擴展的寫法及相應的調用技巧,需要的朋友可以參考下

Widget擴展一般用於頁面元件的擴展,在頁面根據需要輸出不同的內容,下面介紹一下ThinkPHP中Widget的兩種寫法及調用

寫法一:

ArticlWidget.class.php檔案:

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);
  }
}
登入後複製

範本檔案articleList.html在Lib/Widget/Article目錄下

<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>
登入後複製

寫入法二:

#
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;);
  }
}
登入後複製

模板檔案articleList.html,內容同寫法一,但放在Tpl/風格名稱/Widget/目錄下

如果模板檔案放在ArticleWiget.class.php檔案所在目錄的Article資料夾下,則寫法如下:

$this->display(dirname(__FILE__) . &#39;/Article/articleList.html&#39;);
登入後複製

相關推薦:

##超全域數組用法詳解_php基礎

PHP 隨機數C擴充隨機數字

# #理解php依賴注入與控制反轉_php技巧

#

以上是ThinkPHP中Widget擴充的兩種寫法及呼叫方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板