关于ecshop实时刷新浏览次数

2016-09-11 20:39 来源:www.chinab4c.com 作者:ecshop专家

ecshop是有缓存机制的,所以本来文章的浏览次数不是实时刷新的,如果把缓存去掉肯定是得不偿失的,所以要用到局部刷新的方法,如下:

1、修改article.dwt

1 浏览次数: {insert name='click_count' article_id=$id} 次

上面代码的意思是调用lib_insert.php里的 insert_click_count()方法,并且把id作为参数传进去

2、在lib_insert.php里面添加上面的function

01 function insert_click_count($arr){
02 $need_cache = $GLOBALS['smarty']->caching;
03 $need_compile = $GLOBALS['smarty']->force_compile;
04
05 $GLOBALS['smarty']->caching = false;
06 $GLOBALS['smarty']->force_compile = true;
07
08 $click_count=get_article_click_count($arr['article_id']);
09
10 $GLOBALS['smarty']->caching = $need_cache;
11 $GLOBALS['smarty']->force_compile = $need_compile;
12
13 return $click_count;
14 }

3、在lib_article.php里面添加上面用到的查询数据库的方法

1 function get_article_click_count($article_id){
2 global $db, $ecs;
3 $sql = "SELECT CLICK_COUNT FROM ".$ecs->table('article').'  where article_id='.$article_id;
4 $click_count= $db->getOne($sql);
5 return $click_count;
6 }