2、你可以使用 {insert name="func_name"} 实现局部不缓存。
先在 lib_insert.php文件里定义一个 insert_func_name() 函数,
然后模板调用 {insert name="func_name"}
比如用户登录信息就是不缓存的 在 page_header_index.lbi 文件中
<li>客服热线:<span>{$service_phone}</span><b id="ECS_MEMBERZONE">{* ECSHOP 提醒您:根据用户id来调用member_info.lbi显示不同的界面 *}{insert name='member_info'}</b></li>
因此 在lib_insert.php中 对应一个方法
/**
* 调用会员信息
*
* @access public
* @return string
*/
function insert_member_info()
{
$need_cache = $GLOBALS['smarty']->caching;
$GLOBALS['smarty']->caching = false;
if ($_SESSION['user_id'] > 0)
{
$GLOBALS['smarty']->assign('user_info', get_user_info());
}
else
{
if (!empty($_COOKIE['ECS']['username']))
{
$GLOBALS['smarty']->assign('ecs_username', stripslashes($_COOKIE['ECS']['username']));
}
$captcha = intval($GLOBALS['_CFG']['captcha']);
if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] > 2)) && gd_version() > 0)
{
$GLOBALS['smarty']->assign('enabled_captcha', 1);
$GLOBALS['smarty']->assign('rand', mt_rand());
}
}
$output = $GLOBALS['smarty']->fetch('library/member_info.lbi');
$GLOBALS['smarty']->caching = $need_cache;
return $output;
}