ThinkPHP中Widget的两种写法及调用
2024-09-01 08:10:20
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}" 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');
最新文章
- 初学C#和MVC的一些心得,弯路,总结,还有教训(4)--Cache 关于创建多个缓存实例
- 最近面试的题目(WEB、Service、SQL、JavaScript)
- linux开启oracle服务
- UI:基础
- (转)ThinkPHP使用心得分享-分页类Page的用法
- SQL 2008R2 日期转换
- 使用STL处理分支限界法处理最优装载问题
- html5标准格式示代码
- android cts 命令的说明
- Unity5 打assetbundle时,无法打成图集仍然是散图的原因
- Java序列化和反序列化,你该知道得更多
- PHP定界符eof 的使用
- CodeForces - 589B(暴力+排序)
- eclipse中svn切换用户
- Range:HTML5中的新型Input类型
- Web jsp开发学习——前端后台传参方法
- 数据库字典查询,从EF工具操作中提取的
- redis中key的归类
- dns记录类型(转)
- 【BZOJ3144】[HNOI2013]切糕