ThinkPHP widge使用示例

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.结果

 

posted on 2014-05-18 16:41  yun007  阅读(446)  评论(0编辑  收藏  举报