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'))}<!--此处仅示例参数的使用-->
<!--热门博文结束-->
....

参考:一张图说明3.2的Widget使用方法

05-11 22:35