官方微博: 腾讯  
首页 > ECSHOP教程 > ECSHOP二次开发 > ECSHOP二次开发教程 > ECSHOP商品分类按推荐排序控制

ECSHOP商品分类按推荐排序控制

ECSHOP教程 / ecshop 教程网(www.ecshop119.com) 2015-04-16

很多朋友遇到这个问题,有时不希望新加的商品图片显示在首页,有些图片不够美观显示在首页会影响整体的效果,今天我们就分享一下ecshop开发之控制首页分类商品显示和排序,帮助大家解决难题。
其实排序这个问题并不难解决:

找到lib_goods.php 这个文件,找到function assign_cat_goods($cat_id, $num = 0, $from = 'web') 函数

{
    $children = get_children($cat_id);
    $sql = 'SELECT g.goods_id, g.goods_name, g.market_price, g.shop_price AS org_price, ' .
                "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, ".
               'g.promote_price, promote_start_date, promote_end_date, g.goods_brief, g.goods_thumb, g.goods_img ' .  ecshop开发相关知识
            "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 g.is_on_sale = 1 AND g.is_alone_sale = 1 AND '.
                'g.is_delete = 0 AND (' . $children . 'OR ' . get_extension_goods($children) . ') ' .
            'ORDER BY g.sort_order DESC, g.goods_id DESC';
}

这里面的排序代码 'ORDER BY g.sort_order, g.goods_id DESC';
desc是递减排序,而sql默认的是递增的,
将'ORDER BY g.sort_order, g.goods_id DESC'修改为
 'ORDER BY g.sort_order DESC, g.goods_id DESC';
好了修改完代码,我们还需要修改一下首页需要显示商品的推荐顺序,假如你的首页商品分类都显示10个商品。就按照1,2,3,4,5,6,7,8,9,10排序就可以了。显示顺序也可以自己控制的哦!其他的设置为最小的数字(0)不变!只要大于等于1 的就显示在前面 默认为0(或者推荐排序值相同的)的按照上架顺序显示.

ecshop开发实现首页特定分类商品显示就稍微复杂一些。
在index.php中找到
assign_dynamic('index');
}
$smarty->display('index.dwt', $cache_id);
在其前面加上:
$my_cat_rec_goods=array();    ecshop开发更多知识
$children=get_children(2);
$my_cat_rec_goods[2]=get_category_recommend_goods('hot', $children);//推荐商品
$children=get_children(5);
$my_cat_rec_goods[5]=get_category_recommend_goods('hot', $children);
$children=get_children(253);
$my_cat_rec_goods[253]=get_category_recommend_goods('hot', $children);
$smarty->assign('my_cat_rec_goods', $my_cat_rec_goods);

在模板的library目录下新建一个库文件rec_cat.lbi
rec_cat.lbi的主要内容:
<!-- {if $my_cat_rec_goods[$my_rec_cat_id]} --> 
   <!--{foreach from=$my_cat_rec_goods[$my8ch_rec_cat_id] item=goods}-->
   <li><a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}"/></a></li>
    <!--{/foreach}-->
<!-- {/if} -->                 ecshop开发更多知识

在index.dwt中引用rec_cat.lb:
     {assign var="my_rec_cat_id" value=2}
       <!-- #BeginLibraryItem "/library/rec_cat.lbi" -->
      <!-- #EndLibraryItem -->
                
                {assign var="my_rec_cat_id" value=5}
       <!-- #BeginLibraryItem "/library/rec_cat.lbi" -->
      <!-- #EndLibraryItem -->
                
                {assign var="my_rec_cat_id" value=253}       ecshop开发更多知识
       <!-- #BeginLibraryItem "/library/rec_cat.lbi" -->
      <!-- #EndLibraryItem -->


这样就可以显示指定分类的推荐商品,ecshop开发并不是我们想的那么难,提高ecshop开发知识或者解决问题的能力最好的方法就是先尝试自己解决问题,这也是我学习的心得。


转载请注明:ECshop119模板屋-ECshop教程网(全国最专业的ECSHOP插件制作商-专业ECSHOP二次开发)

帮助目录

在线反馈

可以将问题或建议反馈给我们。

提交在线反馈

与网友交流ECSHOP开发修改。

加入QQ群交流