Ecshop添加添加新的商品相册图后,该图片就会置于商品相册的最后一个,于是前台显示放大图就会于相册第一张不同。原因是代码里面没有排序。
解决方法1:
找到include/lib_goods.php文件中“获得指定商品的相册”的get_goods_gallery函数,查找代码如下:
" WHERE goods_id = '$goods_id' LIMIT "
大概在代码730行,如图所示
更改为:
" 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
除非注明,文章均为 《太阳花工作室》 原创,欢迎转载!转载请注明本文地址,谢谢。