全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文实例讲述了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程序设计有所帮助。


# ThinkPHP  # Widget扩展  # 写法  # 调用方法  # ThinkPHP的Widget扩展实例  # thinkPHP下的widget扩展用法实例分析  # ThinkPHP3.1的Widget新用法  # thinkPHP5框架中widget的功能与用法详解  # Thinkphp 框架扩展之行为扩展原理与实现方法分析  # Thinkphp 框架扩展之标签库驱动原理与用法分析  # Thinkphp 框架扩展之数据库驱动常用方法小结  # Thinkphp 框架扩展之类库扩展操作详解  # Thinkphp 框架扩展之Widget扩展实现方法分析  # 放在  # 两种  # 进阶  # 相关内容  # 目录下  # 感兴趣  # 给大家  # 介绍一下  # 更多关于  # 所述  # 程序设计  # 操作技巧  # 讲述了  # cid  # ArticleList  # gt  # type  # array  # param  # return 


相关文章: 山东网站制作公司有哪些,山东大源集团官网?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  如何在阿里云部署织梦网站?  Android自定义控件实现温度旋转按钮效果  如何通过VPS建站无需域名直接访问?  微信推文制作网站有哪些,怎么做微信推文,急?  建站之星×万网:智能建站系统+自助建站平台一键生成  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  如何在IIS管理器中快速创建并配置网站?  如何快速完成中国万网建站详细流程?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何在Windows环境下新建FTP站点并设置权限?  网站制作免费,什么网站能看正片电影?  建站10G流量真的够用吗?如何应对访问高峰?  如何在云虚拟主机上快速搭建个人网站?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  学校为何禁止电信移动建设网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何配置FTP站点权限与安全设置?  如何在Golang中使用replace替换模块_指定本地或远程路径  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  已有域名和空间如何快速搭建网站?  建站主机选虚拟主机还是云服务器更好?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  如何在云指建站中生成FTP站点?  建站为何优先选择香港服务器?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  制作农业网站的软件,比较好的农业网站推荐一下?  建站之星官网登录失败?如何快速解决?  建站主机与虚拟主机有何区别?如何选择最优方案?  如何正确下载安装西数主机建站助手?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何快速查询域名建站关键信息?  如何在IIS7上新建站点并设置安全权限?  宁波自助建站系统如何快速打造专业企业网站?  小程序网站制作需要准备什么资料,如何制作小程序?  建站之星上传入口如何快速找到?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  想学网站制作怎么学,建立一个网站要花费多少?  如何在阿里云服务器自主搭建网站?  如何在IIS服务器上快速部署高效网站?  网站设计制作企业有哪些,抖音官网主页怎么设置?  Thinkphp 中 distinct 的用法解析  完全自定义免费建站平台:主题模板在线生成一站式服务 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。