为ecshop用户提供商品批注功能
2016-09-07 22:02 来源:www.chinab4c.com 作者:ecshop专家
1. 每个ecshop登录的用户在购物过程中的商品列表页、商品详细页、购物车都可以对商品进行批注; 2. 要求1中的批注会显示在订单中每个商品项中; 3. 用户每次登陆之后清除上次的批注。 【1】增加两个表:-- ---------------------------- -- Table structure for `order_comment` -- ---------------------------- DROP TABLE IF EXISTS `order_comment`; CREATE TABLE `order_comment` ( `order_id` mediumint(8) NOT NULL, `goods_id` mediumint(8) NOT NULL, `goods_comment` varchar(500) DEFAULT NULL, PRIMARY KEY (`order_id`,`goods_id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; -- ---------------------------- -- Table structure for `goods_comment` -- ---------------------------- DROP TABLE IF EXISTS `goods_comment`; CREATE TABLE `goods_comment` ( `goods_id` mediumint(8) NOT NULL, `user_id` mediumint(8) NOT NULL, `goods_comment` varchar(500) DEFAULT NULL, PRIMARY KEY (`goods_id`,`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk; 【2】themes\\default\\library\\goods_list.lbi文件中: <a href="javascript:;" id="compareLink" onClick="Compare.add({$goods.goods_id},'{$goods.goods_name|escape:"html"}','{$goods.type}')" class="f6">{$lang.compare}</a> 后边增加: <!--{if $smarty.session.user_id}--> {$lang.my_goods_comment}:<textarea onclick="addGoodsComment(this, {$goods.goods_id})" style="width:90%;">{$goods.goods_comment}</textarea> <br /> <!--{/if}--> 【3】themes\\default\\user_transaction.dwt文件中: <th width="23%" align="center" bgcolor="#ffffff">{$lang.goods_name}</th> <th width="29%" align="center" bgcolor="#ffffff">{$lang.goods_attr}</th> 后面增加: <!--{if $smarty.session.user_id}--> <th bgcolor="#ffffff">{$lang.my_goods_comment}</th> <!--{/if}--> 在: <td align="left" bgcolor="#ffffff">{$goods.goods_attr|nl2br}</td> 后边增加: <!--{if $smarty.session.user_id}--> <td align="right" bgcolor="#ffffff"> {$goods.goods_comment} </td> <!--{/if}--> 【4】themes\\default\\goods.dwt文件中: <li class="padd"> <a href="javascript:addToCart({$goods.goods_id})"><img src="images/bnt_cat.gif" /></a> <a href="javascript:collect({$goods.goods_id})"><img src="images/bnt_colles.gif" /></a> <!-- {if $affiliate.on} --> <a href="user.php?act=affiliate&goodsid={$goods.goods_id}"><img src='images/bnt_recommend.gif'></a> <!-- {/if} --> </li> 后边增加: <li> <!--{if $smarty.session.user_id}--> {$lang.my_goods_comment}:<textarea onclick="addGoodsComment(this, {$goods.goods_id})" style="width:90%;">{$goods.goods_comment}</textarea> <!--{/if}--> </li> 【5】themes\\default\\flow.dwt文件中: <th bgcolor="#ffffff">{$lang.goods_name}</th> <!-- {if $show_goods_attribute eq 1} 显示商品属性 --> <th bgcolor="#ffffff">{$lang.goods_attr}</th> <!-- {/if} --> 后边增加: <!--{if $smarty.session.user_id}--> <th bgcolor="#ffffff">{$lang.my_goods_comment}</th> <!--{/if}--> 在: <!-- {if $show_goods_attribute eq 1} 显示商品属性 --> <td bgcolor="#ffffff">{$goods.goods_attr|nl2br}</td> <!--{/if}--> 后边增加: <!--{if $smarty.session.user_id}--> <td align="right" bgcolor="#ffffff"> <textarea onclick="addGoodsComment(this, {$goods.goods_id})" style="width:90%;">{$goods.goods_comment}</textarea> </td> <!-- {/if} --> 在: <th bgcolor="#ffffff">{$lang.goods_name}</th> <th bgcolor="#ffffff">{$lang.goods_attr}</th> 后边增加: <!--{if $smarty.session.user_id}--> <th bgcolor="#ffffff">{$lang.my_goods_comment}</th> <!--{/if}--> 在: <!-- {if $goods.is_shipping} -->(<span style="color:#FF0000">{$lang.free_goods}</span>)<!-- {/if} --> </td> <td bgcolor="#ffffff">{$goods.goods_attr|nl2br}</td> 后边增加: <!--{if $smarty.session.user_id}--> <td align="right" bgcolor="#ffffff"> <textarea onclick="addGoodsComment(this, {$goods.goods_id})" style="width:90%;">{$goods.goods_comment}</textarea> </td> <!--{/if}--> 【6】languages\\zh_cn\\admin\\common.php文件中增加: $_LANG['my_goods_comment'] = '批注'; 【7】languages\\zh_cn\\common.php文件中增加: $_LANG['my_goods_comment'] = '批注'; 【8】js\\common.js文件中增加: /* * 将用户对商品的批注写到数据库中 */ function addGoodsComment(obj, goodsId) { /* 保存原始的内容 */ var orgComment = obj.value; /* 编辑区失去焦点的处理函数 */ obj.onblur = function(e) { var newComment = obj.value; if (newComment != orgComment) { res = Ajax.call("./goods.php?is_ajax=1", "act=edit_goods_comment&val=" + encodeURIComponent(Utils.trim(newComment)).toJSONString() + "&id=" +goodsId, null, "POST", "JSON", false); if (res.message) { alert(res.message); } } } } 【9】includes\\lib_order.php文件中: $sql = "SELECT rec_id, goods_id, goods_name, goods_sn, market_price, goods_number, " . "goods_price, goods_attr, is_real, parent_id, is_gift, " . "goods_price * goods_number AS subtotal, extension_code " . "FROM " . $GLOBALS['ecs']->table('order_goods') . " WHERE order_id = '$order_id'"; 改为: $sql = "SELECT rec_id, order_goods.goods_id, goods_name, goods_sn, market_price, goods_number, " . "goods_price, goods_attr, is_real, parent_id, is_gift, " . "goods_price * goods_number AS subtotal, extension_code, oc.goods_comment " . "FROM " . $GLOBALS['ecs']->table('order_goods') . " " . "LEFT JOIN order_comment as oc ON oc.goods_id = order_goods.goods_id AND oc.order_id = '" . $order_id . "' ". "WHERE order_goods.order_id = '$order_id'"; 将: $sql = "SELECT rec_id, user_id, goods_id, goods_name, goods_sn, goods_number, " . "market_price, goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, is_shipping, " . "goods_price * goods_number AS subtotal " . "FROM " . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '" . SESS_ID . "' " . "AND rec_type = '$type'"; 改为: $sql = "SELECT rec_id, cart.user_id, cart.goods_id, goods_name, goods_sn, goods_number, " . "market_price, goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, is_shipping, " . "goods_price * goods_number AS subtotal, gc.goods_comment " . "FROM " . $GLOBALS['ecs']->table('cart') . " " . "LEFT JOIN goods_comment as gc ON gc.goods_id = cart.goods_id AND gc.user_id = cart.user_id ". "WHERE session_id = '" . SESS_ID . "' " . "AND rec_type = '$type'"; 将: /* 循环、统计 */ $sql = "SELECT *, IF(parent_id, parent_id, goods_id) AS pid " . " FROM " . $GLOBALS['ecs']->table('cart') . " " . " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'" . " ORDER BY pid, parent_id"; 改为: /* 循环、统计 */ $sql = "SELECT *, IF(parent_id, parent_id, cart.goods_id) AS pid, gc.goods_comment " . " FROM " . $GLOBALS['ecs']->table('cart') . " " . "LEFT JOIN goods_comment as gc ON gc.goods_id = cart.goods_id AND gc.user_id = cart.user_id ". "WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'" . "ORDER BY pid, parent_id"; 【10】includes\\lib_goods.php文件中: $sql = 'SELECT g.*, c.measure_unit, b.brand_id, b.brand_name AS goods_brand, m.type_money AS bonus_money, ' . 'IFNULL(AVG(r.comment_rank), 0) AS comment_rank, ' . "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS rank_price " . 'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS c ON g.cat_id = c.cat_id ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON g.brand_id = b.brand_id ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('comment') . ' AS r '. 'ON r.id_value = g.goods_id AND comment_type = 0 AND r.parent_id = 0 AND r.status = 1 ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('bonus_type') . ' AS m ' . "ON g.bonus_type_id = m.type_id AND m.send_start_date <= '$time' AND m.send_end_date >= '$time'" . " LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ". "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ". "WHERE g.goods_id = '$goods_id' AND g.is_delete = 0 " . "GROUP BY g.goods_id"; 改为: $sql = 'SELECT g.*, c.measure_unit, b.brand_id, b.brand_name AS goods_brand, m.type_money AS bonus_money, ' . 'IFNULL(AVG(r.comment_rank), 0) AS comment_rank, ' . "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS rank_price, gc.goods_comment " . 'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS c ON g.cat_id = c.cat_id ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('brand') . ' AS b ON g.brand_id = b.brand_id ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('comment') . ' AS r '. 'ON r.id_value = g.goods_id AND comment_type = 0 AND r.parent_id = 0 AND r.status = 1 ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('bonus_type') . ' AS m ' . "ON g.bonus_type_id = m.type_id AND m.send_start_date <= '$time' AND m.send_end_date >= '$time'" . " LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp ". "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' ". "LEFT JOIN goods_comment as gc ON gc.goods_id = g.goods_id AND gc.user_id = '" . $_SESSION[user_id] . "' ". "WHERE g.goods_id = '$goods_id' AND g.is_delete = 0 " . "GROUP BY g.goods_id"; 【11】includes\\cls_template.php文件中: 注释掉: if (file_put_contents($hash_dir . '/' . $cachename . '.php', '<?php exit;?>' . $data . $out, LOCK_EX) === false) { trigger_error('can\\'t write:' . $hash_dir . '/' . $cachename . '.php'); } 【12】includes\\cls_mysql.php文件中: var $max_cache_time的值改为0。如下: var $max_cache_time = 0; // 最大的缓存时间,以秒为单位 【13】data\\order_print.html文件中: <table width="100%" border="1" style="border-collapse:collapse;border-color:#000;"> <tr align="center"> <td bgcolor="#cccccc">{$lang.goods_name} <!-- 商品名称 --></td> <td bgcolor="#cccccc">{$lang.goods_sn} <!-- 商品货号 --></td> <td bgcolor="#cccccc">{$lang.goods_attr} <!-- 商品属性 --></td> <td bgcolor="#cccccc">{$lang.goods_price} <!-- 商品单价 --></td> <td bgcolor="#cccccc">{$lang.goods_number}<!-- 商品数量 --></td> <td bgcolor="#cccccc">{$lang.subtotal} <!-- 价格小计 --></td> </tr> <!-- {foreach from=$goods_list item=goods key=key} --> <tr> <td> {$goods.goods_name}<!-- 商品名称 --> {if $goods.is_gift}{if $goods.goods_price gt 0}{$lang.remark_favourable}{else}{$lang.remark_gift}{/if}{/if} {if $goods.parent_id gt 0}{$lang.remark_fittings}{/if} </td> <td> {$goods.goods_sn} <!-- 商品货号 --></td> <td><!-- 商品属性 --> <!-- {foreach key=key from=$goods_attr[$key] item=attr} --> <!-- {if $attr.name} --> {$attr.name}:{$attr.value} <!-- {/if} --> <!-- {/foreach} --> </td> <td align="right">{$goods.formated_goods_price} <!-- 商品单价 --></td> <td align="right">{$goods.goods_number} <!-- 商品数量 --></td> <td align="right">{$goods.formated_subtotal} <!-- 商品金额小计 --></td> </tr> <!-- {/foreach} --> <tr> <!-- 发票抬头和发票内容 --> <td colspan="4"> {if $order.inv_payee} {$lang.label_inv_payee}{$order.inv_payee} {$lang.label_inv_content}{$order.inv_content} {/if} </td> <!-- 商品总金额 --> <td colspan="2" align="right">{$lang.label_goods_amount}{$order.formated_goods_amount}</td> </tr> </table> 改为: <table width="100%" border="1" style="border-collapse:collapse;border-color:#000;"> <tr align="center"> <td bgcolor="#cccccc">{$lang.goods_name} <!-- 商品名称 --></td> <td bgcolor="#cccccc">{$lang.goods_sn} <!-- 商品货号 --></td> <td bgcolor="#cccccc">{$lang.goods_attr} <!-- 商品属性 --></td> <td bgcolor="#cccccc">{$lang.my_goods_comment} <!-- 个人批注 --></td> <td bgcolor="#cccccc">{$lang.goods_price} <!-- 商品单价 --></td> <td bgcolor="#cccccc">{$lang.goods_number}<!-- 商品数量 --></td> <td bgcolor="#cccccc">{$lang.subtotal} <!-- 价格小计 --></td> </tr> <!-- {foreach from=$goods_list item=goods key=key} --> <tr> <td> {$goods.goods_name}<!-- 商品名称 --> {if $goods.is_gift}{if $goods.goods_price gt 0}{$lang.remark_favourable}{else}{$lang.remark_gift}{/if}{/if} {if $goods.parent_id gt 0}{$lang.remark_fittings}{/if} </td> <td> {$goods.goods_sn} <!-- 商品货号 --></td> <td><!-- 商品属性 --> <!-- {foreach key=key from=$goods_attr[$key] item=attr} --> <!-- {if $attr.name} --> {$attr.name}:{$attr.value} <!-- {/if} --> <!-- {/foreach} --> </td> <td align="right">{$goods.goods_comment} <!-- 个人批注 --></td> <td align="right">{$goods.formated_goods_price} <!-- 商品单价 --></td> <td align="right">{$goods.goods_number} <!-- 商品数量 --></td> <td align="right">{$goods.formated_subtotal} <!-- 商品金额小计 --></td> </tr> <!-- {/foreach} --> <tr> <!-- 发票抬头和发票内容 --> <td colspan="4"> {if $order.inv_payee} {$lang.label_inv_payee}{$order.inv_payee} {$lang.label_inv_content}{$order.inv_content} {/if} </td> <!-- 商品总金额 --> <td colspan="2" align="right">{$lang.label_goods_amount}{$order.formated_goods_amount}</td> </tr> </table> 【14】admin\\templates\\order_info.htm文件中: <table width="100%" cellpadding="3" cellspacing="1"> <tr> <th colspan="8" scope="col">{$lang.goods_info}<a href="order.php?act=edit&order_id={$order.order_id}&step=goods" class="special">{$lang.edit}</a></th> </tr> <tr> <td scope="col"><div align="center"><strong>{$lang.goods_name_brand}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_sn}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.product_sn}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_price}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_number}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_attr}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.storage}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.subtotal}</strong></div></td> </tr> {foreach from=$goods_list item=goods} <tr> <td> {if $goods.goods_id gt 0 && $goods.extension_code neq 'package_buy'} <a href="../goods.php?id={$goods.goods_id}" target="_blank">{$goods.goods_name} {if $goods.brand_name}[ {$goods.brand_name} ]{/if} {if $goods.is_gift}{if $goods.goods_price > 0}{$lang.remark_favourable}{else}{$lang.remark_gift}{/if}{/if} {if $goods.parent_id > 0}{$lang.remark_fittings}{/if}</a> {elseif $goods.goods_id gt 0 && $goods.extension_code eq 'package_buy'} <a href="javascript:void(0)" onclick="setSuitShow({$goods.goods_id})">{$goods.goods_name}<span style="color:#FF0000;">{$lang.remark_package}</span></a> <div id="suit_{$goods.goods_id}" style="display:none"> {foreach from=$goods.package_goods_list item=package_goods_list} <a href="../goods.php?id={$package_goods_list.goods_id}" target="_blank">{$package_goods_list.goods_name}</a><br /> {/foreach} </div> {/if} </td> <td>{$goods.goods_sn}</td> <td>{$goods.product_sn}</td> <td><div align="right">{$goods.formated_goods_price}</div></td> <td><div align="right">{$goods.goods_number} </div></td> <td>{$goods.goods_attr|nl2br}</td> <td><div align="right">{$goods.storage}</div></td> <td><div align="right">{$goods.formated_subtotal}</div></td> </tr> {/foreach} <tr> <td></td> <td> </td> <td> </td> <td>{if $order.total_weight}<div align="right"><strong>{$lang.label_total_weight} </strong></div>{/if}</td> <td>{if $order.total_weight}<div align="right">{$order.total_weight} </div>{/if}</td> <td> </td> <td><div align="right"><strong>{$lang.label_total}</strong></div></td> <td><div align="right">{$order.formated_goods_amount}</div></td> </tr> </table> 改为: <table width="100%" cellpadding="3" cellspacing="1"> <tr> <th colspan="9" scope="col">{$lang.goods_info}<a href="order.php?act=edit&order_id={$order.order_id}&step=goods" class="special">{$lang.edit}</a></th> </tr> <tr> <td scope="col"><div align="center"><strong>{$lang.goods_name_brand}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_sn}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.product_sn}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_price}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_number}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_attr}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.my_goods_comment}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.storage}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.subtotal}</strong></div></td> </tr> {foreach from=$goods_list item=goods} <tr> <td> {if $goods.goods_id gt 0 && $goods.extension_code neq 'package_buy'} <a href="../goods.php?id={$goods.goods_id}" target="_blank">{$goods.goods_name} {if $goods.brand_name}[ {$goods.brand_name} ]{/if} {if $goods.is_gift}{if $goods.goods_price > 0}{$lang.remark_favourable}{else}{$lang.remark_gift}{/if}{/if} {if $goods.parent_id > 0}{$lang.remark_fittings}{/if}</a> {elseif $goods.goods_id gt 0 && $goods.extension_code eq 'package_buy'} <a href="javascript:void(0)" onclick="setSuitShow({$goods.goods_id})">{$goods.goods_name}<span style="color:#FF0000;">{$lang.remark_package}</span></a> <div id="suit_{$goods.goods_id}" style="display:none"> {foreach from=$goods.package_goods_list item=package_goods_list} <a href="../goods.php?id={$package_goods_list.goods_id}" target="_blank">{$package_goods_list.goods_name}</a><br /> {/foreach} </div> {/if} </td> <td>{$goods.goods_sn}</td> <td>{$goods.product_sn}</td> <td><div align="right">{$goods.formated_goods_price}</div></td> <td><div align="right">{$goods.goods_number} </div></td> <td>{$goods.goods_attr|nl2br}</td> <td><div align="right">{$goods.goods_comment}</div></td> <td><div align="right">{$goods.storage}</div></td> <td><div align="right">{$goods.formated_subtotal}</div></td> </tr> {/foreach} <tr> <td></td> <td> </td> <td> </td> <td>{if $order.total_weight}<div align="right"><strong>{$lang.label_total_weight} </strong></div>{/if}</td> <td>{if $order.total_weight}<div align="right">{$order.total_weight} </div>{/if}</td> <td> </td> <td><div align="right"><strong>{$lang.label_total}</strong></div></td> <td><div align="right">{$order.formated_goods_amount}</div></td> </tr> </table> 【15】order_goods_info.htm文件改为: <table width="100%" cellpadding="3" cellspacing="1"> <tr> <td scope="col"><div align="center"><strong>{$lang.goods_name_brand}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_sn}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_price}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_number}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.goods_attr}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.my_goods_comment}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.storage}</strong></div></td> <td scope="col"><div align="center"><strong>{$lang.subtotal}</strong></div></td> </tr> {foreach from=$goods_list item=goods} <tr> {if $goods.goods_id gt 0 && $goods.extension_code neq 'package_buy'} <td><img src="{$goods.goods_thumb}" /><br /><a href="../goods.php?id={$goods.goods_id}" target="_blank">{$goods.goods_name} {if $goods.brand_name}[ {$goods.brand_name} ]{/if} {if $goods.is_gift}{if $goods.goods_price > 0}{$lang.remark_favourable}{else}{$lang.remark_gift}{/if}{/if} {if $goods.parent_id > 0}{$lang.remark_fittings}{/if}</a></td> {else} <td>{$goods.goods_name}{$lang.remark_package}</td> {/if} <td>{$goods.goods_sn}</td> <td><div align="right">{$goods.formated_goods_price}</div></td> <td><div align="right">{$goods.goods_number} </div></td> <td>{$goods.goods_attr|nl2br}</td> <td><div align="right">{$goods.goods_comment}</div></td> <td><div align="right">{$goods.storage}</div></td> <td><div align="right">{$goods.formated_subtotal}</div></td> </tr> {/foreach} </table> 【16】admin\\order.php文件中: $sql = "SELECT o.*, IF(o.product_id > 0, p.product_number, g.goods_number) AS storage, o.goods_attr, g.suppliers_id, IFNULL(b.brand_name, '') AS brand_name, p.product_sn FROM " . $ecs->table('order_goods') . " AS o LEFT JOIN " . $ecs->table('products') . " AS p ON p.product_id = o.product_id LEFT JOIN " . $ecs->table('goods') . " AS g ON o.goods_id = g.goods_id LEFT JOIN " . $ecs->table('brand') . " AS b ON g.brand_id = b.brand_id WHERE o.order_id = '$order[order_id]'"; 改为: $sql = "SELECT o.*, IF(o.product_id > 0, p.product_number, g.goods_number) AS storage, o.goods_attr, g.suppliers_id, IFNULL(b.brand_name, '') AS brand_name, p.product_sn , oc.goods_comment FROM " . $ecs->table('order_goods') . " AS o LEFT JOIN " . $ecs->table('products') . " AS p ON p.product_id = o.product_id LEFT JOIN " . $ecs->table('goods') . " AS g ON o.goods_id = g.goods_id LEFT JOIN " . $ecs->table('brand') . " AS b ON g.brand_id = b.brand_id " . "LEFT JOIN order_comment as oc ON oc.goods_id = o.goods_id AND oc.order_id = '" . $order[order_id] . "' ". "WHERE o.order_id = '$order[order_id]'"; 把: $sql = "SELECT o.*, g.goods_thumb, g.goods_number AS storage, o.goods_attr, IFNULL(b.brand_name, '') AS brand_name " . "FROM " . $ecs->table('order_goods') . " AS o ". "LEFT JOIN " . $ecs->table('goods') . " AS g ON o.goods_id = g.goods_id " . "LEFT JOIN " . $ecs->table('brand') . " AS b ON g.brand_id = b.brand_id " . "WHERE o.order_id = '{$order_id}' "; 改为: $sql = "SELECT o.*, g.goods_thumb, g.goods_number AS storage, o.goods_attr, IFNULL(b.brand_name, '') AS brand_name, oc.goods_comment " . "FROM " . $ecs->table('order_goods') . " AS o ". "LEFT JOIN " . $ecs->table('goods') . " AS g ON o.goods_id = g.goods_id " . "LEFT JOIN " . $ecs->table('brand') . " AS b ON g.brand_id = b.brand_id " . "LEFT JOIN order_comment as oc ON oc.goods_id = o.goods_id AND oc.order_id = '" . $order_id . "' ". "WHERE o.order_id = '$order_id' "; 【17】user.php文件中: if ($rt > 0) { update_user_info(); recalculate_price(); $ucdata = isset($user->ucdata)? $user->ucdata : ''; show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act,'user.php'), 'info'); } 改为: if ($rt > 0) { //Delete the goods_comment when the user login $sql = "DELETE FROM goods_comment WHERE user_id = '". $_SESSION["user_id"] ."'"; $GLOBALS['db']->query($sql); update_user_info(); recalculate_price(); $ucdata = isset($user->ucdata)? $user->ucdata : ''; show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act,'user.php'), 'info'); } 【18】index.php中注释掉: $ua = strtolower($_SERVER['HTTP_USER_AGENT']); $uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile)/i"; if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap')) { $Loaction = 'mobile/'; if (!empty($Loaction)) { ecs_header("Location: $Loaction\\n"); exit; } } 【19】goods.php中增加函数: /*------------------------------------------------------ */ //-- 修改商品批注 /*------------------------------------------------------ */ if ($_REQUEST['act'] == 'edit_goods_comment') { include('includes/cls_json.php'); $json = new JSON; $res = array('err_msg' => '', 'result' => ''); $goods_id = intval($_POST['id']); $_POST['val'] = json_str_iconv($_POST['val']); $goods_comment = $json->decode($_POST['val']); $sql = "DELETE FROM goods_comment WHERE goods_id = '". $goods_id. "' AND user_id = '". $_SESSION["user_id"] ."'"; $GLOBALS['db']->query($sql); $sql = "INSERT INTO goods_comment (goods_id, user_id, goods_comment) VALUES ('". $goods_id."', '".$_SESSION["user_id"]."', '".$goods_comment."')"; $GLOBALS['db']->query($sql); $res['result'] = $goods_comment; die($json->encode($res)); } 【20】flow.php文件中: 在: /* 插入订单商品 */ $sql = "INSERT INTO " . $ecs->table('order_goods') . "( " . "order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, ". "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) ". " SELECT '$new_order_id', goods_id, goods_name, goods_sn, product_id, goods_number, market_price, ". "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id". " FROM " .$ecs->table('cart') . " WHERE session_id = '".SESS_ID."' AND rec_type = '$flow_type'"; $db->query($sql); 后边增加: /* 插入订单商品批注 */ $sql = "INSERT INTO order_comment (order_id, goods_id, goods_comment) ". "(SELECT '$new_order_id', cart.goods_id, gc.goods_comment ". "FROM cart LEFT JOIN goods_comment as gc ON gc.goods_id = cart.goods_id AND gc.user_id = cart.user_id)"; $db->query($sql); 【21】category.php文件中: /* 获得商品列表 */ $sql = 'SELECT g.goods_id, g.goods_name, g.goods_sn, g.goods_weight, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ' . "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, g.promote_price, g.goods_type, " . 'g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img ' . 'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('member_price') . ' AS mp ' . "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' " . "WHERE $where $ext ORDER BY $sort $order"; 改为: /* 获得商品列表 */ $sql = 'SELECT g.goods_id, g.goods_name, g.goods_sn, g.goods_weight, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ' . "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, g.promote_price, g.goods_type, " . 'g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img, gc.goods_comment ' . 'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('member_price') . ' AS mp ' . "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' " . "LEFT JOIN goods_comment as gc ON gc.goods_id = g.goods_id AND gc.user_id = '" . $_SESSION[user_id] . "' ". "WHERE $where $ext ORDER BY $sort $order"; 在: $arr[$row['goods_id']]['name'] = $row['goods_name']; $arr[$row['goods_id']]['goods_brief'] = $row['goods_brief']; $arr[$row['goods_id']]['goods_style_name'] = add_style($row['goods_name'],$row['goods_name_style']); $arr[$row['goods_id']]['market_price'] = price_format($row['market_price']); $arr[$row['goods_id']]['shop_price'] = price_format($row['shop_price']); $arr[$row['goods_id']]['type'] = $row['goods_type']; $arr[$row['goods_id']]['promote_price'] = ($promote_price > 0) ? price_format($promote_price) : ''; $arr[$row['goods_id']]['goods_thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true); $arr[$row['goods_id']]['goods_img'] = get_image_path($row['goods_id'], $row['goods_img']); $arr[$row['goods_id']]['url'] = build_uri('goods', array('gid'=>$row['goods_id']), $row['goods_name']); $arr[$row['goods_id']]['goods_sn'] = $row['goods_sn']; $arr[$row['goods_id']]['goods_weight'] = $row['goods_weight']; 后边增加: /* 获取批注 */ $arr[$row['goods_id']]['goods_comment'] = $row['goods_comment'];(责任编辑:chinab4c) |
最近更新
常用插件
- ecshop二次开发商品购买增
图片1香...
- ecshop最小购买数量控制插
ecshop最小购买数量控制插件,这个插件主要是为我们提供一个十分方便...
- ecshop2.7.1邮件发送插件
ecshop2.7.1邮件发送插件:该插件主要的开发思想是源于ecshop短信发送系统...
- ecshop没登陆情况下订单查
ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下...
- ecshop2.7.2生成虚拟订单2.
以前我们开发过ecshop下的虚拟订单,就是客户在访问的时候,会自动生...
ecshop热门问答
ecshop热门资料
ecshop紫铜
ecshopblock
ecshop简体
ecshopopen
ecshop手机APP
ecshop黄龙玉
ecshopphpmyadmin
ecshop遨游
ecshop首页广告
ecshop压缩
ecshop我是医生
ecshop缩略图
ecshop开网店
ecshop培训费
ecshop url伪静态
ecshop缺货登记
ecshop图片大小
ecshop日本
ecshop计划
ecshop财富
ecshop银联在线
ecshop用品
ecshop温馨提示
ecshop链接串字符
ecshop用户接口
ecshop物流公司
ecshop难得一见
ecshopVPS主机
ecshop促销价
ecshop正式会员