ecshop调整默认商品图片排序

2018-02-27 浏览:414
ecshop调整默认商品图片排序
评论:(0)复制地址

说明:默认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 "

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



评论:(0)复制地址
发布:苗景云 | 分类:IT技术&设计 | Tags:ECshop

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。