thinkphp widget的用法
看了下官网关于widget的介绍,基本完整但是示例不够好~~
本着好好学习,天天向上,边学习边记录..的精神,有必要再写一个例子出来。
什么是widget?
官方:Widget扩展用于在页面根据需要输出不同的内容。
我:经常要调用的数据可以把他写在widget,比评论,比如文章列表,比如新闻列表,比如商品列表,比如文章分类、商品分类。。。。甚至我觉得版权、经常要包含的顶部、底部也可以写成widget~~
瞧腾讯网的这东东,貌似放了十几个这样的,我们用widget做一个调用新闻列表,传个分类参数就搞定。当然,人家老马考虑了很多东西的,我们暂不考虑。
废话说多了。
以下基于TP3.1的
数据表:
CREATE TABLE IF NOT EXISTS `yo_goods` (
`goods_id` int(11) NOT NULL AUTO_INCREMENT,
`category` int(11) NOT NULL COMMENT "分类id",
`sort` int(11) NOT NULL DEFAULT "50" COMMENT "排序",
`store_id` int(11) NOT NULL DEFAULT "1",
`goods_name` varchar(255) NOT NULL,
`price` float NOT NULL,
`desc` varchar(250) NOT NULL COMMENT "描述",
`payment` varchar(20) DEFAULT NULL COMMENT "支付方式",
`status` tinyint(4) DEFAULT NULL COMMENT "0:等待买家付款,1支付成功,2支付失败,3取消",
`img` varchar(100) NOT NULL DEFAULT "no_goods.png" COMMENT "图片路径",
`addTime` int(11) NOT NULL,
`last_update` int(11) NOT NULL,
PRIMARY KEY (`goods_id`),
UNIQUE KEY `goods_id` (`goods_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
INSERT INTO `yo_goods` (`goods_id`, `category`, `sort`, `store_id`, `goods_name`, `price`, `desc`, `payment`, `status`, `img`, `addTime`, `last_update`) VALUES
(1, 1, 1, 1, "test1", 0.01, "特色描述", NULL, NULL, "1.jpg", 0, 0),
(2, 2, 50, 1, "test2", 0.01, "test描述", NULL, NULL, "no_goods.png", 0, 0),
(3, 1, 2, 1, "test2", 0.01, "test描述", NULL, NULL, "no_goods.png", 0, 0);
-----
然后,在lib/widget下创建一个文件ListShowGoodsWidget.class.php
形成这样的目录lib/widget/ListShowGoodsWidget.class.php
代码;
<?php
//商品列表
class ListShowGoodsWidget extends Widget{
public function render($data){
$Goods = M("Goods");
$conditions .=isset($data["goods_category"])?" category=".$data["goods_category"]:"";//通过指定分类,可以调用不同分类的商品
echo $conditions;
$data["goods_list"] = $Goods-> where($conditions)->order("sort")->limit(10)->select();
$content = $this->renderFile("ListShowGoods",$data);
return $content;
}
}
-----
创建一个在widget下创建ListShowGoods文件夹和ListShowGoods.html文件
形成lib/widget/ListShowGoods/ListShowGoods.html
ListShowGoods.html代码(没做美工,不好依稀啊):
商品列表:<br/>
<volist name="goods_list" id="list">
<li>{$list["goods_id"]}</li>
<li>{$list["category"]}</li>
<li>{$list["sort"]}</li>
<li>{$list["store_id"]}</li>
<li>{$list["goods_name"]}</li>
<li>{$list["price"]}</li>
<li>{$list["desc"]}</li>
<li>{$list["img"]}</li>
</volist>
搞定niao~
- 上一篇: TP5的URL大小写问题
- 下一篇: mysql中的 IN和FIND_IN_SET的查询问题