ThinkPHP中Widget扩展的两种写法及调用方法详解
程序员文章站
2024-03-08 22:36:34
本文实例讲述了thinkphp中widget扩展的两种写法及调用方法。分享给大家供大家参考,具体如下:
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程序设计有所帮助。