接触ECSHOP快一个月了,发现ECSHOP的问题还是比较多的,不太智能化啊~很多功能都要二次开发。XX话不多说,默认的效果是下图所示。

ECSHOP商品列表默认排序
ECSHOP商品列表默认排序

我们想在商品列表默认显示后台的推荐排序,就是后台可以控制商品列表的每个产品的排序。

ECSHOP商品列表默认后台推荐排序
ECSHOP商品列表默认后台推荐排序

下图更加直观一点,我们就想把商品列表中的产品都按照后台的推荐排序排列!

后台推荐排序
后台推荐排序

网上搜索了很久,发现还是没有这功能的文章,我就写一下吧。

1.后台的推荐排序就是sort_order表,原本已经有sort_order表了,就不用特意去添加了。

2.打开根目录下文件:flow.php ,找到下面的代码:

/* 插入订单商品 */
$sql = “INSERT INTO ” . $ecs->table(‘order_goods’) . “( ” .
“order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, “.
“goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) “.
” SELECT ‘$new_order_id’, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, “.
“goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id”.
” FROM ” .$ecs->table(‘cart’) .
” WHERE session_id = ‘”.SESS_ID.”‘ AND rec_type = ‘$flow_type'”;
$db->query($sql);

在这段代码的下面,添加如下代码:

/* 插入商品表的salesnum 字段,统计销量排行 */
$sql = “update ” .$GLOBALS[‘ecs’]->table(‘goods’) . ” AS a, “.$GLOBALS[‘ecs’]->table(‘cart’) . ” AS b “.
” set a.sort_order= a.sort_order+ b.goods_number”.
” WHERE a.goods_id=b.goods_id AND b.session_id = ‘”.SESS_ID.”‘ AND b.rec_type = ‘$flow_type'”;
$db->query($sql);

3.打开文件:default\library\goods_list.lbi,找到下面的代码:

  <a href=”category.php?category={$category}&display={$pager.display}&brand={$brand_id}&price_min={$price_min}&price_max={$price_max}&filter_attr={$filter_attr}&page={$pager.page}&sort=last_update&order=<!– {if $pager.sort == ‘last_update’ && $pager.order == ‘DESC’} –>ASC<!– {else} –>DESC<!– {/if} –>#goods_list”><img src=”images/last_update_<!– {if $pager.sort == ‘last_update’} –>{$pager.order}<!– {else} –>default<!– {/if} –>.gif” alt=”{$lang.sort.last_update}”></a>

在下面那段代码的下面添加:

  <a href=”{$script_name}.php?category={$category}&display={$pager.display}&brand={$brand_id}&price_min={$price_min}&price_max={$price_max}&filter_attr={$filter_attr}&page={$pager.page}&sort=sort_order&order=<!– {if $pager.sort == ‘sort_order’ && $pager.order == ‘DESC’} –>ASC<!– {else} –>DESC<!–{/if} –>#goods_list”><img src=”images/sales_<!– {if $pager.sort == ‘sort_order’} –>{$pager.order}<!– {else} –>default<!– {/if} –>.gif” alt=”按销量排行”></a>

4.打开文件:category.php和brand.php,找到如下代码:

$sort  = (isset($_REQUEST[‘sort’])  && in_array(trim(strtolower($_REQUEST[‘sort’])), array(‘goods_id’, ‘shop_price’, ‘last_update’ ))) ? trim($_REQUEST[‘sort’])  :

修改为:

$sort  = (isset($_REQUEST[‘sort’])  && in_array(trim(strtolower($_REQUEST[‘sort’])), array(‘goods_id’, ‘shop_price’, ‘last_update’ ,’sort_order‘))) ? trim($_REQUEST[‘sort’])  :

5.将推荐排序设置为默认的排序

打开文件:category.php和brand.php,找到如下代码:

/* 排序、显示方式以及类型 */
$default_display_type = $_CFG[‘show_order_type’] == ‘0’ ? ‘list’ : ($_CFG[‘show_order_type’] == ‘1’ ? ‘grid’ : ‘text’);
$default_sort_order_method = $_CFG[‘sort_order_method’] == ‘0’ ? ‘DESC’ : ‘ASC’;
$default_sort_order_type = $_CFG[‘sort_order_type’] == ‘0’ ? ‘goods_id’ : ($_CFG[‘sort_order_type’] == ‘1’ ? ‘shop_price’ : ‘last_update’);

修改为:

/* 排序、显示方式以及类型 */
$default_display_type = $_CFG[‘show_order_type’] == ‘0’ ? ‘list’ : ($_CFG[‘show_order_type’] == ‘1’ ? ‘grid’ : ‘text’);
$default_sort_order_method = $_CFG[‘sort_order_method’] == ‘1‘ ? ‘DESC’ : ‘ASC’;
$default_sort_order_type = ‘sort_order‘;

OK,完工。累啊累啊啊啊啊!!!折腾ECSHOP比折腾Wordpress累好多啊!!!!!好不容易找到一个插件,发现收费的!妹的。自己动手!哎

# # #

2013 年 05 月 29 日

Comments

发表评论