ecshop 實時刷新瀏覽次數

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;
}
相關文章
相關標籤/搜索