Smarty局部缓存insert和smarty_block函数的应用

SJY发表于:2014年08月16日 13:05 • 阅读:

insert函数应用

index.php中

function insert_get_time(){ 
return date("Y-m-d H:m:s"); 
}

index.htm中 

{insert name="get_time"} 

smarty_block函数用法

方法一:直接使用

index.php中

function smarty_block_nocache($param, $content, $smarty){  
    return $content;  
}
$smarty->register_block('nocache', 'smarty_block_nocache', false);#其中第三个参数,如果是true那么就会缓存,false是不缓存;注意:这个要在display前注册,不然会报错

index.htm中

{nocache}
没有缓存的:{$smarty.now}
{/nocache}

方法2:写成block插件

1、定义一件插件函数:block.cacheless.php,放在smarty的plugins目录,block.cacheless.php的内容如下: 

<?php 
function smarty_block_cacheless($param, $content, &$smarty) { 
return $content; 
} 
?> 

index.htm内容

{cacheless} 
没有缓存的:{$smarty.now} 
{/cacheless}

附录

1、$params是一个数组, 里面存放的是你传给块函数的变量名和变量的值,比如

{cacheless type="plugin" info="使用插件的方式调用块函数"}

传入的参数就有type和info 使用$params['type']就可以得到相应的值

2、$content 是你写在块函数之间的值 如:

{cacheless type="plugin" info="使用插件的方式调用块函数"}插件块函数的内容{/cacheless}

$content 值为"插件块函数的内容"

3、&$smarty 就是对$smarty变量的引用;你可以去看看smarty里面所有的插件函数,都有这个参数,就是这样引用的。参数 &$repeat 通过参考引用传递给函数执行过程并为其提供一个可能值来控制显示块多少遍。

欢迎转载,但请保留原文地址 http://www.sjyhome.com/php/smarty-insert-smarty_block.html

标签: Smarty 缓存

回复(0)