Manual
6.6 Widget扩展
Widget扩展用于在页面根据需要输出不同的内容,Widget扩展的定义是在项目的Lib\Widget目录下面定义Widget类库,例如下面定义了一个用于显示最近的评论的Widget:
位于Lib\Widget\ShowCommentWidget.class.php
Widget类库需要继承Widget类,并且必须定义render方法实现,例如:
PHP代码
- class ShowCommentWidget extends Widget{
- public function render($data){
- return '这是最新的评论信息';
- }
- }
render方法必须使用return返回要输出的字符串信息,而不是直接输出。
Widget也可以调用Widget类的renderFile方法,渲染模板后进行输出,。
PHP代码
- class ShowCommentWidget extends Widget{
- public function render($data){
- $content = $this->renderFile('Article:comment',$data);
- return $content;
- }
- }
XML/HTML代码
- {:W('ShowComment')}
通常Widget都有自己的调用参数来决定不同的输出内容
XML/HTML代码
- {:W('ShowComment',array('count'=>5))}
参数必须使用索引数组传入。
在控制器里面也可以调用Widget类进行输出,在Action里面获取动态的Widget内容,可以使用下面的方式:
XML/HTML代码
- $content = W('ShowComment', array('count'=>5),true);
第三个参数表示是否返回字符串,如果是false就表示直接输出。返回值可以用于其他用途。
