ecshop调整默认商品图片排序、增加可自定义排序功能。

Ecshop添加添加新的商品相册图后,该图片就会置于商品相册的最后一个,于是前台显示放大图就会于相册第一张不同。原因是代码里面没有排序。


解决方法1:

找到include/lib_goods.php文件中“获得指定商品的相册”的get_goods_gallery函数,查找代码如下:

 " WHERE goods_id = '$goods_id' LIMIT "

 

大概在代码730行,如图所示


blob.png



更改为:

 " WHERE goods_id = '$goods_id' ORDER BY img_id ASC LIMIT "

 

解决方法2: 增加可自定义排序功能 。步骤如下:

 

一, 执行sql:

ALTER TABLE  `ecs_goods_gallery`ADD`img_order`SMALLINT(4) UNSIGNED NOT NULL DEFAULT '50'AFTER`img_original`;

 

二, 后台修改

打开文件 admin/templates/goods_info.htm  搜索  

 <input type="text" value="{$img.img_desc|escape}" size="15" name="old_img_desc[{$img.img_id}]" />


 

后面添加代码

<br />
       <br />
       {$lang.sort_order}
       <input type="text" value="{$img.img_order}" size="5" name="img_order[{$img.img_id}]" /> 

 

          

三、打开文件 admin/goods.php

搜索  /* 编辑时处理相册图片描述 */ 这一段if语句 后面添加:

 

 /* 增加自定义可修改商品相册排序 */
    if (!$is_insert && isset($_POST['img_order']))
    {
        foreach ($_POST['img_order'] AS $img_id => $img_order)
        {
            $sql = "UPDATE " . $ecs->table('goods_gallery') . " SET img_order = '$img_order' WHERE img_id = '$img_id' LIMIT 1";
            $db->query($sql);
        }
    }

 

搜索 $img_list = $db->getAll($sql); 上面一段sql 修改为:

$sql = "SELECT * FROM ".$ecs->table('goods_gallery')." WHERE goods_id = '$goods[goods_id]' ORDER BY img_order ASC";

 

 

四、至此后台修改完毕,下面去修改前台调用

打开文件 includes/lib_goods.php 搜索函数 function get_goods_gallery  里面的 " WHERE goods_id = '$goods_id' LIMIT "  

修改为:

WHERE goods_id = '$goods_id' ORDER BY img_order ASC LIMIT "

默认排序是顺序排序,从小到大,也可以修改为从大到小。

版权所有:《太阳花工作室》 => 《ecshop调整默认商品图片排序、增加可自定义排序功能。
本文地址:http://bg.artuion.com/代码/330.html
除非注明,文章均为 《太阳花工作室》 原创,欢迎转载!转载请注明本文地址,谢谢。