百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>Ecshop教程> 为ecshop用户提供商品批注功能
分享文章到:

为ecshop用户提供商品批注功能

发布时间:12/03 来源: 浏览: 关键词:

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】themesdefaultlibrarygoods_list.lbi文件中:
{$lang.compare}
后边增加:

{$lang.my_goods_comment}:





【3】themesdefaultuser_transaction.dwt文件中:
{$lang.goods_name}
{$lang.goods_attr}
后面增加:

{$lang.my_goods_comment}



在:
{$goods.goods_attr|nl2br}
后边增加:


{$goods.goods_comment}




【4】themesdefaultgoods.dwt文件中:







  • 后边增加:


  • {$lang.my_goods_comment}:




  • 【5】themesdefaultflow.dwt文件中:
    {$lang.goods_name}

    {$lang.goods_attr}

    后边增加:

    {$lang.my_goods_comment}



    在:

    {$goods.goods_attr|nl2br}

    后边增加:







    在:
    {$lang.goods_name}
    {$lang.goods_attr}
    后边增加:

    {$lang.my_goods_comment}



    在:
    ({$lang.free_goods})

    {$goods.goods_attr|nl2br}
    后边增加:







    【6】languageszh_cnadmincommon.php文件中增加:
    $_LANG['my_goods_comment'] = '批注';


    【7】languageszh_cncommon.php文件中增加:
    $_LANG['my_goods_comment'] = '批注';


    【8】jscommon.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】includeslib_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】includeslib_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】includescls_template.php文件中:
    注释掉:
    if (file_put_contents($hash_dir . '/' . $cachename . '.php', '' . $data . $out, LOCK_EX) === false)
    {
    trigger_error('can't write:' . $hash_dir . '/' . $cachename . '.php');
    }


    【12】includescls_mysql.php文件中:
    var $max_cache_time的值改为0。如下:
    var $max_cache_time = 0; // 最大的缓存时间,以秒为单位


    【13】dataorder_print.html文件中:


    {$lang.goods_name}
    {$lang.goods_sn}
    {$lang.goods_attr}
    {$lang.goods_price}
    {$lang.goods_number}
    {$lang.subtotal}



    {$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}

    {$goods.goods_sn}


    {$attr.name}:{$attr.value}


    {$goods.formated_goods_price}
    {$goods.goods_number}
    {$goods.formated_subtotal}





    {if $order.inv_payee}
    {$lang.label_inv_payee}{$order.inv_payee}
    {$lang.label_inv_content}{$order.inv_content}
    {/if}


    {$lang.label_goods_amount}{$order.formated_goods_amount}


    改为:


    {$lang.goods_name}
    {$lang.goods_sn}
    {$lang.goods_attr}
    {$lang.my_goods_comment}
    {$lang.goods_price}
    {$lang.goods_number}
    {$lang.subtotal}



    {$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}

    {$goods.goods_sn}


    {$attr.name}:{$attr.value}


    {$goods.goods_comment}
    {$goods.formated_goods_price}
    {$goods.goods_number}
    {$goods.formated_subtotal}





    {if $order.inv_payee}
    {$lang.label_inv_payee}{$order.inv_payee}
    {$lang.label_inv_content}{$order.inv_content}
    {/if}


    {$lang.label_goods_amount}{$order.formated_goods_amount}




    【14】admintemplatesorder_info.htm文件中:


    {$lang.goods_info}{$lang.edit}


    {$lang.goods_name_brand}
    {$lang.goods_sn}
    {$lang.product_sn}
    {$lang.goods_price}
    {$lang.goods_number}
    {$lang.goods_attr}
    {$lang.storage}
    {$lang.subtotal}

    {foreach from=$goods_list item=goods}


    {if $goods.goods_id gt 0 && $goods.extension_code neq 'package_buy'}
    {$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}
    {elseif $goods.goods_id gt 0 && $goods.extension_code eq 'package_buy'}
    {$goods.goods_name}{$lang.remark_package}

    相关文章

    共有7人阅读,期待你的评论!发表评论
    昵称: 网址: 验证码: 点击我更换图片
    最新评论

    本文标签

    广告赞助

    能出一分力是一分吧!

    订阅获得更多模板

    本文标签

    广告赞助

    订阅获得更多模板