ThinkPHP3.2.3 手册中 Widget 扩展的地址是: http://www.kancloud.cn/manual/thinkphp/1862
Widget 扩展一般用于页面组件的扩展,和自定义标签具有相同的功能。
例如:在项目首页(位于 Home 应用 ./Application/Home)的某个栏目如【最热新闻】,可以通过 Widget 扩展进行数据调用.
首先在 ./Application/Home 下创建 Widget 目录,在该目录中创建 HotWidget.class.php:
./Application/Home/Widget/HotWidget.class.php
<?php namespace Home\Widget; use Think\Controller; class HotWidget extends Controller{ public function hotlist($id,$name) { //参数传递(示例) //dump($id); //dump($name); //$this->assign(‘id‘, $id); //$this->assign(‘name‘, $name); //热门博文 $field = array(‘id‘,‘title‘,‘click‘); $this->blog = M(‘blog‘)->field($field)->order(‘click DESC‘)->limit(5)->select(); return $this->display("Widget:Hot");// 解析 ./Application/Home/View/Widget/hot.html } }
HotWidget 类渲染的模板文件 ./Application/Home/View/Widget/hot.html:
<dl> <dt>最热新闻</dt> <foreach name="blog" item="v"> <dd> <a href="{:U(‘/‘.$v[‘id‘])}">{$v.title}</a> <span>({$v.click})</span> </dd> </foreach> </dl>
该模板嵌入首页模板中
./Application/Home/View/Index/index.html
.... <!--热门博文--> {:W(‘Hot/hotlist‘,array(‘id‘=>100,‘name‘=>‘dee‘))}<!--此处仅示例参数的使用--> <!--热门博文结束--> ....
时间: 2024-10-13 00:29:30