软博

软件让工作更便利

ECShop——给商品详情页添加字段

2010年11月04日

发表在 网络技术 标签: 阅读次数:18,094 次

  这两天在玩ECShop网店系统,对于一个技术外行,ECShop还是挺容易上手的,系统本身就提供了很多功能,一般情况下使用默认的功能就足够了。但是通用的东西肯定不能满足所有的用户需求,比如商品详细页的描述,就几乎没法做到适合所有商品,所以给商品页增加显示字段以更好地描述商品就显得很必要。下面就结合我这两天的经历,讲述一下怎样给商品页增加一个字段。

  其实,增加商品页的显示内容,除了增加字段外,还有一个简单的方法就是通过添加商品属性来解决。这个操作很简单,只要在管理后台操作就行了,具体位置就是“商品管理——商品类型——新建商品类型”(图1),输入商品类型比如“游戏点卡”确定返回商品类型列表,然后在新建的“游戏点卡”的类型后面点击“属性列表”(图2),点击“添加属性”按钮(图3),选择相应选项即可(图4)。通过这样操作之后,再增加新商品的时候,就可以在“商品属性”里选择商品类型“游戏点卡”,并选择相应属性(图5)。这样添加后,网店就能看到相应的属性描述(图6)。


图1:新建商品类型

 
图2:打开属性列表


图3:添加属性


图4:填写属性


图5:后台增加商品可以添加商品属性了


图6:前台显示的效果 

  通过增加属性的方法来丰富商品的描述是很简单的事,而且不需要任何技术。但是由于“商品属性”在前台显示的方式和位置的限制,有些内容需要更突出显示时,比如要显示产品的下载地址、官方网站等,通过添加“商品属性”的方式就难以实现,这时候通过增加字段就能很好地实现这种需求。

  增加字段需要操作数据库,以及修改相应的程序、模板文件,需要了解一点点技术,会依葫芦画瓢就行了 :mrgreen: 。下面就以我增加下载地址为例子,说说怎样新增字段。

  1、数据库操作

  具体就是给相应库增加一个字段,以供新增加的字段存储数据之用。可以在ECShop后台直接操作,具体位置“数据库管理——SQL查询”,输入如下命令即可

ALTER TABLE `ecs_goods` ADD `goods_downurl` VARCHAR( 32 ) NOT NULL AFTER `goods_weight` ;

  其中 ‘ecs_goods’ 是表名,’goods_downurl’ 是新增字段的字段名,AFTER `goods_weight` 表示在原有字段 `goods_weight` 后面增加新字段。这些名字改成你的实际内容就行了。如果实在不会,那就直接登录phpmyadmin直接增加就行了。

  2、修改admin/goods.php

  找到如下代码

/* 处理商品数据 */

$shop_price = !empty($_POST[‘shop_price’]) ? $_POST[‘shop_price’] : 0;

  在它下面依葫芦画瓢,增加一条代码

$goods_downurl = !empty($_POST[‘goods_downurl’]) ? $_POST[‘goods_downurl’] : 0;

  继续往下找到

if ($is_insert)
    {
        if ($code == ”)

  同样依葫芦画瓢,增加新增字段,比如在 goods_weight 后面增加 goods_downurl ,那么就要在 ‘$goods_weight’ 增加 ‘$goods_downurl’ ,必须对好位置。

  继续往下找到

 $sql = “UPDATE ” . $ecs->table(‘goods’) . ” SET ” .

  在下面依葫芦画瓢增加一行

“goods_downurl = ‘$goods_downurl’, ” .

  OK!

  3、修改admin/templates/goods_info.htm

  该文件是后台新增商品页,选择你想显示新字段的位置,输入如下代码

  <tr>
            <td>{$lang.lab_goods_downurl}</td>
            <td><input type=”text” name=”goods_downurl” value=”{$goods.goods_downurl}” size=”70″/></td>
        </tr>

  4、修改模板

  以默认模板为例,修改themes/default/goods.dwt,选择你想显示新增字段内容的地方,插入相应代码即可,比如:

<li class=”clearfix”>
     <dd>
        <strong>下载地址:<a href=”{$goods.goods_downurl}” target=”_blank”>下载1</a></strong>
     </dd>
</li>

  自己根据需要修改一下就行了。

  5、修改语言项

  经过上面的操作,基本上已经可以正常使用新字段了,为了使用方便,最好修改一下语言项,否则后台添加产品信息的时候,只看到输入框,不知道这个输入框是干什么的。

  修改languages/zh_cn/admin/goods.php,找到

/*—————————————————— */
//– 商品列表
/*—————————————————— */

  在下面添加

$_LANG[‘goods_downurl’] = ‘下载地址’;

  继续往下找到

/*—————————————————— */
//– 添加/编辑商品信息
/*—————————————————— */

  在下面添加

$_LANG[‘lab_goods_downurl’] = ‘下载地址:’;

  OK,全部工作完成!

小插曲

  刚开始的时候,按照上面的方法增加字段之后,显示一切正常,但是在后台输入字段相应信息之后却没法存入数据库,烦恼了我很久。自己又不懂技术,也就会依葫芦画瓢,后来没办法把字段类型改成了数字,设了一个默认值,然后在程序文件原样拷贝了一段正常的程序,然后再把字段名改成新增的,奇迹于是就发生了——能够将新字段数据存入数据库了!然后再把字段类型改回来,一切OK!


该日志有 3 条评论

  1. 阿雅说道:

    你好,上面的文件内容我修改测试过了,没有问题。很好的东西,已经寻找了很久!谢谢你的无私提供!不过还有一点美中不足的地方就是:后台文本框内如果不添加内容时,前台显示为“0”。麻烦你能否提示一下后台不添加内容时前台显示为空的修改方法呢?你的贡献对我们这些新手来会有很大帮助!如果你愿意也可以有偿提供!我的qq;758204512 我会随时关注你的这篇文章的更新!谢谢!

    • harri说道:

      $goods_downurl = !empty($_POST['goods_downurl']) ? $_POST['goods_downurl'] : 0;

      admin/goods.php文件中,/* 处理商品数据 */后面找到相关字段的处理语句,如上,然后把最后面的那个“0”改掉,比如全角的空格,这样前台就显示全角空格,但是用户看不到。或者别的你想默认显示的东西。直接删除“0”会导致程序出错。

  2. 说道:

    ecshop 商品首页进入详情页面,商品的标题、商品的库存、商品的货号、商品的重量等都不显示。请问这是什么问题。(缓存已清除)。如果知道,请帮帮忙!

想看贴不回贴?小心我踢你^_^

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)