当前位置: 移动技术网 > IT编程>开发语言>PHP > ThinkPHP中Widget扩展的两种写法及调用方法详解

ThinkPHP中Widget扩展的两种写法及调用方法详解

2017年12月12日  | 移动技术网IT编程  | 我要评论

肉铺团之极乐宝鉴 完整下载,异能丑汉txt下载,春晚节目单2013

本文实例讲述了thinkphp中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('article/articlelist',array('cid'=>25,'limit'=>5),'widget')}
   * cid为分类id,limit为调用数量
   */
  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,内容同写法一,但放在tpl/风格名/widget/目录下

如果模板文件放在articlewiget.class.php文件所在目录的article文件夹下,则写法如下:

$this->display(dirname(__file__) . '/article/articlelist.html');

更多关于thinkphp相关内容感兴趣的读者可查看本站专题:《thinkphp入门教程》、《thinkphp模板操作技巧总结》、《thinkphp常用方法总结》、《codeigniter入门教程》、《ci(codeigniter)框架进阶教程》、《zend framework框架入门教程》及《php模板技术总结》。

希望本文所述对大家基于thinkphp框架的php程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网