本文实例讲述了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程序设计有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!