北风网项目实战培训北风网项目实战培训 16 .社区网站项目实战 widget 分页类和自定义提示模板讲师:鲁国行人甲(北风网版权所有)基于 BootStrap+jQuery+ThinkPHP+MongoDB 社区网站教程课程简介掌握 ThinkPHP Widget 开发规范掌握分页类扩展的使用自定义 ess 和 Error 跳转模板 ThinkPHP Widget 简介 Widget 扩展用于在页面根据需要输出不同的内容, Widget 扩展的定义是在项目的 Lib/Widget 目录下面定义 Widget 类库,例如下面定义了一个用于显示最近的评论的 Widget ,位于 Lib/Widget/ 。 Widget 实际上就是一段可以重复调用的 Html 代码块,使用 ThinkPHP W() 函数可以随时随地的直接调用。目的是为了解决很多需要重复展示的功能模块的一种开发展现方式。例如,网站很多地方都需要展示相同的用户信息,就可以把这块重复的内容制作成一个 Widget 。最终实现一次编写,到处使用的效果。 ThinkPHP Widget 使用 Widget 类库需要继承 Widget 类,并且必须定义 render 方法实现,例如: class mentWidget extends Widget{ public function render($data){ return ' 这是最新的评论信息'; } } render 方法必须使用 return 返回要输出的字符串信息,而不是直接输出。 ThinkPHP Widget 使用 Widget 也可以调用 Widget 类的 renderFile 方法,渲染模板后进行输出。 class mentWidget extends Widget{ public function render($data){ $content = $this->renderFile('comment',$data); return $content; } } ThinkPHP Widget 使用定义好 Widget 类库后,只需要做的是在模板文件里面使用 W方法调用 Widget ,例如: {:W('ment')} 通常 Widget 都有自己的调用参数来决定不同的输出内容{:W('ment',array('count'=>5))} 参数必须使用索引数组传入。 ThinkPHP Widget 使用 Widget 的模板文件单独存放,放置到当前项目的 Lib/Widget/ment/ 目录下面,取决于 rendFile 方法如何调用,默认情况下,是调用和 widget 同名的模板文件,例如当前 Widget 是 mentWidget ,其中代码如下: $this->renderFile(); 则调用的 widget 模板位于 Lib/Widget/ment/ , 如果调用$this->renderFile('comment'); 调用的 widget 模板则位于 Lib/Widget/ , 如果需要调用子目录下面的模板,则采用$this->renderFile('ment'); 调用的 widget 模板则位于 Lib/Widget/ment/ 。 ThinkPHP Widget 实例用户信息 widget :根据用户登录的状态显示不同的效果。热门话题排行 widget :根据话题 topic 的具体访问量进行排行显示的 widget 制作一个显示 Ad 广告的 widget 这个 widget 就是显示一组可以点击的图片进入到广告的第三方的网站地址 ThinkPHP 分页 public function select(){ $Dao = M("User"); // 计算总数 $count = $Dao->count(); // 导入分页类 import(""); // 实例化分页类 $p = new Page($count, 10); // 分页显示输出 $page = $p->show(); // 当前页数据查询 $list = $Dao->order('uid ASC')->limit($p->firstRow.','.$p->listRows)->select(); // 赋值赋值 $this->assign('page', $page); $this->
Bootstrap实战开发教程第十六讲 实战社区网站Widget组件开发 来自淘豆网m.daumloan.com转载请标明出处.