您的位置:首页 > 运维架构

ECShop 产品属性选项增加提示信息

2012-08-30 21:37 239 查看
本文章所涉及的 前台页面显示 与 截图 是基于SuperFly模版的修改, 而使用不同模版的就按具体情况做相应的修改.

1.本方法修改了数据库, 那首先就添加字段, 当然也可以将此步骤放于最后.

修改数据表goods_attr, 添加一名为 attr_tips 的字段.

alter table ecs_goods_attr add attr_tips text Null;

 

2.修改admin/includes/lib_goods.php

(1)修改 get_attr_list 函数中的$sql变量, 增加提取的数据项 v.attr_tips

(2)找到 $html .= ($val['attr_type'] == 1 || $val['attr_type'] == 2), 修改 build_attr_html 函数, 大约在714行.

在这句后增加下面代码:

$html .= '<span>   属性提示:<textarea rows="1" cols="50" name="attr_tips_list[]" style="height:17px">' . $val['attr_tips'] . '</textarea></span>';//stephen

 

3.修改admin/goods.php

(1)修改复制商品时, 同时复制属性值的内容

找到 $sql = "DELETE FROM " . $ecs->table('goods_attr') . " WHERE goods_id = 0";  , 大约在354行, 增加提取的数据项 attr_tips

(2)继续修改, 找到 $attr_price = $_POST['attr_price_list'][$key]; 大约在976行, 后面添加:

$attr_tips = $_POST['attr_tips_list'][$key];

(3)找到$goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price; 后两处, 大约在983行和989行, 后面分别添加:

$goods_attr_list[$attr_id][$attr_value]['attr_tips'] = $attr_tips;

(4)找到 if ($info['sign'] == 'insert') 大约在1020, 在后面增加插入的数据项 attr_tips , 对应的值为 $info[attr_tips] , 修改后效果如下:

$sql = "INSERT INTO " .$ecs->table('goods_attr'). " (attr_id, goods_id, attr_value, attr_price, attr_tips)".
"VALUES ('$attr_id', '$goods_id', '$attr_value', '$info[attr_price]', '$info[attr_tips]')";

(5)找到 elseif ($info['sign'] == 'update') 大约在1025, 在后面增加插入的数据项 attr_tips , 对应的值为 $info[attr_tips] , 修改后效果如下:

$sql = "UPDATE " .$ecs->table('goods_attr'). " SET attr_price = '$info[attr_price]', attr_tips = '$info[attr_tips]' WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";

后台页面添加效果截图:


这里就完成了后台添加,数据插入操作的修改了

4.修改includes/lib_goods.php

(1)修改 get_goods_properties 函数中获得商品的规格的$sql变量, 大约在626行, 增加提取的数据项 g.attr_tips

(2)修改 get_goods_properties 函数中循环保存属性值的数组语句, $arr['spe'][$row['attr_id']]['values'][] , 添加一参数 'tips' => $row['attr_tips'] , 修改后效果如下:

$arr['spe'][$row['attr_id']]['values'][] = array(
'label'        => $row['attr_value'],
'price'        => $row['attr_price'],
'format_price' => price_format(abs($row['attr_price']), false),
'id'           => $row['goods_attr_id'],
'tips'         => $row['attr_tips']);

 

5.修改相应的前台调用页面 themes/vanity/library/goods_detail.lbi , 这里使用不同的模版, 找回自己产品页内容相应调用的文件

(1)找到 {foreach from=$spec.values item=value key=key} 的循环函数, 在label 标签的title 属性上添加 {$value.tips} 调用参数, 修改后效果如下:

<label for="spec_value_{$value.id}" title="{$value.tips}{if $value.tips neq ''}<br/>{/if}{if $value.price gt 0}{$lang.plus}{$value.format_price|abs}{elseif $value.price lt 0}{$lang.minus}{$value.format_price|abs}{/if}">

前台显示效果截图:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐