zoukankan      html  css  js  c++  java
  • 在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, ' .
                    &quNULLser_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.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'];


    第二步(以官方默认模板为例):

    修改 htemes/default/library/goods_list.lbi 文件

    找到

    <a href="javascript:collect({$goods.goods_id});" class="f6">{$lang.btn_collect}</a>

    在它上面增加

    <img src="images/stars{$goods.comment_rank}.gif"  style="78px;height:15px;" /><br>  
    评论数:{$goods.comment_count}<br>


    结束语:

    大家都知道ECSHOP系统有缓存机制,如果某个商品有了新的评论,列表页的评论数量不会立马随着更新。得等到下次更新缓存的时候才会更新。

    如果您想列表页能即时体现评论数量的变化。只需继续进行下面修改即可

    ------------------------------------------------------------------------------------------------

    把 category.php 文件的

    $smarty->caching = true;

    修改为

    $smarty->caching = false; 

    -----------------------------------------------------------------------------------------------


    作者: 人名树影/renmingshuying
  • 相关阅读:
    48. Rotate Image
    47. Permutations II
    46. Permutations
    45. Jump Game II
    44. Wildcard Matching
    43. Multiply Strings
    42. Trapping Rain Water
    41. First Missing Positive
    40. Combination Sum II
    39. Combination Sum
  • 原文地址:https://www.cnblogs.com/cqchai/p/3016133.html
Copyright © 2011-2022 走看看