smarty局部缓存

来源:互联网 发布:it域名注册 编辑:程序博客网 时间:2024/04/30 06:20
 

局部缓存

实时性要求比较高

   例如:登陆用户名称

       欢迎Amdin登陆到****

   例如:时间日期

     解决步骤: 自定义函数(自定义插件)

        第一种:插件形式

1)   指定该函数名称nocache

2)   新建文件./plugins/block.nocache.php

内容:

   <?php

   function smarty_block_nocache($args, $content){

     return $content;}

    ?>

 

3)*.php

   ….

   $tpl->assign(“date,date(“H:i:s”));

  ….

*.tpl

<{nocache}><{$date}><{/nocache}>

所有插件默认被缓存

Smarty.       712  行

Else{

if($tag_command==nocache){

$this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, false);}

Else{

$this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, true);

}

}

      第二种:php文件内自定义函数并注册

         *.php

           $tpl->register_block(“nocache”,”fun1”,false);

           function fun1($args,$content){return $content;}

          $tpl->assign(“date”,date(“H:i:s”));

         *.tpl

          <{nocache}><{$date}><{/nocache}>

 

例如:index.php

              $tpl->cache_dir = "./cache/";                  

              $tpl->caching=2;                           

  $tpl->cache_lifetime=60*60*24;

 

        $tpl->register_block("nocache","fun1",false);

          function fun1($args,$content){

 

            return $content;

                 }

$tpl->assign("date",date("H:i:s"));

 

$tpl->display(“index.tpl”);

 

index.tpl:

 

<{nocache}>

            <{$date}>

<{/nocache}>

 

 

 

  第三种:smarty内建函数insert

定义一个inster标签要使用的处理函数

函数名格式为:

insert_xx(array $params, object &$smarty)

其中的xx是insert的name,也就是说,如果你定义的函数为insert_abc,则模板中使用方法为{insert name=abc}参数通过

$params传入

 

也可以做成insert插件,文件名命名为:insert.xx.php,函数命名为:smarty_insert_aa($params,&$smarty),xx定义同上

 

 

原创粉丝点击