本文實(shí)例講述了ThinkPHP中Widget擴(kuò)展的兩種寫法及調(diào)用方法。分享給大家供大家參考,具體如下:
Widget擴(kuò)展一般用于頁(yè)面組件的擴(kuò)展,在頁(yè)面根據(jù)需要輸出不同的內(nèi)容,下面介紹一下ThinkPHP中Widget的兩種寫法及調(diào)用
寫法一:
ArticlWidget.class.php文件:
class ArticleWidget extends Widget {  /**   *   * @param array $data   * @return type   * 調(diào)用方法:{:W('ArticleList',array('cid'=>25,'limit'=>5))}   * cid為分類id,limit為調(diào)用數(shù)量   */  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"  </li></volist>寫法二:
class ArticleWidget extends Action {  /**   *   * @param array $data   * @return type   * 調(diào)用方法:{:R('Article/articleList',array('cid'=>25,'limit'=>5),'Widget')}   * cid為分類id,limit為調(diào)用數(shù)量   */  public function articleList($cid, $limit) {    $Article = M('Article');    $articleMap["cid"] = $cid;    $data = $Article->where($articleMap)->order('id desc')->limit($limit)->select();    foreach ($data as $key => $value) {      if ($value["thumbnail"] == "") {        $data[$key]["thumbnail"] = '/Public/Img/Common/noThumbnail.jpg';      }    }    $this->assign('articleList', $data);    $this->display('Widget:articleList');  }}模板文件articleList.html,內(nèi)容同寫法一,但放在Tpl/風(fēng)格名/Widget/目錄下
如果模板文件放在ArticleWiget.class.php文件所在目錄的Article文件夾下,則寫法如下:
$this->display(dirname(__FILE__) . '/Article/articleList.html');
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選