ecshop是有緩存機制的,因此原本文章的瀏覽次數不是實時刷新的,若是把緩存去掉確定是得不償失的,因此要用到局部刷新的方法,以下:php
一、修改article.dwt
sql
瀏覽次數: {insert name='click_count' article_id=$id} 次
上面代碼的意思是調用lib_insert.php裏的 insert_click_count()方法,而且把id做爲參數傳進去數據庫
二、在lib_insert.php裏面添加上面的function緩存
function insert_click_count($arr){ $need_cache = $GLOBALS['smarty']->caching; $need_compile = $GLOBALS['smarty']->force_compile; $GLOBALS['smarty']->caching = false; $GLOBALS['smarty']->force_compile = true; $click_count=get_article_click_count($arr['article_id']); $GLOBALS['smarty']->caching = $need_cache; $GLOBALS['smarty']->force_compile = $need_compile; return $click_count; }
三、在lib_article.php裏面添加上面用到的查詢數據庫的方法code
function get_article_click_count($article_id){ global $db, $ecs; $sql = "SELECT CLICK_COUNT FROM ".$ecs->table('article').' where article_id='.$article_id; $click_count= $db->getOne($sql); return $click_count; }