ecshop二次开发50个小技巧
ecshop二次开发去掉版本信息
前台部分:1:去掉头部TITLE部分的ECSHOP演示站Powered by ecshop在后台商店设置- 商店标题修改然后打开includes/lib_main.php$page_title = $GLOBALS['_CFG']['shop_title'] . ' - ' . 'Powered by ECShop';改为$page_title = $GLOBALS['_CFG']['shop_title'];2.去掉版本信息“<meta name="Generator" content="ECSHOP v2.7.1" />”打开includes/cls_template删除以下部分/* 在头部加入版本信息*/$source = preg_replace('/<head>/i', "<head>\r\n<meta name=\"Generator\" content=\"" . APPNAME .' ' . VERSION . "\" />", $source);3.去掉友情链接部分在后台的友情链接管理里修改4.去掉底部的Powered by ecshop 270打开js/common.js删除第244行:onload = function()再打开模板文件夹的library/page_footer.lbi删除{foreach from=$lang.p_y item=pv}{$pv}{/foreach}{$licensed}后台部分:1.去除两张图片admin/images/ecshop_logo.gifadmin/images/login.png2.右上角的“关于ECSHOP”打开admin/templates/top.htm删除:<li><a href="index.php?act=about_us" target="main-frame">{$lang.about}</a></li>3.中部ECSHOP 管理中心,和底部的版权所有打开language/zh_cn/admin/common.php$_LANG['cp_home'] = 'ECSHOP 管理中心';$_LANG['copyright'] = '版权所有© 2005-2009 上海商派网络科技有限公司,并保留所有权利。
[汇编]ecshop功能二次开发之后台管理增加成本价和毛利润统计功能
ecshop功能二次开发之后台管理增加成本价和毛利润统计功能ecshop功能二次开发之后台管理增加成本价和毛利润统计功能ecshop功能二次开发之后台管理增加成本价和毛利润统计功能在做ecshop二次开发的时候增加一个财务统计的功能!首先在订单中的商品信息【编辑】页面中,修改成本价。
也可以在添加商品时添加成本的如果不做手工修改,则使用默认的商品成本价(在商品信息里编辑的成本价格)。
我用的版本是ecshop2.7.2第一步:修改数据库中的商品表ecs_goods和订单商品表ecs_order_goods,添加成本价字段cost_price把SQL语句列出来:alter table `ecs_goods` add column `cost_price` decimal (10,2) UNSIGNED DEFAULT '0.00' NOT NULL after`promote_price`alter table `ecs_order_goods` add column `cost_price` decimal (10,2) DEFAULT '0.00' NOT NULL after `market_price` 这里是加在了字段promote_price 和market_price后面第二步.增加语言包,需要修改languages\zh_cn\admin\goods.php 再最后添加 /* 新增-成本价 */$_LANG['lab_cost_price'] = '成本价:';$_LANG['notice_cost_price'] = '该商品进货价格(成本价,在商品添加时设置,也可以在商品编辑里面修改。
).';第三步.修改admin/goods.php 把成本价格插入到数据库在两个(有两个地方需要修改)'promote_price' => 0,后新增一行添加'cost_price' => 0,再在$shop_price = !empty($_POST['shop_price']) ?$_POST['shop_price'] : 0;后添加$cost_price = !empty($_POST['cost_price']) ?$_POST['cost_price'] : 0;将/* 入库 */if ($is_insert){。
常见ecshop二次开发问题及解答
9:如何管理首页flash播放器
答:后台-> flash播放器管理->增加自定义,你就可以 上传和控制图片的位置
10:如何修 改首页"精 品推荐"栏 目的more 小图片
回答:模板文件中library/recommend_best.lbi中, <divclass="more"><ahref="../search.php?intro=be st"><imgsrc="images/more.gif"/></a></div>
缀
回答:修改data/config.php 下的$prefix="ecs_";将ecs_ 修改成你需要的前缀.其次,在 数据库中,修改表名比如 ecs_goods修改为 "xxx_goods";
20:如何修 改ecshop 导航栏目名
称
回答:后台 -> 系统设置 -> 自 定义导航栏-> 编辑 -> 修改 导航栏名称
回答:模板文件中,打开goods.dwt,删除 <strong>{$lang.goods_click_count}: </strong>{$goods.click_count}
首页模板在哪个文件,头部模板,底部模板个什么文件名称
回答:首页模板在为index.dwt,头部模板在 librar y/page_header.lbi, 底部文件在 librar y/page_footer.lbi
3:如何修改 首页标题 "Powered by ECShop"
回答:includes/lib_main.php,找到$page_title =$GLOBALS['_CFG']['shop_title'] . ' - ' . 'Powered byECShop';修改成$page_title = $ G LO B A L S [ ' _ C F G ' ] [ 's h o p _ t i t l e' ] 就 可 以 了 。
Ecshop二次开发会员中心添加修改积分明细以及其他小功能定制
Ecshop二次开发会员中心添加修改积分明细以及其他小功能定制等级积分会员优惠铜牌会员10000购物时额外优惠1%银牌会员50000购物时额外优惠2%金牌会员100000购物时额外优惠3%1.languages/zh_cn/user.php,666行左右,把'$_LANG['user_reg_info'][2]'修改为'不注册为会员不可以在本店购买商品'668行左右,把$_LANG['user_reg_info'][3]修改为'注册之后您可以'2.删除左侧的5个选项themes/joyo25/library/user_menu.lbi,删除以下5行:{$bel_tag}{$bel_booking}{$bel_bonus}{$bel_affiliate}{$bel_track_packages}3.给字体设置颜色,删除红包themes/joyo25/user_clips.dwt,26行左右,把{$info.shop_name}修改为:{$info.shop_name}41行左右,注释42行左右,把{$info.integral}修改为:{$info.integral}4.删除资金管理里面的提现并修改颜色themes/joyo25/user_transaction.dwt,644行左右,把{$lang.surplus_type_0} | {$lang.surplus_type_1} | {$lang.add_surplus_log} | {$lang.view_application}修改为{$lang.surplus_type_0}| {$lang.add_surplus_log}| {$lang.view_application}5.添加积分明细languages/zh_cn/user.php,36行左右,添加:$_LANG['label_integral_surplus'] = '积分明细';languages/en_us/user.php,36行左右,添加:$_LANG['label_integral_surplus'] = 'Integral Details';themes/joyo25/library/user_menu.lbi,15行左右,添加:{$bel_integral_surplus}themes/joyo25/user_transaction.dwt,230行左右,添加:{$bel_integral_surplus}includes/lib_order.php,1342行左右,添加一个函数:/*** 取得用户积分* @param int $user_id 用户id* @return int 用户积分*/function get_user_integral($user_id){$sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('users') .' WHERE user_id = '$user_id'';$user = $GLOBALS['db']->getRow($sql);return $user['pay_points'];}user.php,35行左右,把$ui_arr = array('register', 'login', 'profile', 'order_list', 'order_detail', 'address_list', 'collection_list','message_list', 'tag_list', 'get_password', 'reset_password', 'booking_list', 'add_booking', 'account_raply','account_deposit', 'account_log', 'account_detail', 'act_account', 'pay', 'default', 'bonus', 'group_buy', 'group_buy_detail', 'affiliate','comment_list','validate_email','track_packages','transform_points','qpassword_name', 'get_passwd_question', 'check_answer');修改为:$ui_arr = array('register', 'login', 'profile', 'order_list', 'order_detail', 'address_list', 'collection_list','message_list', 'tag_list', 'get_password', 'reset_password', 'booking_list', 'add_booking', 'account_raply','account_deposit', 'account_log', 'account_detail', 'act_account', 'pay', 'default', 'bonus', 'group_buy', 'group_buy_detail', 'affiliate', 'comment_list','validate_email','track_packages','transform_points','qpassword_name', 'get_passwd_question', 'check_answer', 'integral_log');user.php,805行左右,在elseif ($action == 'order_list')循环下面添加:/* 会员积分明细界面 */elseif ($action == 'integral_log'){include_once(ROOT_PATH . 'includes/lib_clips.php');include_once(ROOT_PATH . 'includes/lib_order.php');$page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;$account_type = 'pay_points';/* 获取记录条数 */$sql = 'SELECT COUNT(*) FROM ' .$ecs->table('account_log').' WHERE user_id = '$user_id'' .' AND $account_type <> 0 ';$record_count = $db->getOne($sql);//分页函数$pager = get_pager('user.php', array('act' => $action), $record_count, $page);//获取剩余积分$surplus_amount = get_user_integral($user_id);if (empty($surplus_amount)){$surplus_amount = 0;}//获取积分记录$account_log = array();$sql = 'SELECT * FROM ' . $ecs->table('account_log') .' WHERE user_id = '$user_id'' .' AND $account_type <> 0 ' .' ORDER BY log_id DESC';$res = $GLOBALS['db']->selectLimit($sql, $pager['size'], $pager['start']);while ($row = $db->fetchRow($res)){$row['change_time'] = local_date($_CFG['date_format'], $row['change_time']);$row['type'] = $row[$account_type] > 0 ? $_LANG['account_inc'] : $_LANG['account_dec'];$row['user_money'] = price_format(abs($row['user_money']), false);$row['frozen_money'] = price_format(abs($row['frozen_money']), false);$row['rank_points'] = abs($row['rank_points']);$row['pay_points'] = abs($row['pay_points']);$row['short_change_desc'] = sub_str($row['change_desc'], 60);$row['amount'] = $row[$account_type];$account_log[] = $row;}//模板赋值$smarty->assign('surplus_amount',price_format($surplus_amount, false));$smarty->assign('account_log', $account_log);$smarty->assign('pager', $pager);$smarty->display('user_transaction.dwt');}6.添加积分说明languages/zh_cn/user.php,37行左右,添加:$_LANG['label_integral_explanation'] = '积分说明';languages/en_us/user.php,37行左右,添加:$_LANG['label_integral_explanation'] = 'Integral Explanation';themes/joyo25/library/user_menu.lbi,14行左右,添加:{$bel_integral_explanation}themes/joyo25/user_transaction.dwt,260行左右,添加:1.2.3.{$bel_integral_explanation}4.5.所有会员在乐博商城购物均可获得积分,积分可以用来参与兑换活动。
ecshop二次开发详细解答
在ECSHOP会员中心实现物流跟踪或包裹跟踪(非jquery版)前些日子,本站已经发表过一篇讲述“在ECSHOP会员中心集成物流跟踪或快递跟踪功能”的文章,不过以前那个方法用到了 jquery 。
今日公布的这个教程是不用JQUERY的方法。
下面是具体的修改教程:1)、首先下载物流跟踪插件 ecshop_express.rar,点击这里下载将它下载到你网站根目录的 plugins 子目录中,然后右键点击 ecshop_express.rar 文件,选择 "解压到 ecshop_express " ,解压后 ecshop_express 子目录下应该只存在两个文件: express.php 、snoopy.php2)、以下修改是以官方默认模板为例,其他模板本文不做讲解,请自行对照解决。
打开 /themes/default/user_transaction.dwt 文件将{$order.invoice_no}修改为<b id="shipping_name">{$order.shipping_name}</b> <bid="invoice_no">{$order.invoice_no|strip_tags}</b>接着,将<!--{if $order.to_buyer}-->修改为至此,大功告成,是不是比那个使用JQUERY的方法还简单。
到后台订单里发布一个运单号去看一下效果吧,下面是我在自己网站测试的效果在Ecshop商品详情页的本店售价中显示当前登录会员的等级价格问题描述:会员登录状态下,在ECSHOP商品详情页的本店售价中显示当前登录会员对应的等级价格,在未登录状态下,则还默认显示原来的本店售价。
解决方法:这个需要修改ECSHOP程序代码来实现。
其实也非常简单,只需要修改一行代码即可。
Ecshop二次开发
Ecshop二次开发,增加用户订单编辑功能/post/74.htmlEcshop是一款开源免费的网上商店系统。
功能很强大,但是也有很多的不足,不过幸好该系统是开源的,可以自己修改扩展进行ecshop二次开发。
呵呵,下面就介绍一下怎么我扩展用户的订单编辑功能。
第一步:准备模版文件。
修改模板文件中的user_transaction.dwt。
在文件中增加一段用户显示用户编辑订单的界面模版,其实该模版可以从该文件中的详细订单显示界面模板修改过来,只要截取商品列表和费用总计部分就好!1、搜索”<!– {if $allow_to_cart} –>”,在该代码的前面加入:<!– {if $allow_to_modify} –><a href="user.php?act=modify&order_id={$order.order_id}">编辑订单</a><!– {/if} –>2、搜索“<!– #BeginLibraryItem "/library/help.lbi" –>”,在其之前加入:<!–修改订单–><!–{if $action eq "modify"} –>{insert_scripts files=‟transport.js‟}<div class="titles">修改订单</div><div class="listbox"><form action="user.php" name="list" method="post"><table width="100%" id="orderlist2"><tr><th>{$lang.goods_name}</th><th>{$lang.goods_attr}</th><th align="right">{$lang.goods_price}<!–{if $order.extension_code eq "group_buy"} –>{$lang.gb_deposit}<!– {/if} –></th><th width="60px;" style="text-align:center">{$lang.number}</th><th width="60px;" class="rightborder">{$lang.subtotal}</th><th width="60px;" class="rightborder">操作</th></tr><!– {foreach from=$goods_list item=goods} –><tr><td><a href="goods.php?id={$goods.goods_id}" target="_blank">{$goods.goods_name}</a><!– {if $goods.parent_id > 0} –><span style="color:#FF0000">({$lang.accessories})</span><!– {elseif $goods.is_gift} –><span style="color:#FF0000">({$rgess})</span><!– {/if} –></td><td>{$goods.goods_attr|nl2br}</td><!–<td>{$goods.market_price}</td>–><td >{$goods.goods_price}</td><td ><input type=text name=good_number[{$goods.goods_id}] size=5 value="{$goods.goods_number}" style="text-align:center"></td><td class="rightborder">{$goods.subtotal}</td><td style="text-align:center;line-height:150%"><a href="javascript:if (confirm(‟你确定要删除该商品吗?‟)) location.href=‟user.php?act=modify&do=del&oid={$order.order_id}&bid={$goods.goods_id}‟; ">{$lang.drop}</a></td></tr><!– {/foreach} –><tr><td colspan="8" style="border-top:1px dotted #DADADA;text-align:right;">{$lang.shopping_money}<!–{if $order.extension_code eq "group_buy"} –>{$lang.gb_deposit}<!– {/if} –>: {$order.formated_goods_amount}</td></tr></table><table width="716" border="0" cellspacing="0" cellpadding="0"><tr><td width="300" height="50" align="center" valign="bottom"><input type="image" src="images/edit_button.gif" width="100" height="40" border="0" /></td><td width="416"> </td></tr></table><input type="hidden" name="do" value="update"><input type="hidden" name="act" value="modify"><input type="hidden" name="oid" value="{$order.order_id}"></form></div><div class="titles">费用总计</div><div class="listbox"><table width="100%" border="0" align="center" cellpadding="4" cellspacing="2"><tr><td align="right">{$lang.goods_all_price}<!–{if $order.extension_code eq "group_buy"} –>{$lang.gb_deposit}<!– {/if} –>: {$order.formated_goods_amount}<!– {if $order.discount gt 0} 折扣–>- {$lang.discount}: {$order.formated_discount}<!– {/if} –><!– {if $order.tax gt 0} –>+ {$lang.tax}: {$order.formated_tax}<!– {/if} –><!– {if $order.shipping_fee > 0} –>+ {$lang.shipping_fee}: {$order.formated_shipping_fee}<!– {/if} –><!– {if $order.insure_fee > 0} –>+ {$lang.insure_fee}: {$order.formated_insure_fee}<!– {/if} –><!– {if $order.pay_fee > 0} –>+ {$lang.pay_fee}: {$order.formated_pay_fee}<!– {/if} –><!– {if $order.pack_fee > 0} –>+ {$lang.pack_fee}: {$order.formated_pack_fee}<!– {/if} –><!– {if $order.card_fee > 0} –>+ {$lang.card_fee}: {$order.formated_card_fee}<!– {/if} –></td></tr><tr><td align="right"><!– {if $order.money_paid > 0} –>- {$lang.order_money_paid}: {$order.formated_money_paid}<!– {/if} –><!– {if $order.surplus > 0} –>- {$e_surplus}: {$order.formated_surplus}<!– {/if} –><!– {if $order.integral_money > 0} –>- {$e_integral}: {$order.formated_integral_money}<!– {/if} –><!– {if $order.bonus > 0} –>- {$e_bonus}: {$order.formated_bonus}<!– {/if} –></td></tr><tr><td align="right" style="border-top: 1px dotted #DADADA">{$lang.order_amount}: {$order.formated_order_amount}<!–{if $order.extension_code eq "group_buy"} –><br />{$lang.notice_gb_order_amount}<!– {/if} –></td></tr><!– {if $allow_edit_surplus} 如果可以编辑使用余额数–><tr><td align="right" style="border-top: 1px dotted #DADADA"><form action="user.php" method="post" name="formFee" id="formFee">{$e_more_surplus}:<input name="surplus" type="text" size="8" value="0" />{$max_surplus}<input type="submit" name="Submit" value="{$lang.button_submit}" /><input type="hidden" name="act" value="act_edit_surplus" /><input type="hidden" name="order_id" value="{$smarty.get.order_id}" /> </form></td></tr>{/if}</table></div><!–{/if}–><!–#修改订单–>第二步、编辑user.php文件1、在$ui_arr 中加入"modify“.* 显示页面的action列表*/$ui_arr = array(‟register‟, …login‟, …profile‟, …order_list‟, …modify…,‟order_detail‟, …address_list‟, …collection_list‟,'message_list‟, …tag_list‟, …get_password‟, …reset_password‟, …booking_list‟, …add_booking‟, …account_raply‟,'account_deposit‟, …account_log‟, …account_detail‟, …act_account‟, …pay‟, …default‟, …bonus‟, …group_buy‟, …group_buy_detail‟, …affiliate‟, …comment_list‟,'validate_email‟,'track_packages‟, …transform_points‟);2、在下面所示代码中,增加$smarty->assign(‟allow_to_modify‟,1);/* 未发货,未付款时允许更换支付方式和修改订单*/if ($order['order_amount'] > 0 && $order['pay_status'] == PS_UNPAYED && $order['shipping_status'] == SS_UNSHIPPED){$payment_list = available_payment_list(false, 0, true);$smarty->assign(‟allow_to_modify‟,1);3、在“//删除订单中的商品”的方面,加入下载代码:/*修改订单*/elseif($action==‟modify‟){function multiArraySearch($needle, $haystack){$value = false;$x = 0;foreach($haystack as $temp){// print_r($temp);$search = array_search($needle, $temp);if (strlen($search) > 0 && $search >= 0){$value[0] = $x;//$value[1] = $search;}$x++;}return $value;}include_once(ROOT_PATH . …includes/lib_transaction.php‟);include_once(ROOT_PATH . …includes/lib_payment.php‟);include_once(ROOT_PATH . …includes/lib_order.php‟);include_once(ROOT_PATH . …includes/lib_clips.php‟);if($_REQUEST['do']=="del"){$oid=$_REQUEST['oid'];$gid=$_REQUEST['bid'];$sql="select goods_price,goods_number from ".$ecs->table("order_goods")." where goods_id=$gid";$result=$db->getrow($sql);$order = get_order_detail($oid, $user_id);//取得订单$sql="delete from ".$ecs->table("order_goods")." where goods_id=$gid and order_id=$oid";//删除商品$db->query($sql);$sql="select configure from ".$ecs->table("shipping_area")." where shipping_id=".$order['shipping_id'];$shipping_fee=$db->getrow($sql);$tempa=unserialize($shipping_fee['configure']);$shipping=multiArraySearch("free_money",$tempa);$free_money=$tempa[$shipping[0]]['value'];//找出免运费的额度$market_price=$order['goods_amount']-$result['goods_price']*$result['goods_number'];$inv_id=array_search($order['inv_type'],$GLOBALS['_CFG']['invoice_type']['type']);$rate= floatval($GLOBALS['_CFG']['invoice_type']['rate'][$inv_id])/100;$tax=$order['tax']-($result['goods_price']*$result['goods_number'])*$rate;$addpay_fee=pay_fee($order['pay_id'],$result['goods_price']*$result['goods_number']);//删除的支付费用$pay_fee=$order['pay_fee']-$addpay_fee;$order_amount=$market_price-$discount+$tax+$pay_fee;$shipping_fee=$order['shipping_fee'];if($market_price>=$free_money){$order_amount=$order_amount-$shipping_fee;$shipping_fee="0.00";}else{if($shipping_fee<=0){$shipping=multiArraySearch("basic_fee",$tempa);$shipping_fee=$tempa[$shipping[0]]['value'];//找出基本运费的$order_amount=$order_amount+$shipping_fee;}}//更新订单信息$sql="update ".$ecs->table("order_info")." set goods_amount=‟".$market_price."‟,discount=‟".$discount."‟,shipping_fee=‟".$shipping_fee."‟,tax=‟".$tax."‟ ,pay_fee=‟".$pay_fee."‟,order_amount=‟".$order_amount."‟ where order_id=$oid";$db->query($sql);$order = get_order_detail($oid, $user_id);//再一次查检订单参数if($order['goods_amount']<=0){$sql="delete from ".$ecs->table("order_info")." where order_id=$oid";$db->query($sql);ecs_header("Location: user.php?act=order_list");exit();}ecs_header("Location: user.php?act=modify&order_id=".$oid);exit();}if($_REQUEST['do']=="update"){//更新商品数量$oid=$_REQUEST['oid'];$gid=$_REQUEST['bid'];$nums=$_REQUEST['good_number'];foreach($nums as $gid=>$num){$sql="select goods_price,goods_number from ".$ecs->table("order_goods")." where goods_id=$gid";$result=$db->getrow($sql);$order = get_order_detail($oid, $user_id);//取得订单$sql_storage = "SELECT goods_name,goods_number FROM " .$ecs->table(‟goods‟). " WHERE goods_id = $gid";$storage_num = $db->getRow($sql_storage);//库存if($result['goods_number']==$num){continue;}elseif($num<=0){show_message("对不起,您修改的商品数量不能为0,或小于0!", "返回", …user.php?act=modify&order_id=‟.$oid, …error‟);exit();}elseif ($num>$storage_num['goods_number']){show_message("对不起,您修改的商品数量不能大于该商品:".$storage_num['goods_name'].",库存数:".$storage_num['goods_number']."!", "返回", …user.php?act=modify&order_id=‟.$oid, …error‟);exit();}$addnum=$num-$result['goods_number'];$sql="update ".$ecs->table("order_goods")." set goods_number=".$num." where goods_id=$gid and order_id=$oid";//添加商品$db->query($sql);$sql="select configure from ".$ecs->table("shipping_area")." where shipping_id=".$order['shipping_id'];$shipping_fee=$db->getrow($sql);$tempa=unserialize($shipping_fee['configure']);$shipping=multiArraySearch("free_money",$tempa);$free_money=$tempa[$shipping[0]]['value'];//找出免运费的额度$market_price=$order['goods_amount']+$result['goods_price']*$addnum; //修改后商品总价格$inv_id=array_search($order['inv_type'],$GLOBALS['_CFG']['invoice_type']['type']);$rate=floatval($GLOBALS['_CFG']['invoice_type']['rate'][$inv_id])/100;$tax=$order['tax']+($result['goods_price']*$addnum)*$rate;//修改后税额$addpay_fee=pay_fee($order['pay_id'],$result['goods_price']*$addnum- $school_dis);//支付费用$pay_fee=$order['pay_fee']+$addpay_fee;$order_amount=$order['order_amount']+($result['goods_price']*$addnum)-$school_dis+($result[' goods_price']*$addnum)*$rate+$addpay_fee;//修改后订单总额$shipping_fee=$order['shipping_fee'];if($market_price>=$free_money){$order_amount=$order_amount-$shipping_fee;$shipping_fee="0.00";}else{if($shipping_fee<=0){$shipping=multiArraySearch("basic_fee",$tempa);$shipping_fee=$tempa[$shipping[0]]['value'];//找出基本运费的$order_amount=$order_amount+$shipping_fee;}}//更新订单信息$sql="update ".$ecs->table("order_info")." set goods_amount=‟".$market_price."‟,discount=‟".$discount."‟,shipping_fee=‟".$shipping_fee."‟,tax=‟".$tax."‟,pay_fee=‟".$pay_fee."‟ ,order_amount=‟".$order_amount."‟ where order_id=$oid";$db->query($sql);}$order = get_order_detail($oid, $user_id);//再一次查检订单参数if($order['goods_amount']<=0){$sql="delete from ".$ecs->table("order_info")." where order_id=$oid";$db->query($sql);ecs_header("Location: user.php?act=order_list");exit();}ecs_header("Location: user.php?act=order_detail&order_id=".$oid);exit();}$order_id = isset($_GET['order_id']) ? intval($_GET['order_id']) : 0;$order = get_order_detail($order_id, $user_id);/* 订单商品*/$goods_list = order_goods($order_id);foreach ($goods_list AS $key => $value){$goods_list[$key]['market_price'] = price_format($value['market_price'], false);$goods_list[$key]['goods_price'] = price_format($value['goods_price'], false);$goods_list[$key]['subtotal'] = price_format($value['subtotal'], false);}$smarty->assign(‟order‟, $order);$smarty->assign(‟goods_list‟, $goods_list);$smarty->display(‟user_transaction.dwt‟);}。
ecshop二次开发手册基础教程
ecshop二次开发手册基础教程【基本熟悉】前言:ECSHOP是一套完整的网络商店解决方案,包括前台的商品展示、购物流程和强大易用的后台管理。
由于ecshop简单易用,使用者几乎可以在3几分钟简单的设置一下就可以拥有一个网上商店系统,所以很多的B2C站点都选择了使用ECShop网上商店系统,但是有时候我们需要做一些ecshop本来没有的功能或者前端展示,这时候就需要我们自己去进行对ecshop的二次开发了。
一、ecshop系统功能二次开发ecshop的代码结构非常易懂,只有有一点php基础都可以在原有的程序基础上进行修改,或功能插件的开发。
ecshop中的一些公用函数都会放在includes文件夹里,而这些公用函数几乎我们都可以用来参照一下就能轻松做出我们想要的其他功能了。
我们要对ecshop进行二次开发,简单来说其实就是对数据库的读写操作,所以只要我们读懂ecshop的数据库操作类,接下来的实现就很轻松了。
ecshop的数据库操作类是很强大的,一些常用的函数如下:1.获取单条记录$GLOBALS['db']->getRow($sql);2.获取单一字段$GLOBALS['db']->getOne($sql);例如查询产品总数:echo $GLOBALS['db']->getOne(‘SELECT COUNT(*) FROM ‘ .$GLOBALS['ecs']->table(‘goods’) ;3.获取所有记录$GLOBALS['db']->getAll($sql);4.执行sql语句$GLOBALS['db']->query($sql);//执行删除(DELETE),插入(INSERT),更新(UPDATE)等操作可用此方法5.把数组元素插入数据库$parent['goods_number'] = ’1′;$parent['parent_id'] = 0;$GLOBALS['db']->autoExecute($GLOBALS['ecs']->table(‘cart’), $parent, ‘INSERT’);基于此基础上就能轻松进行ecshop二次开发了。
ecshop二次开发指定文章输出
ecshop模板中经常会使用到文章内容输出,一方面可以提供网站收录,另一方便对商品促销也起到一定的作用。
默认的ecshop模板是按添加输出文章内容,不会按照使用指定栏目输出,指定文章栏目输出需要通过修改ecshop程序达到。
思路:通过get_cat_articles()函数获取文章列表,在使用的文件中注册。
过程如下(以首页为例):第一步:打开index.php文件,约100行左右添加代码:$smarty->assign('my_articles', get_cat_articles(11,1,4));具体参数的值可以查看get_cat_articles()函数注解,ecshop在这方面做的很详细第二步:打开index.dwt模板文件,开始输出内容,代码如下(模板代码可自行书写,此处只做说明):<!--{foreach from=$my_articles item=article}--><li>[<a href="{$article.cat_url}">{$article.cat_name}</a>] <a href="{$article.url}"title="{$article.title|escape:html}">{$article.short_title|truncate:10:"...":true}</a> </li><!--{/foreach}-->后台添加完栏目,需要指定该栏目输出文章内容只要修改下index.php中的$smarty->assign('my_articles', get_cat_articles(11,1,4));参数就可以了,不用再修改模板。
ecshop订单快递单批量打印二次开发教程
ecshop 订单快递单批量打印二次开发教程教程开始: 1.admin\templates\order_list.htm ,在1 <input name="print" type="submit" id="btnSubmit4" value="{$lang .print_order}" class="button" disabled="true" onclick="this.for m.target = '_blank'" />后,添加1 <input name="print_shopping" type="submit" id="btnSubmit6" valu e="批量打印快递单" class="button" disabled="true" onclick="this.form.target = '_blank'" />2.admin\order.php ,在1 2 /* 去发货 */elseif (isset($_POST['to_delivery']))前,添加//批量打印快递单elseif (isset($_POST['print_shopping'])){$region_array = array();$region_id = !empty($_CFG['shop_country']) ? $_CFG['shop_country'] . ',' : '';$region_id .= !empty($_CFG['shop_province']) ? $_CFG['shop _province'] . ',' : '';$region_id .= !empty($_CFG['shop_city']) ? $_CFG['shop_city'] . ',' : '';$region_id = substr($region_id, 0, -1);$region = $db->getAll("SELECT region_id, region_name FR OM " . $ecs->table("region") . " WHERE region_id IN ($region_id )");if (!empty($region)){foreach($region as $region_data){$region_array[$region_data['region_id']] = $region_data['reg ion_name'];}}$smarty->assign('shop_name', $_CFG['shop_name']);$smarty->assign('province', $region_array[$_CFG['shop_pro vince']]);$smarty->assign('city', $region_array[$_CFG['shop_city']]);$smarty->assign('shop_address', $_CFG['shop_address']);$smarty->assign('service_phone',$_CFG['service_phone']);//以上是系统参数$order_sn_list = array();$order_sn_list = explode(',', $_POST['order_id']);foreach ($order_sn_list as $order_sn){/* 取得订单信息 */$order = order_info(0, $order_sn);$smarty -> assign('order',$order);$shipping = $db->getOne("SELECT * FROM " . $ecs->table( "shipping") . " WHERE shipping_id=" . $order['shipping_id']);if (empty($shipping['shipping_print'])){echo $smarty->fetch("str:" . $shipping['shipping_print']);}else{$shipping_code = $db->getOne("SELECT shipping_code FR OM " . $ecs->table('shipping') . " WHERE shipping_id=" . $order[ 'shipping_id']);if ($shipping_code){include_once(ROOT_PATH . 'includes/modules/shipping/' . $ shipping_code . '.php');}if (!empty($_LANG['shipping_print'])){echo $smarty->fetch("str:$_LANG[shipping_print]");}else{echo $_LANG['no_print_shipping'];}}}exit;}3.这是最重要的一点,其他地方根本没说过,害得作者君我折腾了两三天。
ECShop的二次开发
一phpStudy的安装与环境的搭建(本地php环境、mysql数据库环境、appache服务器)1.如下图,可以看到该安装包集成了最新的apache 、php、mysql、phpmyadmin等多种开发环境。
直接点击“下一步”进行安装。
2.在此可以选择更换安装程序的路径,确定后点击“下一步”。
3.在此可以选择网站程序的路径,即你的网站php代码所在的目录。
确定后点击“下一步”。
4.在此可以看到该phpstudy安装包的组件,你可以在此进行配置。
缺省情况下不用做修改,点击“下一步”。
5.后面的步骤也不需配置,直接点“下一步”。
当你看到下图界面时,表示你也完成phpstudy的安装,点击“完成”介绍安装过程。
6.安装完成后,启动phpstudy,phpstudy程序的主界面如下图。
在此可以控制Apache服务器和Mysql服务器的启停。
同时也有Mysql管理器菜单和其它选项菜单对系统进行一些配置。
二、安装ecshop7.登录网址免费下载ecshop网店系统最新版本8.将下载好的压缩包解压后得到三个文件夹9.把upload这个文件夹里面的内容拷贝到php运行环境的根目录(要安装多个ecshop时直接把upload拷贝到php环境的根目录就行,upload文件夹可以被改成自己喜欢的名字)。
10.打开浏览器输入localhost(或者localhost/upload安装多个),回车,进入安装欢迎界面。
11.下一步,进入环境检测,全包所有模块可写。
、12.下一步,填写数据库配置和用户信息。
若要安装测试数据注意勾选相应选项。
13.安装完成三、ecshop的二次开发1.进入管理后台,如下图所示。
要想对ecshop进行二次开发,就要先熟悉这个后台的所有功能。
2.首先进行商品添加,如下图所示。
3.进行产品分类如下图所示。
4.对于电商来说,品牌很重要。
所以,我们添加的都是国际品牌,添加分类针对的是对高端产品需求强烈的人群。
商城系统iwebshop_二次开发(简单版)
商城系统iwebshop_二次开发(简单版)模板目录与初始文件模路径与文件在开始制作之前,我们先来了解下SHOP的模板路径与文件SHOP的模板文件与皮肤放置在不同的目录下模板存放在./templates目录下皮肤存放在./skin目录下下面针对默认模板做一下结构说明默认模板存放在./templates/default目录下1、模块文件,文件夹中存放着可重复调用文件、模块,一般有头部、底部、侧栏等2、框架文件,网站功能的整体框架页面对应的默认风格存放在./skin/default目录下1、文件夹中存放对应模板方案的图片、样式表、JS等文件初始文件新建立一套模板的方法,复制一份默认模板方案与默认风格文件夹,放在相应的目录内,给新模板起一个名字,把两个文件夹同时更改成该名称。
或者直接在./templates与./skin建立空的文件夹,然后把做好的html 页面按照iweb_sns 模板命名规则命名并存放到模板目录。
登陆后台→全局设置→模板管理,找到你刚才建立的新模板选择应用模板,这样你就可以启用新的风格了建立网站框架、划分结构以默认模板为例子下面是首页设计好的效果图,我们来做一下区域划分,与常规的制作一样,成静态页面后把公共的部分分离出来,常见的有头部、底部与侧栏,引用他们到框架,用这样的语句{inc: include("shop/独立出来的文件名");/}我们可以根据上面的划分,规划出简单的布局框架如下:{inc: include("shop/header.html");/}<div class=”main”><div class=”focus”></div><div class=”sidebar”></div><div class=”content”></div></div>{inc: include("shop/footer.html);/}这段代码放置于index.html内,调用了头部文件header.html与底部文件footer.html。
ecshop功能二次开发之后台管理增加成本价和毛利润统计功能
ecshop功能二次开发之后台管理增加成本价和毛利润统计功能ecshop功能二次开发之后台管理增加成本价和毛利润统计功能在做ecshop二次开发的时候增加一个财务统计的功能!首先在订单中的商品信息【编辑】页面中,修改成本价。
也可以在添加商品时添加成本的如果不做手工修改,则使用默认的商品成本价(在商品信息里编辑的成本价格)。
我用的版本是ecsh.2第一步:修改数据库中的商品表ecs_goods和订单商品表ecs_order_goods,添加成本价字段cost_price把SQL语句列出来:alter table `ecs_goods` add column `cost_price` decimal (10,2) UNSIGNED DEFAULT ' NOT NULL after `promote_price`alter table `ecs_order_goods` add column `cost_price` decimal (10,2) DEFAULT ' NOT NULL after `market_price`这里是加在了字段promote_price 和market_price后面第二步.增加语言包,需要修改languages\zh_cn\admin\goods.php再最后添加 /* 新增-成本价 */$_LANG['lab_cost_price'] = '成本价:';$_LANG['notice_cost_price'] = '该商品进货价格(成本价,在商品添加时设置,也可以在商品编辑里面修改。
).';第三步.修改admin/goods.php 把成本价格插入到数据库在两个(有两个地方需要修改)'promote_price' => 0,后新增一行添加'cost_price' => 0,再在$shop_price = !empty($_POST['shop_price']) ? $_POST['shop_price'] : 0;后添加$cost_price = !empty($_POST['cost_price']) ? $_POST['cost_price'] : 0;将/* 入库 */if ($is_insert){。
ecshop二次开发思想
ecshop模板修改!!!!!!ECshop 模板制作教程(转) 收藏授人以鱼,不如授人以渔,EC 就算作再多的模板,肯定也满足不了我们的需要,更何况各行有各行的门道,EC 统一做出来的模板也不一定合适于我们这个行业用,因此,只有我们真正掌握了自己做模板、修改模板的功夫,才能真正的打造适合自己的电子商务平台,真正打造符合自己行业内的客户习惯的电子商务平台。
本教程适用于了解ECshop 和ECshop 模板DIY 以及它们的日常使用,在查看前阁下需要至少会使用一种编辑器(exp:Dreamweaver 、editplus 、emacs 、vi 、ee ... 意思就是可视化的html 编辑器或者直接文本编辑器,我在讲的时候用Dreamwaver 来讲,这样比较适合初学者和设计师)。
这个教程目前由我一个人维护,但我相信,过不了多久就会有多人持续地维护。
其中的内容需要不断地更新。
如果您有兴趣参加,嘿嘿,PM 我。
我们一起为大家服务啊。
通过对本教程的学习,只要您边看边跟着做,一定能够学会自己做模板的。
:)下列章节的适用于ECshop 程序。
同时这里许多内容和一些Smarty 相关。
假如您已经熟悉这些内容可跳过不阅读。
假如您是ECshop 新手并且想DIY 一下自己的店铺,那您应该认真详细地从头到尾读一遍下面章节。
(ps :大家不要紧张,我会尽量用人类的语言和大家交流,实在万不得已才会用机器语言展示给大家)希望大家能够通过本教程,想要什么模板都能自己做出来。
哈哈!一起加油吧!第一章ECshop 模板基础读取本部分内容,您将了解:☆每个前台页面所对应的模板页面,模板文件的目录结构。
☆一些最基本的ECshop 模板修改方法。
☆模板的路径以及相关包含文件的方法(深入了解Dreamweaver 模板制作)。
☆一些常用模板例子讲解。
模板存放路径:ecshop/themes/xxxxx 其中的xxxxx 就是某一套模板,如,系统一般会自带的模板文件名叫做default ,(即,ecshop/themes/default )里面放的就是安装时的默认模板,以下所有的说明都是针对默认模板来讲解。
ecshop二次开发,常用功能开发
ecshop二次开发,常用功能开发ecshop二次开发,常用功能开发1、ECSHOP 搜索智能提示(即联想功能)2、购物车动态更新,数量左右有+ - 点击即可实时改变价格,购买商品“加入购物车”,弹出特效窗口,购物车属性,加减号3、信任登陆:QQ、新浪微博、淘宝/支付宝等合作登录功能插件含后台设置功能(可选)4、ecshop自定义URL/链接,支持无限级目录,对提高SEO排名很有帮助、/thread-__-1-1.html5、Ecshop自动生成购买记录和评论插件6、物流跟综7、资讯站自动内链功能,在后台设置关键词,资讯站相关关键词可点到商品或分类8、简化购物流程购物流程整合成单页面运费无刷新变化所有操作在单页面完成,简化了购物流程,提高成交,将购物车、填写收货地址、物流方式和支付方式集成在一个页面上完成,9、ecshop 网站商品图片分步加载,(图片太多,加载会很慢,页面在第一屏就加载第一屏,拖动后自动加载),类似于京东,趣玩网的图片预加载..ecshop二次开发,常用功能开发。
ecshop二次开发,常用功能开发10、ECSHOP CPS 广告联盟插件,11、促销期内,每个用户最多只允许购买N 件。
不论你是昨天买的,还是今天买的,还是明天买的,也不论你下多少订单,只要是在促销期内,购买数量加在一起不能超过N 件。
这个数字N 可以在后台设置。
例如对商品A做促销活动,规定在2022年-01-01 至2022年-02-01 期间,每个用户最多只能购买2件,在这个时间段之前或在这个时间段之后购买的话,不做任何限制。
12、限时抢购(限时抢拍)、团购(两种方式:普通团购、满多少团购价减多少)、秒杀、买就送、倒计时功能13、ECSHOP优惠套餐插件,仿趣玩网,支持多套餐,支持勾选ecshop二次开发,常用功能开发14、实现用户名或Email都能登陆15、未注册等提示性跳转,以浮动层表现15、其它,如浮动返回到顶部、浮动客服等ecshop二次开发,常用功能开发怎样把ECSHOP商城系统中的相对地址变成带域名的绝对地址?答:我们一般所说的绝对地址(也有朋友称其为:完整地址)是页前台查看源文件时,在源文件中都所能看到的带域名的完整URL形式,比如:“a href=“/sitemap.xml "__/a”修改说明:这样修改的好处:也许很多朋友都非常想把以mon.php这个文件把return $uri;修改为return 'http:// /'.$uri;为什么我的ECSHOP首页和商品列表页中的商品缩略图很模糊,我应该怎么做,图片才会清晰呢?答:经常看到论坛里有人反映说首页或列表页的缩略图的质量不高,比较模糊......原因是因为ECSHOP生成缩略图时,用到的函数imagejpeg() 没有设置质量参数。
shopex 二次开发实战指南(罕见教程)
<?php
/*********************/
/*
*/
/* Dezend for PHP5 */
/*
NWS
*/
/*
Nulled.WS */
/*
*/
/*********************/
include_once( "shopObject.php" ); class mdl_warehouse extends shopObject {
/** * 设置商品仓库 * @param unknown_type $id */
public function count($id,$goodsName){ $houses = &$this->system->loadModel('goods/warehouse'); $list = $houses->getLogList($id);
一、效果预览
1.在‘商品’菜单栏中添加‘仓库’的菜单组:
1
2.仓库列表:
3.添加/编辑仓库
2
二、添加菜单及创建数据表
1.思路
1)因为后台的菜单是加密了,网上有通过用户自定义目录的方式来添加后台菜单,不过讲 得不够详细,没试成功=.= 于是我直接修改后台菜单的 php,文件路径为:core\include_v5\adminSchema.php 使用 dezender 工具将这个文件解密。这里顺带说一下解密,如图:
库名称')); exit;
}
$houses = &$this->system->loadModel('goods/warehouse');
Ecshop系统框架分析之二次开发要点
Ecshop系统框架分析之二次开发要点专业的网站策划队伍、专业的美工设计师。
丰富的制作经验和高超的创意水平,可根据您的企业的行业类型和产品特点设计出更加商业化、国际化的网站。
精益求精的网页制作人员、严谨的应用程序开发人员、尽善尽美的售后服务人员。
这一切,是我们为您提供专业网站建设服务前提。
进入互联网时代以来,建设网站、网站推广、网络营销、电子商务,成为众多中小企业寻求快速发展,建立竞争优势的一个重要途径。
品界科技提供网页制作、网页优化、网站推广一条龙服务。
我们在您的网站建设之初即提供网站优化服务,我们按搜索引擎的搜索习惯来设计建设您的网站,使您的网站在建设完成后即完成了网站优化任务,大大提升您网站在搜索引擎中的竞争优势。
首页 >> 网站建设 >> Ecshop系统框架分析之二次开发要点Ecshop系统框架分析之二次开发要点品界做网站建设时商城做得多了,经常用到ECSHOP程序,毕竟是免费开源的,很多地方需要进行二次开发才能符合客户的要求,现在把一些二次开发必须要先弄懂的要点总结如下(内容为转载整理)。
一、整体框架结构:整个系统是层结构,有数据层及外观层组成。
比如,我们index.php是外观层(和用户打交道的层),include目录下的lib_goods.php是数据层(跟数据库打交道的)。
拿推荐产品来说吧,在index.php是对数据层get_recommend_goods('new')函数的调用。
二、重要目录:首先大多前台程序是在根目录下的,对应的英文就是对应的显示页面admin:是我们后台的文件夹,后台的模板文件是在下一层的templates里。
这里我强调几个后台文件,首先需要了解init.php文件,这个是对后台session的访问权限及调用模板的路径等功能的设置;第二个文件是inc_menu.php这是定义功能菜单文件,看到论坛有人要把后台一些功能去掉,你就可以改这文件把里面的一些模块删了即可。
Ecshop二次开发之自定义库文件和模板数据调用实例-电脑资料
Ecshop二次开发之自定义库文件和模板数据调用实例-电脑资料这篇文章主要为大家介绍了Ecshop二次开发之自定义库文件和模板数据调用方法,是进行ecshop二次开发中非常实用的重要技巧,涉及底层库文件的修改与应用,需要的朋友可以参考下本文实例讲述了Ecshop二次开发之自定义库文件和模板数据调用方法,。
分享给大家供大家参考。
具体方法如下:Smarty的标签非常多,也比较繁琐,所以Ecshop使用了精简版的Smarty,其中用到的Smarty模板语法:{$keywords} 输出模板变量{$array.test.abc} 输出二维数组{$lang.remark_package} 语言包$lang[remark_package]{insert_scripts files=‘common.js‘} 引入js文件xxxx 循环xxxx 判断引入goods_tags.lbi库文件,相当于PHP的include{*内容*} html注释,只在模板上显示,页面上会被删除掉.Ecshop二次开发的数据调用,主要动用到以下两个目录下的文件dwt(模板文件)路径: themes\\defaultlbi(库文件)路径: themes\\default\\library举个例子就很清楚了,是我从网上找来的,由于转载得很严重,所以不知道真正出处。
我们在themes\\default\\library下新建一个名为newest_comments.lbi的库文件,写入以下内容:代码如下:if(!function_exists("get_new_comments")){function get_new_comments($num){$sql = ‘SELECT * FROM ‘.$GLOBALS[‘ecs‘]->table(‘comment‘) .‘ WHERE status = 1 AND parent_id = 0 and comment_type=0 ‘.‘ ORDER BY add_time DESC‘;if ($num > 0){$sql .= ‘ LIMIT ‘ . $num;}//echo $sql;$res = $GL OBALS[‘db‘]->getAll($sql);$comments = array();foreach ($res AS $idx => $row){$comments[$idx][‘add_time‘] = $comments[$idx][‘add_time‘] = local_date($GLOBALS[‘_CFG‘][‘time_format‘],$row[‘add_time‘]);$comments[$idx][‘user_name‘] = $row[‘user_name‘];$comments[$idx][‘content‘] = $row[‘content‘];$comments[$idx][‘id_value‘] = $row[‘id_value‘];}return $comments;}}$this->assign(‘new_comments‘,get_new_comments(10)); // 10条最新评论>{$comment.content|truncate:15:""}时间:{$comment.add_time}这样一个库文件就做好了,电脑资料《Ecshop二次开发之自定义库文件和模板数据调用实例》(https://www.)。
ecshop二次开发经验讲座
ecshop二次开发经验讲座ecshop程序的基本结构和介绍-讲座1ecshop程序的基本结构, ecshop其实算是结构化的程序设计。
不算是三层结构.ecshop 主要采用的是ecshop自写的非标准化smarty 模板引擎来实现的。
ecshop模板的核心程序在includes/cls_template.php.将来我们将会详细讲述eshop模板结构的原理.有关模板制作的教程,可以参考以下路径/doc/ff55575a312b3169a451a48d.html /html/dianzishangwujiaocheng/ecshoptemplate/inde x.html ecshop有一个安装的过程,除了配置一些模板信息,测试数据外。
最重要的是规划好了模板的引用,以及数据库相关的配置信息。
ecshop的模板位置于themes目录.ecshop 系统的配置文件信息位置于data/config.php文件。
ecshop处理整站程序的文件在includes目录里面.既然谈到了ecshop的模板引擎。
那么一定要说说ecshop 的缓存目录。
位于temp目录.ecshop可以有不同的语言版本,他是靠语言包languages目录来控制的。
ecshop默认的后台路径位置与admin目录,他是整个后台管理的核心.有朋友问我,如果修改ecshop浏览器里面显示的小推车图标.很简单,他就是根目录下的favicon.ico文件。
你将他喜欢修改就可以.大家都知道ecshop最大的特点是支持wap访问,所以mobile 目录理所当然的就是wap程序所在的目录。
如果要让ecshop支持wap访问,很简单。
我们必须在ecshop后台的系统设置里面,wap 设置里面开启wap功能就可以了。
ecshop初始化文件init.php组成和工作原理-讲座2ecshop初始化文件组成和工作原理,大家都知道,ecshop核心处理文件是在includes目录里面,包括ecshop支付插件,ecshop功能函数公共函数文件,ecshop配送方式插件等.甚至包括ecshop模板解析文件cls_template.php文件.ecshop中各个文件的初始化,引用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ecshop二次开发50个小技巧1:如何统计ecshop商品在订单中出现的次数回答:$count = $db -> getOne("select sum(goods_number) from ".$ecs->table('order_goods')." where goods_id = '$goods[goods_id]'");2:ecshop详细页面如何通过onclick点击事件来控制购买,特别用在批发,批发存在一个最小购买量控制.回答:<script>function adgtz(){var number = document.getElementById("ordernumber").value;var min_number = {$goods.min_number};var goods_num = 1000;if(number > goods_num - min_number){alert("最多能买"+goods_number+"件");}number=parseInt(number)+min_number;document.getElementById("ordernumber").value = number;}function adgtzmm(){var number = document.getElementById("ordernumber").value;var min_number = {$goods.min_number};if (number>min_number){number=parseInt(number)-min_number;}document.getElementById("ordernumber").value = number;}</script>3:如何用js去验证手机号码.回答:var reg =/^[1]([3][0-9]{1}|50|53|59|58|56|86|80|89|87|88|85|86|55|51|52|57)[0-9]{8}$/;4:ecshop中如何取得每个月的1号时间?回答:local_mktime(0,0,0,date("m"),0,date("Y"));使用ecshop的local_mktime函数. /html/shangchengchengxu/ecshophanshu/2009/0629/70.html5:ecshop如何直接关闭窗口而不弹出提示回答:<a href="javascript:window.opener=null;window.close();">6:如何统计ecshop某商品下被审核过的评论数量。
回答:$ccount = $db -> getOne("select count(*) cc from ".$ecs->table('comment')." where id_value = '$goods_id' and comment_type = '0' and status = '1' and parent_id = '0'");有关ecshop评论,请参考本文/html/shangchengchengxu/ecshopchangjianwenti/2009/0811/12 9.html7:ecshop中js如何将时间格式互转回答:date1 = new Date();var b = Date.UTC(date1.getYear(),date1.getMonth()+1,date1.getDate(),0,0,0)time1 = frm.elements['best_time'].value;y = time1.substring(0,4);m = time1.substring(5,7);d = time1.substring(8,10);var b2 = Date.UTC(y,m,d,0,0,0)8:如何解析ecshop flash的xml回答:$str = @file_get_contents("data/flash_data.xml");if($str){preg_match_all("/item_url=\"(.*?)\"/",$str,$url);preg_match_all("/text=\"(.*?)\"/",$str,$text);preg_match_all("/link=\"(.*?)\"/",$str,$link);$ar_flash = array();if(sizeof($url[1])){for($i=0;$i<sizeof($url[1]);$i++){$ar_flash[$i]['url'] = $url[1][$i];$ar_flash[$i]['text'] = $text[1][$i];$ar_flash[$i]['link'] = $link[1][$i];}$smarty->assign('ar_flash',$ar_flash);}}9:ecshop中如何正则提取中文回答:preg_match("/[".chr(0xa1)."-".chr(0xff)."]+/",ecs_iconv("UTF-8","GBK",$v['bra nd_name']),$cn);10:ecshop如何取得订单中所属区域$p = $GLOBALS['db']->getOne("select region_name from ".$GLOBALS['ecs']->table('region')." where region_id = '".$re1['province']."'"); $c = $GLOBALS['db']->getOne("select region_name from ".$GLOBALS['ecs']->table('region')." where region_id = '".$re1['city']."'");$d = $GLOBALS['db']->getOne("select region_name from ".$GLOBALS['ecs']->table('region')." where region_id = '".$re1['district']."'");11:ecshop中如何分别提取中文和英文回答:utf下面$pregstr = "/[\x{4e00}-\x{9fa5}]+/u";preg_match($pregstr,$v['brand_name'],$ch);gbk下面$strtest = “yyg中文字符yyg”;$pregstr = "/([".chr(0xb0)."-".chr(0xf7)."][".chr(0xa1)."-".chr(0xfe)."])+/i";if(preg_match($pregstr,$strtest,$matchArray)){echo $matchArray[0];}12:如何控制ecshop商品总价格只有ecshop会员特殊等级才能查看回答:ecshop的goods.php$is_spe = $GLOBALS['db'] -> getOne("select special_rank from ".$GLOBALS['ecs']->table('user_rank')." where rank_id = '".$_SESSION['user_rank']."'");if($is_spe){$res['result'] = price_format($shop_price * $number);}else{$string = "<a href=article-21-%E6%80%8E%E4%B9%88%E6%B3%A8%E5%86%8C.html>请联系客服</a>";$res['result'] = $string;}13:调试ecshop程序出现以下错误Fatal error: Cannot redeclare是什么意思?回答:Fatal error: Cannot redeclare,意思是你运行的程序中,某函数重新申明了两次,要删除其中一个同名函数.14:ecshop如何判断是否当天登陆,并赠送积分.回答:/* 赠送积分 */$day = local_mktime(0,0,0,date("m"),date("d"),date("Y"));$last_time = $db -> getOne("select last_login from ".$ecs->table('users')." where user_name = '".$username."'");if($last_time < $day){log_account_change($_SESSION['user_id'], 0, 0, 0, 10, '每天登陆送积分', ACT_OTHER);}15:如何在ecshop订单列表中列表出订单中所包含的商品编号.回答:function get_user_orders($user_id, $num = 10, $start = 0){/* 取得订单列表 */$arr = array();global $ecs;global $db;$sql = "SELECT order_id, order_sn, order_status,consignee, shipping_status, pay_status, add_time, " ."(goods_amount + shipping_fee + insure_fee + pay_fee + pack_fee + card_fee + tax - discount) AS total_fee "." FROM " .$GLOBALS['ecs']->table('order_info') ." WHERE user_id = '$user_id' ORDER BY add_time DESC";$res = $GLOBALS['db']->SelectLimit($sql, $num, $start);while ($row = $GLOBALS['db']->fetchRow($res)){if ($row['order_status'] == OS_UNCONFIRMED){$row['handler'] = "<a href=\"user.php?act=cancel_order&order_id=" .$row['order_id']. "\" onclick=\"if (!confirm('".$GLOBALS['_LANG']['confirm_cancel']."')) return false;\">".$GLOBALS['_LANG']['cancel']."</a>";}else if ($row['order_status'] == OS_SPLITED){/* 对配送状态的处理 */if ($row['shipping_status'] == SS_SHIPPED){@$row['handler'] = "<a href=\"user.php?act=affirm_received&order_id=" .$row['order_id']. "\" onclick=\"if (!confirm('".$GLOBALS['_LANG']['confirm_received']."')) return false;\">".$GLOBALS['_LANG']['received']."</a>";}elseif ($row['shipping_status'] == SS_RECEIVED){@$row['handler'] = '<span style="color:red">'.$GLOBALS['_LANG']['ss_received'] .'</span>';}else{if ($row['pay_status'] == PS_UNPAYED){@$row['handler'] = "<a href=\"user.php?act=order_detail&order_id=" .$row['order_id']. '">' .$GLOBALS['_LANG']['pay_money']. '</a>';}else{@$row['handler'] = "<a href=\"user.php?act=order_detail&order_id=" .$row['order_id']. '">' .$GLOBALS['_LANG']['view_order']. '</a>';}}}else{$row['handler'] = '<span style="color:red">'.$GLOBALS['_LANG']['os'][$row['order_status']] .'</span>';}$row2 = $db -> getAll("select goods_id ,goods_sn from".$ecs->table('order_goods')." where order_id = '".$row['order_id']."'");$row['shipping_status'] = ($row['shipping_status'] == SS_SHIPPED_ING) ? SS_PREPARING : $row['shipping_status'];$row['order_status'] = $GLOBALS['_LANG']['os'][$row['order_status']] . ',' . $GLOBALS['_LANG']['ps'][$row['pay_status']] . ',' . $GLOBALS['_LANG']['ss'][$row['shipping_status']];$arr[] = array('order_id' => $row['order_id'],'order_sn' => $row['order_sn'],'order_time' => local_date($GLOBALS['_CFG']['time_format'], $row['add_time']),'order_status' => $row['order_status'],'consignee' => $row['consignee'],'total_fee' => price_format($row['total_fee'], false),'goodslist' => $row2,'handler' => $row['handler']);}return $arr;}16:如何取得ecshop会员一天内的评论条数回答:function get_day_count_comment($user_id = ''){global $db;global $ecs;$pre = local_mktime(0,0,0,date("m"),date("d"),date("y"));$next = local_mktime(0,0,0,date("m"),date("d")+2,date("y"));$count = $db -> getOne("select count(*) from ".$ecs->table('comment')." where user_id = '$user_id' and add_time > '$pre' and add_time < '$next' ");if($count > 5){return false;}else{return true;}}17:ecshop中js是如何验证radio选择.。