1、1附录:本系统的功能特色清远职业技术学院动态网站开发与实践姓名: 学号: 班级: 动态网站开发与实践 网络管理实训报告2目 录1、ECSHPF 版权与标志前台部分 32、ECSHOP 后台为订单增加备注功能 33、将订单状态设为等待客户确认 34、商品扩展名功能开发 35、多货币解方案的开发 36、AJAX 实现购物车数量功能 37、AJAX 实现产品页的购买数量 38、产品的放大镜功能开发 39、产品页的颜色选择器功能开发 310、商品组合套餐功能 311、限时购功能开发 312、秒杀功能开发 313、在 ECSHOP 商品页增加“分享到开心网、人人网”的功能 314、ECSHOP 图片清晰
2、度模糊的解决方法 331、ECSHPF 版权与标志前台部分前台部分:1. a 去掉头部 TITLE 部分的 ECSHOP 演示站 Powered by ecshop,前者在后台商店设置 - 商店标题修改b.后者打开 includes/lib_main.php找到:$page_title = $GLOBALS_CFGshop_title . - . Powered by ECShop;修改这里的Powered by ECShop2.去掉友情链接部分:在后台的友情链接管理里修改3.去掉底部的 Powered by ecshop 270打开 js/common.js 删除第 244 行:onload
3、 = function()代码如下:onload = function()var link_arr = document.getElementsByTagName(String.fromCharCode(65);var link_str;var link_text;var regg, cc;var rmd, rmd_s, rmd_e, link_eorr = 0;var e = new Array(97, 98, 99,100, 101, 102, 103, 104, 105, 106, 107, 108, 109,110, 111, 112, 113, 114, 115, 116, 117,
4、 118, 119,120, 121, 122);tryfor(var i = 0; i 应该也算是 ECSHOP 预留的版权信息吧,下面讲一下怎么删除这行代码,让系统不再自动产生。打开 includes/cls_template.php 文件,大概在 1087 行左右,找到以下代码,将之删除或者注释掉即可。$source = preg_replace(/i, “rn“, $source);6后台部分:1.去除两张图片:admin/images/ecshop_logo.gifadmin/images/login.png2.右上角的“关于 ECSHOP”打开 admin/templates/to
5、p.htm删除:$lang.about3.中部 ECSHOP 管理中心, 和底部的版权所有打开 language/zh_cn/admin/common.php删掉:$_LANGcp_home = ECSHOP 管理中心;$_LANGcopyright = 版权所有 2005-2009 上海商派网络科技有限公司,并保留所有权利。;效果图:782、ECSHOP 后台为订单增加备注功能1. 添加表:ecs_order_note;CREATE TABLE IF NOT EXISTS ecs_order_note (note_id mediumint(8) unsigned NOT NULL AUTO_
6、INCREMENT,order_id mediumint(8) unsigned NOT NULL,note_value text NOT NULL,PRIMARY KEY (note_id) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;2.添加语言包 -languageszh_cnadminorder.php/* 订单备注*/9$_LANGlabel_order_note = 客服人员订单备注:;3. 修改 admin/order.php 文件第 103 行,添加代码:/*- */- 保存订单备注/*- */ elseif ($_
7、REQUESTact = save_ordernote)$oid = $_REQUESToid;$oval = $_REQUESTnoteVal;$sql = “select count(note_value) from “ . $ecs-table(order_note) .“ where order_id = $oid“;$note_count = $db-getOne($sql);if ($note_count = 0)$sql = “insert into “ . $ecs-table(order_note) .“(order_id,note_value) values(“ . $oi
8、d . “,“ . $oval . “)“; else$sql = “update “ . $ecs-table(order_note) . “ set note_value = “ . $oval .“ where order_id = “ . $oid;$db-query($sql);/echo “订单备注已保存!“;4.在以下代码下加入/* 取得能执行的操作列表 */ $operable_list = operable_list($order);$smarty-assign(operable_list, $operable_list);/* 取得订单备注- */$sql = “SELEC
9、T note_value FROM “ . $ecs-table(order_note) .“ WHERE order_id = $orderorder_id“;$order_note = $db-getOne($sql);$smarty-assign(order_note, $order_note);5.修改 admintemplatesorder_info.htm 文件10$lang.label_action_note在上面代码后面加入以下代码:$lang.label_order_note$order_note6.在本文件 admintemplatesorder_info.htm 的 JS
10、 代码中加入下面内容/* 保存订单备注*/function saveOrderNote(oid,parm)var noteVal = parm.value;Ajax.call(order.php?is_ajax=1function saveOrderResponse(result)/alert(result);7.删除订单时删除关联的订单备注 admin/order.php找到下面代码:/* 删除订单 */$db-query(“DELETE FROM “.$ecs-table(order_info). “ WHERE order_id = $order_id“);$db-query(“DELE
11、TE FROM “.$ecs-table(order_goods). “ WHERE order_id = $order_id“);11$db-query(“DELETE FROM “.$ecs-table(order_action). “ WHERE order_id = $order_id“);在后面直接加入以下代码:(单个删除)/*根据订单编号,删除对应订单备注*/$db-query(“DELETE FROM “ .$ecs-table(order_note) . “ WHERE order_id = $order_id“);批量删除,找到以下代码:约 3000 行后面/* 删除订单 *
12、/$db-query(“DELETE FROM “.$ecs-table(order_info). “ WHERE order_id = $orderorder_id“);$db-query(“DELETE FROM “.$ecs-table(order_goods). “ WHERE order_id = $orderorder_id“);$db-query(“DELETE FROM “.$ecs-table(order_action). “ WHERE order_id = $orderorder_id“);直接加入以下代码:/*根据订单编号,删除对应订单备注(批量删除)*/$db-que
13、ry(“DELETE FROM “ .$ecs-table(order_note) . “ WHERE order_id = $orderorder_id“);在以下代码:$GLOBALSdb-query(“DELETE FROM “.$GLOBALSecs-table(order_info). “ WHERE order_id = $order_id“);$GLOBALSdb-query(“DELETE FROM “.$GLOBALSecs-table(order_goods). “ WHERE order_id = $order_id“);$GLOBALSdb-query(“DELETE
14、FROM “.$GLOBALSecs-table(order_action). “ WHERE order_id = $order_id“);后面加入以下代码:/*根据订单编号,删除对应订单备注 */$GLOBALSdb-query(“DELETE FROM “.$GLOBALSecs-table(order_note). “ WHERE order_id = $order_id“);效果图:123、将订单状态设为等待客户确认1.修改includeslib_payment.php 文件,使网上支付成功后,订单状态为等待客户确认:/* 修改订单状态为已付款 */$sql = UPDATE . $
15、GLOBALSecs-table(order_info) .“ SET order_status = “ . OS_CONFIRMED . “, “ .“ confirm_time = “ . gmtime() . “, “ .“ pay_status = $pay_status, “ .“ pay_time = “.gmtime().“, “ .“ money_paid = order_amount,“ .“ order_amount = 0 “.“WHERE order_id = $order_id“;$GLOBALSdb-query($sql);/* 记录订单操作记录 */order_a
16、ction($order_sn, OS_CONFIRMED, SS_UNSHIPPED, $pay_status, $note, $GLOBALS_LANGbuyer);修改为:/* 修改订单状态为已付款 */$sql = UPDATE . $GLOBALSecs-table(order_info) .“ SET order_status = “ . OS_UNCONFIRMED . “, “ .13“ confirm_time = “ . gmtime() . “, “ .“ pay_status = $pay_status, “ .“ pay_time = “.gmtime().“, “
17、.“ money_paid = order_amount,“ .“ order_amount = 0 “.“WHERE order_id = $order_id“;$GLOBALSdb-query($sql);/* 记录订单操作记录 */order_action($order_sn, OS_UNCONFIRMED, SS_UNSHIPPED, $pay_status, $note, $GLOBALS_LANGbuyer);2.修改根目录下的 flow.php 文件,使用余额付款时订单状态为等客服确认,只需把/$orderorder_status = OS_CONFIRMED;注解掉,或都改为$
18、orderorder_status = OS_UNCONFIRMED;/* 如果订单金额为 0(使用余额或积分或红包支付) ,修改订单状态为已确认、已付款 */if ($orderorder_amount $lang.goods_name$sort_goods_name在下面添加:$lang.goods_name_extends$sort_goods_name_extends3、在后面添加:15$goods.goods_name_extends|escape:html4、在这句后面添加以下代码:$goods.goods_name_extends|escape:html5、打开/language
19、s/zh_cn/admin/goods.php大约第 68 行:$_LANGgoods_name = 商品名称;下面增加:$_LANGgoods_name_extends = 商品名称扩展;在 108 行$_LANGlab_goods_name = 商品名称:;下面增加:$_LANGlab_goods_name_extends = 商品名称扩展:;6、打开 adminincludeslib_goods.php/* 分页大小 */$filter = page_and_size($filter);$sql = “SELECT goods_id, goods_name, 紧跟在后面添加goods_n
20、ame_extends,7、打开 admintemplatesgoods_info.htm16$lang.lab_goods_name$lang.select_fonthtml_options options=$lang.font_styles selected=$goods_name_style$lang.require_field下面添加:$lang.lab_goods_name_extends8、打开 admingoods.php在 872 行“goods_name = $_POSTgoods_name, “ .下面添加:“goods_name_extends = $_POSTgoods
21、_name_extends, “ .9、打开 goods.dwt$goods.goods_style_name改为:$goods.goods_style_name$goods.goods_name_extends9.打开 C:wampwwwshopthemesm18librarygoods_list.lbi将:$goods.goods_name 17替换成:$goods.goods_name $goods.goods_name_ext效果图:185、多货币解方案的开发把根目录下index.php,goods.php 和category.php 中缓存改为:$smarty-caching = f
22、alse;(都在约 21-23)1、在数据库 shop_config 表中插入 SQL 语句INSERT INTO ecs_shop_config (id ,parent_id ,code ,type ,store_range ,store_dir ,value ,sort_order )VALUES (NULL , 1, rate, text, , , 1,0.12,0.10,0.16,0.16, 1), (19NULL , 1, oprice_format, text, , , %s, 1),(NULL , 1, ybprice_format, text, , , %s, 1),(NULL
23、 , 1, mprice_format, text, , , $%s, 1),(NULL , 1, aoprice_format, text, , , AU%s, 1);2、修改languageszh_cnadminshop_config.php 文件$_LANGcfg_namerate = 货币汇率;$_LANGcfg_nameoprice_format = 欧元格式; $_LANGcfg_nameybprice_format = 英镑格式;$_LANGcfg_namemprice_format = 美元格式;$_LANGcfg_nameaoprice_format = 澳元格式;$_LAN
24、Gcfg_descrate = 输入规则按照和人民币的汇率进行输入CNY,EUR,GBP, USD ,AUD;$_LANGcfg_descoprice_format = 显示欧元格式,%s 将被替换为相应的价格; $_LANGcfg_descybprice_format = 显示英镑格式,%s 将被替换为相应的价格;$_LANGcfg_descmprice_format = 显示美元格式,%s 将被替换为相应的价格;$_LANGcfg_descaoprice_format = 显示澳元格式,%s 将被替换为相应的价格;3、在相应的模板 themes/当前模板/library/page_head
25、er.lbi 文件中此行以后加入以下代码人民币 欧元 英镑美元 澳元4、在/includes/init.php 文件最后插入以下代码$url_this=“http:/“.$_SERVERHTTP_HOST.$_SERVERPHP_SELF.“?id=“.$_GETid;/echo $url_this;$smarty-assign(“url_head“,$url_this);$currency=$_GETcurrency;if ($currency!=“)$_SESSIONcurrency=$currency;20if ($_SESSIONcurrency=)$_SESSIONcurrency=
26、CNY;/echo $_SESSIONcurrency;5、修改inlucdeslib_common.php 里的 price_format 函数/* 格式化商品价格* access public* param float $price 商品价格* return string*/function price_format($price, $change_price = true)$currency=$_SESSIONcurrency;$rate=explode(,$GLOBALS_CFGrate);if($currency=CNY)$price=$price*$rate0;if($curren
27、cy=USD)$price=$price*$rate3;if($currency=EUR)$price=$price*$rate1;if($currency=GBP)$price=$price*$rate2;if($currency=AUD)$price=$price*$rate4;if ($change_price break;case 1: / 保留不为 0 的尾数$price = preg_replace(/(.*)(.)(0-9*?)0+$/, 123, number_format($price, 2, ., );21if (substr($price, -1) = .)$price
28、= substr($price, 0, -1);break;case 2: / 不四舍五入,保留 1 位$price = substr(number_format($price, 2, ., ), 0, -1);break;case 3: / 直接取整$price = intval($price);break;case 4: / 四舍五入,保留 1 位$price = number_format($price, 1, ., );break;case 5: / 先四舍五入,不保留小数$price = round($price);break;else$price = number_format($
29、price, 2, ., );switch($currency) case CNY:return sprintf($GLOBALS_CFGcurrency_format, $price);break;case EUR:return sprintf($GLOBALS_CFGoprice_format, $price);break;case GBP:return sprintf($GLOBALS_CFGybprice_format, $price);break; case AUD:return sprintf($GLOBALS_CFGaoprice_format, $price);break; c
30、ase USD:return sprintf($GLOBALS_CFGmprice_format, $price);break; /return sprintf($GLOBALS_CFGcurrency_format, $price);226、修改表 order_infoALTER TABLE ecs_order_info ADD currency VARCHAR( 10 ) NOT NULL ,ADD new_money DECIMAL( 10, 2 ) NOT NULL 7、修改根目录 flow.php 文件找到:(大约 1608 行左右)/分成功能关闭$parent_id = 0;$or
31、derparent_id = $parent_id;插入以下代码:$ordercurrency=$_SESSIONcurrency;$ordernew_money=price_format_hs($orderorder_amount);8、同时修改inlucdeslib_common.php 在里面新增加 price_format_hs 函数/* 用于支付换算* access public* param float $price 商品价格* return string*/function price_format_hs($price, $change_price = true)$currenc
32、y=$_SESSIONcurrency;$rate=explode(,$GLOBALS_CFGrate);if($currency=CNY)$price=$price*$rate0;if($currency=USD)$price=$price*$rate3;if($currency=EUR)$price=$price*$rate1;if($currency=GBP)$price=$price*$rate2;23if($currency=AUD)$price=$price*$rate4;if ($change_price break;case 1: / 保留不为 0 的尾数$price = pr
33、eg_replace(/(.*)(.)(0-9*?)0+$/, 123, number_format($price, 2, ., );if (substr($price, -1) = .)$price = substr($price, 0, -1);break;case 2: / 不四舍五入,保留 1 位$price = substr(number_format($price, 2, ., ), 0, -1);break;case 3: / 直接取整$price = intval($price);break;case 4: / 四舍五入,保留 1 位$price = number_format
34、($price, 1, ., );break;case 5: / 先四舍五入,不保留小数$price = round($price);break;else$price = number_format($price, 2, ., );return $price;249.在admintemplatesorder_list.html第 34 行后插入:货币类型 支付金额 第 46 行后修改:$order.currency$order.new_money10.在adminorder.php第 5042 行 sql 语句中加入两个查询字段 o.currency, o.new_money:$sql = “
35、SELECT o.order_id, o.order_sn, o.add_time, o.currency, o.new_money, o.order_status, o.shipping_status, o.order_amount, o.money_paid,“ .11、在includesmodulespaymentpaypal.php大约 92 行一个 get_code 函数,function get_code($order, $payment)$paypal_currency =$_SESSION“currency“; /新增加的$data_order_id = $orderlog_i
36、d;$data_amount = $ordernew_money;$data_return_url = return_url(basename(_FILE_, .php);$data_pay_account = $paymentpaypal_account;$currency_code = $paypal_currency;$data_notify_url = return_url(basename(_FILE_, .php);$cancel_return = $GLOBALSecs-url();效果图:256、AJAX 实现购物车数量功能1、修改 flow.dwt (1)后面加入以下内容:/
37、* 1 else$num.val(1);return false;$num.change();var updateCount= function($e,$gid)/alert(update goodsID:+$gid+);var $count= parseInt($(“#num_“+$gid).val();if (isNaN($count) $count = 1;alert(“商品数量必须输入数字“); $($e).val($count);if($count */(2)将以下内容的:$goods.goods_number后面修改为以下内容:sub_one.jpg 和 add_one.jpg 拷
38、贝到模板目录下的 images 目录里(3)修改下以句:$your_discount后面的一行如下:$shopping_money,$market_price_desc(4)将$goods.subtotal修改为下一行:29$goods.subtotal(5)将:$goods.goods_price修改如下:$goods.goods_price(6)修改class=“inputBg“为:class=“gwwu_ee“(7)在后面的改为2、修改 flow.php(1)加入elseif($_REQUESTstep = update_count)flow_update_cart(array($_PO
39、STrec_id=$_POSTchang_to),true);echo json_encode(array(message = $_LANGupdate_cart_notice);exit;(2)修改 flow_update_cart 函数/* 更新购物车中的商品数量* access public* param array $arr* return void*/30function flow_update_cart($arr)替换成:/* 更新购物车中的商品数量* access public* param array $arr* return void*/function flow_update_cart($arr , $isAjax = false)(3)将 “/查询:系统启用了库存,检查输入的商品数量是否有效 ” 下面的整段代码替换成:/查询:系统启用了库存,检查输入的商品数量是否有效if (intval($GLOBALS_CFGuse_storage) 0 elseshow_message(sprintf($GLOBALS_LANGstock_insufficiency, $rowgoods_name,$rowgoods_number, $rowgoods_number);exit;效果图: