一、widge通常用于公用模块的设计与使用,以便增强软件模块的复用性与重用性php
通常使用include方法设计公共模块,好比<include file="home:header" />,可是此方法有一个缺陷,没法利用$this->a=a; + header.html中模板{$a}传递参数html
只能使用{$Think.session.var}获取session
如下方法失效this
public function header() { //$this->sysmailNum = 2; //dump(123); $this->display(); }
二、下面介绍如何利用widge通用组件传递参数spa
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, 在你想显示这个组件的地方加上: code
{:W('Welcome',array('cid'=>1))} htm
5.结果blog