公告:

ecshop后台增加字段,显示在商品列表,点击可修改状态(类似“精品”“热销”等)

作者:star0312 / 时间:11年前 (2014/10/19) / 分类:Ecshop / 阅读:1378 / 评论:0

ecsho增加商品属性,ecsho添加商品属性,ecshop二次开发

效果图片:

ecshop后台增加字段,显示在商品列表,点击可修改状态(类似“精品”“热销”等)


ecshop后台增加字段,显示在商品列表,点击可修改状态(类似“精品”“热销”等)

前台效果:

ecshop后台增加字段,显示在商品列表,点击可修改状态(类似“精品”“热销”等)


0、修改之前

备份所有程序及数据,以防万一。


1、首先添加后台字段:


测试版本 ECShop_V2.7.3_UTF8

这里只讲添加一种属性的方法,添加多个自己设置下.以添加"是否有现货"属性为例


1.1数据库增加字段:

运行mysql命令,修改数据库表!

在后台“数据库管理“--“SQL查询”进行:

alter table `ecs_goods` add `goods_xianhuo` tinyint(1) NOT NULL default '';

PhpMyAdmin显示效果:

ecshop后台增加字段,显示在商品列表,点击可修改状态(类似“精品”“热销”等)


1.2 修改语言文件


前台显示语言文件修改:


打开语言文件languages\zh_cn\common.php

找到$_LANG['goods_brand'] = '商品品牌:';

在其下增加$_LANG['goods_xianhuo'] = '现货:';

这个是前台商品信息里显示的属性名称


后台语言文件修改:


打开语言文件languages\zh_cn\admin\goods.php

找到$_LANG['lab_goods_brand'] = '商品品牌:';

在其下增加$_LANG['lab_goods_xianhuo'] = '现货:';

这个是后台添加商品时显示的商品属性名称


1.3 修改商品添加入库


打开文件admin\goods.php 


从   /* 入库 */ 开始 


查找warn_number


在字段处插入goods_xianhuo,  在值处插入$_POST[goods_xianhuo], 包括逗号


比如:

warn_number, goods_xianhuo,

'$warn_number',$_POST[goods_xianhuo],


这里$_POST[goods_xianhuo] 表示提交上来的name值为goods_xianhuo的值


1.4 修改模板文件


后台模板文件:


打开后台管理模板文件 admin\templates\goods_info.htm 

 

 {html_options options=$lang.font_styles selected=$goods_name_style}
            </select>
            {$lang.require_field}</td>
          </tr>


在其下加 

<!-- 添加字段代码开始 -->
                      <tr>
            <td class="label"><?php echo $this->_var['lang']['lab_goods_xianhuo']; ?> </td>
            <td><input type="text" name="goods_xianhuo" value="{$goods.goods_xianhuo|escape}" size="20"  />
            <span id="goods_sn_notice"></span><br /> </td>
</tr>
<!-- 添加字段代码结束 -->


前台模板文件:


打开模板目录内的goods.dwt文件:

在这里,我准备这样显示:如果该商品有现货则在商品商品名称后面”现货“图标。

查找:

 
 <div class="clearfix" style="font-size:16px; font-weight:bold; padding-bottom:8px; border-bottom:1px dashed #bbb; color:#000">
 
      {$goods.goods_style_name}

在这下面添加如下代码:

 { if $goods.goods_xianhuo == 1}
 
    <img src="/images/tag1.gif">
       
{/if}


效果如下:


ecshop后台增加字段,显示在商品列表,点击可修改状态(类似“精品”“热销”等)


===========至此,添加字段工作完成,下面实现在后台列表页显示,点击修改数据功能。===========


2、修改后台商品列表显示


2.1修改列表页面

打开\admin\templates\goods_list.htm

共两处:

第一处:查找

 <th><a href="javascript:listTable.sort('is_hot'); ">{$lang.is_hot}</a>{$sort_is_hot}</th>

在其下添加如下代码

 <th><a href="#####">{$lang.goods_xianhuo}</a></th>

在这里本字段没必要做排序动作,所以连接我设置为"#####"


第二处:查找

 <td align="center"><img src="images/{if $goods.is_hot}yes{else}no{/if}.gif" onclick="listTable.toggle(this, 'toggle_hot', {$goods.goods_id})" /></td>

在其下添加如下代码:

<td align="center"><img src="images/{if $goods.goods_xianhuo}yes{else}no{/if}.gif" onclick="listTable.toggle(this, 'toggle_xianhuo', {$goods.goods_id})" /></td>


2.2添加读取数据库goods_xianhuo数据

打开\admin\includes\lib_goods.php文件,查找如下代码:


 /* 分页大小 */
        $filter = page_and_size($filter);

        $sql = "SELECT goods_id, goods_name, goods_type, goods_sn, shop_price, is_on_sale, is_best, is_new, is_hot,sort_order, goods_number, integral, " .


在”is_hot“后面 添加" goods_xianhuo, ",不要忘记半角逗号,变成如下:


 /* 分页大小 */
        $filter = page_and_size($filter);

        $sql = "SELECT goods_id, goods_name, goods_type, goods_sn, shop_price, is_on_sale, is_best, is_new, is_hot, goods_xianhuo, sort_order, goods_number, integral, " .

保存,生效。


2.2设置点击图标后的处理方法:

打开\admin\goods.php文件,查找并复制如下代码:

/*------------------------------------------------------ */
//-- 修改热销推荐状态
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'toggle_hot')
{
    check_authz_json('goods_manage');

    $goods_id       = intval($_POST['id']);
    $is_hot         = intval($_POST['val']);

    if ($exc->edit("is_hot = '$is_hot', last_update=" .gmtime(), $goods_id))
    {
        clear_cache_files();
        make_json_result($is_hot);
    }
}


复制一份上述代码,在下方粘贴,并修改成如下:

/*------------------------------------------------------ */
//-- 修改是否有现货状态
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'toggle_xianhuo')
{
    check_authz_json('goods_manage');

    $goods_id       = intval($_POST['id']);
    $goods_xianhuo         = intval($_POST['val']);

    if ($exc->edit("goods_xianhuo= '$goods_xianhuo', last_update=" .gmtime(), $goods_id))
    {
        clear_cache_files();
        make_json_result($goods_xianhuo);
    }
}



3、保存所有文件,上传覆盖,调整显示细节,完工。



  • 我的QQ二维码
  • QQ群
  • 我的微信二维码
  • 微信公众号

没有评论,留下你的印记,证明你来过。


发表评论:

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