ECShop——给商品详情页添加字段
2010年11月04日
harri 发表在 网络技术 标签:ECShop 阅读次数:22,673 次
这两天在玩ECShop网店系统,对于一个技术外行,ECShop还是挺容易上手的,系统本身就提供了很多功能,一般情况下使用默认的功能就足够了。但是通用的东西肯定不能满足所有的用户需求,比如商品详细页的描述,就几乎没法做到适合所有商品,所以给商品页增加显示字段以更好地描述商品就显得很必要。下面就结合我这两天的经历,讲述一下怎样给商品页增加一个字段。
其实,增加商品页的显示内容,除了增加字段外,还有一个简单的方法就是通过添加商品属性来解决。这个操作很简单,只要在管理后台操作就行了,具体位置就是“商品管理——商品类型——新建商品类型”(图1),输入商品类型比如“游戏点卡”确定返回商品类型列表,然后在新建的“游戏点卡”的类型后面点击“属性列表”(图2),点击“添加属性”按钮(图3),选择相应选项即可(图4)。通过这样操作之后,再增加新商品的时候,就可以在“商品属性”里选择商品类型“游戏点卡”,并选择相应属性(图5)。这样添加后,网店就能看到相应的属性描述(图6)。
通过增加属性的方法来丰富商品的描述是很简单的事,而且不需要任何技术。但是由于“商品属性”在前台显示的方式和位置的限制,有些内容需要更突出显示时,比如要显示产品的下载地址、官方网站等,通过添加“商品属性”的方式就难以实现,这时候通过增加字段就能很好地实现这种需求。
增加字段需要操作数据库,以及修改相应的程序、模板文件,需要了解一点点技术,会依葫芦画瓢就行了 。下面就以我增加下载地址为例子,说说怎样新增字段。
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!
你好,上面的文件内容我修改测试过了,没有问题。很好的东西,已经寻找了很久!谢谢你的无私提供!不过还有一点美中不足的地方就是:后台文本框内如果不添加内容时,前台显示为“0”。麻烦你能否提示一下后台不添加内容时前台显示为空的修改方法呢?你的贡献对我们这些新手来会有很大帮助!如果你愿意也可以有偿提供!我的qq;758204512 我会随时关注你的这篇文章的更新!谢谢!
$goods_downurl = !empty($_POST['goods_downurl']) ? $_POST['goods_downurl'] : 0;
admin/goods.php文件中,/* 处理商品数据 */后面找到相关字段的处理语句,如上,然后把最后面的那个“0”改掉,比如全角的空格,这样前台就显示全角空格,但是用户看不到。或者别的你想默认显示的东西。直接删除“0”会导致程序出错。
ecshop 商品首页进入详情页面,商品的标题、商品的库存、商品的货号、商品的重量等都不显示。请问这是什么问题。(缓存已清除)。如果知道,请帮帮忙!