1、widge一般用于公用模块的设计与使用,以便加强软件模块的复用性与重用性
一般使用include方法设计公共模块,比如<include file="home:header" />,但是此方法有一个缺陷,无法利用$this->a=a; + header.html中模板{$a}传递参数
只能使用{$Think.session.var}获取
以下方法失效
public function header() { //$this->sysmailNum = 2; //dump(123); $this->display(); }
2、下面介绍如何利用widge通用组件传递参数
- 在项目Lib/Widget下新建WelcomeWidget.class.php,内容如下
class WelcomeWidget extends Widget { public function render($data) { // $data[‘content‘] = ‘Hello everyone,this is widget!‘; //模板不存在[Tool/Lib/Widget/Welcome/index.html] $content = $this->renderFile ("index",$data); return $content; } }
2.在Lib/Widget目录中新建‘Welcome/index.html‘, 假设内容如下:
<div class="span6"> <img src="__PUBLIC__/img/leads.jpg" class="pull-left"> <div class="span">{$content}</div> </div>
3.在其他模板中调用这个widget, 在你想显示这个组件的地方加上:
{:W(‘Welcome‘,array(‘cid‘=>1))}
5.结果