Dream Maker 老漂 不要有和人斗的心,你要赢的是你自己!

ecshop新增多个商品描述字段

ECSHOP各版本的商品信息表中都只提供了一个 text 类型的字段,通常不能满足应用需要,所以自己动手。
完成后效果如下:
前台商品展示页:

后台商品添加修改页:
下面讲解修改方法:

首先在数据库中的商品信息表添加相应字段。

添加字段的SQL语句为:

1
ALTER TABLE `ecs(前缀)_goods` ADD `goods_desc1` TEXT NOT NULL AFTER `goods_desc`;
然后修改后台相关文件与模版。

后台中编辑器是FCKeditor,先到 admin/includes/lib_main.php 中参照 create_html_editor 函数添加一个新的函数用来生成后台编辑器。添加函数如下:

01
function pv_create_html_editor($input_name, $input_value = '', $i)
02
{
03
global $smarty;
04

05
$editor = new FCKeditor($input_name);
06
$editor->BasePath = '../includes/fckeditor/';
07
$editor->ToolbarSet = 'Normal';
08
$editor->Width = '100%';
09
$editor->Height = '320';
10
$editor->Value = $input_value;
11
$FCKeditorx = $editor->CreateHtml();
12
$smarty->assign('FCKeditor'.$i, $FCKeditorx);
13
}
然后打开 admin/goods.php ,查找 create_html_editor ,并在其后添加如下语句:

1
pv_create_html_editor('goods_desc1', $goods['goods_desc1'], 1);
继续在admin/goods.php中查找所有 goods_desc ,相应新增 goods_desc1

如在

1
'goods_desc' = '',
的后面添加

1
'goods_desc1' => '',
以及将

01
$sql = "INSERT INTO " . $ecs->table('goods') . " (goods_name, goods_name_style, goods_sn, " .
02
"cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " .
03
"promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, " .
04
"seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, " .
05
"is_on_sale, is_alone_sale, goods_desc, add_time, last_update, goods_type, rank_integral)" .
06
"VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .
07
"'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', ".
08
"'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', ".
09
"'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".
10
" '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', '$is_on_sale', '$is_alone_sale', ".
11
" '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral')";
改为

01
$sql = "INSERT INTO " . $ecs->table('goods') . " (goods_name, goods_name_style, goods_sn, " .
02
"cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " .
03
"promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, " .
04
"seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, " .
05
"is_on_sale, is_alone_sale, goods_desc, goods_desc1, add_time, last_update, goods_type, rank_integral)" .
06
"VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .
07
"'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', ".
08
"'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', ".
09
"'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".
10
" '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', '$is_on_sale', '$is_alone_sale', ".
11
" '$_POST[goods_desc]', '$_POST[goods_desc1]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral')";

接下来修改后台模板文件admin/templates/goods_info.htm
共有两处改动。
一是在

1
<span id="detail-tab" class="tab-back">{$lang.tab_detail}</span>
后面添加

1
<span id="detail1-tab" class="tab-back">{$lang.tab_detail1}</span>
另一处是在

1
<!-- 详细描述 -->
2
<table width="90%" id="detail-table" style="display:none">
3
<tr>
4
<td>{$FCKeditor}</td>
5
</tr>
6
</table>
后添加

1
<!-- 详细描述1 -->
2
<table width="90%" id="detail1-table" style="display:none">
3
<tr>
4
<td>{$FCKeditor1}</td>
5
</tr>
6
</table>
注意标签栏与内容框ID的对应关系:
detail-tab 对应的是 detail-table
detail1-tab 对应的是 detail1-table
还可以继续添加
detail2-tab 对应 detail2-table
以及更多。

然后在语言包文件languages/zh_cn/admin/goods.php中添加

1
$_LANG['tab_detail1'] = '成分(举例)';
就完成了。

之后,后台就有两个详细描述字段了。
你就可以在前台模板文件中以{$goods.goods_desc1}来引用新添加字段中的内容了。

附:修改好的文件包,直接上传覆盖,并在数据库中添加相应字段goods_desc1即可使用。

Tags: ecshop

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 86
留言列表
发表留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。