注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

淘尽网 官方博客

淘尽网http://www.tao3w.com做最好的比价网站

 
 
 

日志

 
 
关于我

淘尽网 http://www.tao3w.com 做最好的比价网站,做最好的数据抓取专家。

网易考拉推荐

天天团购之模板加载解读  

2014-11-20 09:17:56|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
天天团购里面模板加载与两种方式
1、handler('template')->load('@html/address_selector');
这种方式加载的话,并且使用该加载的是一个模块的话,那么该模板文件内使用不了上下文的变量。,比如天天模板的下订单页面使用了buy_checkout.html这个模板文件,并且该模板文件内部又使用了address_selector.html模板,那么buy_checkout.html模板内的变量对address_selector.html毫无作用,我们分析一下load源码就知道
     /**
     * 直接包含,注意:被包含的模板里面访问不到外部的变量
     * @param string $name
     */
    function load($name)
    {
        include $this->file($name);
    }
这里详细的表明了这个过程,并且原作者也做了详细的注释
2、include handler('template')->file('@html/address_selector');
这一个就不细说了,跟传统的一样,可以使用整个模板的变量了,跟上面的相反,源码实现如下:
   /**
     *
     * 返回编译后的模板名称,CName of TemplateHandler::Template($filename)
     * @param string $name
     */
    function file($name)
    {
        $root = false;
        $rootDIR = false;
        if (substr($name, 0, 1) == '@')
        {
            $root = true;
            $name = substr($name, 1);
        }
        if (substr($name, 0, 1) == '#')
        {
            $root = true;
            $rootDIR = true;
            $name = substr($name, 1);
        }
        return $this->Template($name, $root, $rootDIR);
    }
  评论这张
 
阅读(407)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017