天天看點

smarty 實作局部緩存

        第一種:插件形式

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.     (行數不定)

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}>

  第三種:smarty内建函數insert

定義一個insert 标簽要使用的處理函數

函數名格式為:

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定義同上

繼續閱讀