ECSHOP 局部 不缓存数据

来源:互联网 发布:淘宝五大水货手机店 编辑:程序博客网 时间:2024/05/21 09:03
1、ECSHOP使用的SMARTY是经过官方阉割处理过的,不是完整的SMARTY,有些语法是不支持的

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

0 0