ECSHOP商品列表頁顯示每個商品的評論等級、評論數量、點擊量、銷售量!

解決方法:
第一步:
首先修改category.php 文件,定位到 category_get_goods() 函數部分
找到

$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ' .
"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, g.promote_price, g.goods_type, " .
'g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img ' .
'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('member_price') . ' AS mp ' .
"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' " .
"WHERE $where $ext ORDER BY $sort $order";

將之修改爲

$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price,g.click_count, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ' .
"IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, g.promote_price, g.goods_type, " .
" IFNULL(AVG(r.comment_rank),0) AS comment_rank,IF(r.comment_rank,count(*),0) AS comment_count, ".
'g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img ' .
'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('member_price') . ' AS mp ' .
"ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' " .
' LEFT JOIN '. $GLOBALS['ecs']->table('comment') .' AS r '.
'ON r.id_value = g.goods_id AND comment_type = 0 AND r.parent_id = 0 AND r.status = 1 ' .
"WHERE $where $ext group by g.goods_id ORDER BY $sort $order";

然後繼續找到

$arr[$row['goods_id']]['url'] = build_uri('goods', array('gid'=>$row['goods_id']), $row['goods_name']);

在它下面增加幾行代碼

$row['comment_rank'] = ceil($row['comment_rank']) == 0 ? 5 : ceil($row['comment_rank']);
$arr[$row['goods_id']]['comment_rank']=$row['comment_rank'];
$arr[$row['goods_id']]['comment_count']=$row['comment_count'];

$arr[$row['goods_id']]['buy_num'] = get_buy_sum($row['goods_id']);
$arr[$row['goods_id']]['click_count'] = $row['click_count'];

第二步

第1步:打開文件 includes/lib_goods.php
在該文件的末尾添加如下代碼片段

function get_buy_sum($goods_id)
{
$sql = "select sum(goods_number) from " . $GLOBALS['ecs']->table('order_goods') . " AS g ,".$GLOBALS['ecs']->table('order_info') . " AS o WHERE o.order_id=g.order_id and g.goods_id = " . $goods_id ;
return $GLOBALS['db']->getOne($sql);
}

第三步(以官方默認模板爲例):
修改 themes/default/library/goods_list.lbi 文件
找到

<img src="p_w_picpaths/stars{$goods.comment_rank}.gif" style="width:78px;height:15px;" /><br> 評論數:{$goods.comment_count}<br>點擊量: {$goods.click_count}<br>銷售量:{if $goods.buy_num}{$goods.buy_num}{else}0{/if}<br>

結束語:
大家都知道ECSHOP系統有緩存機制,如果某個商品有了新的評論,列表頁的評論數量不會立馬隨着更新。得等到下次更新緩存的時候纔會更新。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章