最土团购程序二次开发必备资料.doc_第1页
最土团购程序二次开发必备资料.doc_第2页
最土团购程序二次开发必备资料.doc_第3页
最土团购程序二次开发必备资料.doc_第4页
最土团购程序二次开发必备资料.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1代金券 cardid 代金券 IDcode 识别码partner_id 商户 IDteam_id 商品 IDorder_id 订单 IDcredit 代金券金额consume 是否使用过ip 时候时候的 IPbegin_time 有效期开始时间end_time 有效期结束时间分类 表 category分类的 id : id分类类型 : zone分类的分组 : czone分类名称 : name分类的英文名称 : ename分类的名称首字 : letter分类的排序 : sort_order是否显示首页 : display订单 表 order订单 id : idpay_id : 支付编号,也就是订单编号buy_id : 购买会员的 IDservice : 支付方式会员 ID : user_id管理员 id : admin_id , 判断是否管理员项目 ID : team_id2城市 ID : city_id代金券 ID : card_id支付状态 : state商品数量 : quantity真实姓名 : realname手机号码 : mobile邮政编码 : zipcode收货地址 : address是否选择快递 : express快递编号 : express_id快递单编码 : express_no商品价格 : price已支付金额 : money订单总价格 : origin积分获取 : credit使用优惠券金额 : card商品属性 : condbuy购买备注 : remark下单时间 : create_time支付时间 : pay_time评论内容 : comment_content评论显示 : comment_display3评论级别 : comment_grade评论时间 : comment_time商家 ID : partner_id短信通知 : sms_express最土数据库优惠券表 coupon优惠卷 ID: id会员的 ID: user_id商户的 ID: partner_id项目的 ID: team_id订单编号 ID:order_id类型 : type获得积分 : credit优惠卷密码 :secret是否使用过 :consume使用优惠卷时的 ip:ip是否成功发送短信 :sms优惠券过期时间 :expire_time短信发送时间 :sms_time该项目下的购买次序 :buy_id最土数据库商家信息 partner 表商户 ID: id商户用户名 : username商户密码 :password商户名称 :title商户商品分类 :group_id商户网站地址 :homepage商户城市 id: city_id商户银行帐户名称 :bank_name商户银行帐户帐号 :bank_no商户用户名 : bank_user商户所处位置 : location商户联系人 : contact商户图片 :image商户图片 1:image1商户图片 2:image2商户电话号码 :phone商户联系地址 :address4商户其他信息 :other商户手机号码 :mobile商户展示 :open商户会员 id:user_id商户建立时间 :create_time是否显示首页 :display对商户评论满意数量 :comment_good对商户评论一般数量 :comment_none对商户评论失望数量 :comment_bad最土数据库管理员日志表 logger_admin 结构日志编号 : id操作管理员 ID: user_id操作管理员的邮件 :user_email操作类型 : type操作描述 : operation相关数据 : relate_data操作时间 : create_on最土会员 user 表结构会员 id: id会员邮件 : email会员名称 : username会员真实名 : realname会员密码 : password会员头项 : avatar性别 : gender手机号码 : mobile联系 QQ: qq帐户余额 : money帐户积分 : score邮政编码 : zipcode联系地址 : address所在城市 ID: city_id是否通过邮件验证 :enable是否为管理员 :manager邮件验证的密钥 :secret5修改密码的密钥种子 :recode登陆时 IP 地址 : ip最后登陆时间 : login_time注册时间 : create_time最土数据库友情链接表 friendlink友情连接 ID: id友情链接标题 :title友情链接地址 :url友情链接 logo: logo排序 : sort_order是否显示首页 :display最土数据库邀请返利表 invite邀请 id: id邀请人 ID: user_id处理邀请的管理员 : admin_id邀请注册时 IP: user_ip被邀请人 ID: other_user_id项目 ID : team_id是否支付 :pay获得的返利 : credit购买时间 : buy_time写入记录时间 : create_time最土数据库问题反馈表 feedback留言编号 : id城市 id: city_id6留言用户 id: user_id留言类型 : category称呼 : title联系 email : contact留言内容 : conent留言时间 : create_time最土数据库提问答疑 ask 表提问 ID : id提问用户 UID : user_id团购项目 id : team_id提问所在城市 id: city_id提问类型 : type提问内容 : content回复内容: comment提问时间 : create_time最土积分兑换商品数据库 goods 表积分商品 id: id积分商品标题 : titie兑换所需要的积分 :score积分商品的图片 : image积分商品创建时间 : time排序字段 : sort_order已经兑换数量 :consume7是否显示 : display最土数据库邮件订阅表 subscribe订阅 ID: id订阅邮件 :email订阅所在的城市 ID: city_id订阅时候的密钥 : secret最土数据库手机号码订阅表 smssubscribe订阅编号 : id订阅的手机号 : mobile城市 ID: city_id手机订阅的密钥: secret状态 : enable订阅时间: create_time最土收货人信息功能分析我们在使用和研究 最土程序 的时候。就必须知道和了 解最土收货人信息功能 , 我们在在最土后台录入 最土项目 的时候 , 在填写配送信息的时候 , 我们可以选择使用优惠券,当然也可以为该商品选择对应的物流。那么他就是记录 在express 字段中。首先我们看购买信息填写页面,当录入该商品的时候。选择了物流信息 。 那么在购买该商品的时候 , 就必须填写收货人信息和地址 。 首先我们找到对应的模板。$nl2br(htmlspecialchars($teamexpress) 快递信息 收件人 收件人请与有效证件姓名保持一致,便于收取物品 手机号码 手机号码是我们联系您最重要的方式,请准确填写 收件地址 为了能及时收到物品,请按照格式填写: _ 省 _ 市 _ 县(区) _当我们填写完信息 最土的订单 信息之后,我们可以将数据提交到数据库 表order 中去。具体的代码参考以下。$insert = array(user_id, team_id, city_id, state, express_id,fare, express, origin, price,address, zipcode, realname, mobile,quantity, create_time, remark, condbuy,);if ($flag = $table-update($insert) $order_id = abs(intval($table-id);/* 插入订单来源 */$dataorder_id = $order_id;$datauser_id = $login_user_id;$datareferer = $_COOKIEreferer;$datacreate_time = time();DB:Insert(referer, $data);redirect(WEB_ROOT./order/check.php?id=$order_id); 邮政编码 9当最土的订订单提交后,我们就可以通过后台查看订单的详细信息。具体的代码。可以参考以下代码。else if ( orderview = $action) $order = Table:Fetch(order, $id);$user = Table:Fetch(user, $orderuser_id);$team = Table:Fetch(team, $orderteam_id);$orderreferer = Table:Fetch(referer, $id);if ($teamdelivery = express) $option_express = option_category(express);$orderexpress_name = $option_express$orderexpress_id;$payservice = array(alipay = 支付宝 ,tenpay = 财付通 ,chinabank = 网银在线 ,credit = 余额付款 ,cash = 线下支付 ,);$paystate = array(unpay = 未付款 ,pay = 已付款 ,);$option_refund = array(credit = 退款到账户余额 ,online = 其他途径已退款 ,);$html = render(manage_ajax_dialog_orderview);json($html, dialog);最土代金券功能分析我们在录入 最土 项目的时候 , 我们可以选择该商品最多能使用多少代金券 , 比如你录入是 10 ,商品价格是 20 。那么你手上有最土的代金券的话。你只需要支 付1010 元就可以。非常方便。我们在后台可以生成代金券,具体的在最土后台代金券管理里面。最土后台 生成代金券之后 , 他是存储在最 土数据库 card 表里 面 。 主要占 据id 字段。里面存储着使用期限。我们在购买的时候,当填写完最土的收货人信息之后,会进入支付页面,这个时候如果该商品允许使用最土代金券的话 。 你就可以直接输入代金券 。 抵消部分余额 。当我们点输入代金券的时候,将触发以下 JSX.misc.cardcode = function() var oid = jQuery(#cardcode-order-id).attr(value);var cid = jQuery(#cardcode-card-id).attr(value);if(oid&cid) return !X.get(WEB_ROOT +/ajax/order.php?action=cardcode&id=+oid+&cid=+cid);该方法调用 ajax/order.php 来返回逻辑数据流。elseif ( $action = cardcode) $cid = strval($_GETcid);$order = Table:Fetch(order, $order_id);if ( !$order ) json( 订单记录不存在 , alert);$ret = ZCard:UseCard($order, $cid);if ( true = $ret ) json(array(array(data = 代金券使用成功 , type=alert),array(data = null, type=refresh),), mix);$error = ZCard:Explain($ret);json($error, alert);我们看到,当我们输入代金券的时候,将返回一定的提示。他就是通过ZCard:Explain($ret); 方式来返回提示信息的。该函数代码如下。static public function Explain($errno) switch($errno) case self:ERR_NOCARD : return 代金券不存在 ;case self:ERR_TEAM : return 代金券不可用于本单 ;case self:ERR_CREDIT : return 代金券面额受限 ;11case self:ERR_EXPIRE : return 不在有效期内 ;case self:ERR_USED : return 代金券已被使用 ;case self:ERR_ORDER: return 每单只能用一张代金券 ;return 未知错误 ;最土邀请返利润功能分析研究最土有很长时间,对 最土二次开发 也有不少接触 . 最近朋友常常要求对 最土返利功能进行分析 . 首先我们在个人中心里面 。 可以获取自己的邀请链接 , 其实他就是指向 r.php 的一个链接 , 在该页面记录 _rid 的 cookie 变量为 3 天。我们可以看到注册页面有以下代码 , 就是注册的时候判断如果存在邀请 . 也就是 $_COOKIE_rid 存在,那么记录当前注册会员的推荐人为 cookie 里面的值 .$_rid = abs(intval(cookieget(_rid);if ($_rid & $user_rowid) $r_user = Table:Fetch(user, $_rid);if ( $r_user ) ZInvite:Create($r_user, $user_row);ZCredit:Invite($r_userid);然后我们可以看到在 invite 表里面增加了一条邀请记录 .user_id = $ruserid,user_ip = $ruserip,other_user_id = $newuserid,other_user_ip = $newuserip,create_time = time(),);return DB:Insert(invite, $invite);如果后台设置了最土邀请送积分的话 。 我们还可以看到会员的帐户积分和积分表明晰里面的积分记录将增加一条 , 通过该代码实现的。将数据写入最土邀请最土邀请返利表 invite$user = Table:Fetch(user, $user_id);Table:UpdateCache(user, $user_id, array(score = array( score+$score ),);12$u = array(user_id = $user_id,admin_id = 0,score = $score,action = $action,detail_id = $detail_id,create_time = time(),);return DB:Insert(credit, $u);最土团购程序注册功能扩展我们在使用和研究最土二次开发的时候,需要对最土的注册功能进行改进和调整,比如对最土注册功能进行扩展 , 在最土程序的注册功能里面,增加几个注册字段。下面我们将结合最土的注册程序,来谈谈注册功能扩展 .1:alter table user add column usercard varchar(64) , add column intidint(1) default 02:ajax/validator.php 增加以下代码elseif ( signupcard = $n ) $slength = strlen($v);if ($slength $v,);if($exists)Output:Json(null, 1);Output:Json(0);3:include/template/account_signup.html 身份证号13 请填写正确的身份证编码 邀请人帐 户ID 填写 4-16 个字符 , 一个汉字为两个字符 4:include/library/Utility.class.phpstatic public function ValiUsercard($card) $regexp = /(d15$|d18$|d17(d|X|x)$/;if ( preg_match($regexp, $card) )return true;return false;5:account/signup.php$uusercard = strval($_POSTusercard);$uintid = intval($_POSTintid);if (!Utility:ValiUsercard($uusercard) Session:Set(error, 您输入的身份证号码格式不对 );redirect( WEB_ROOT . /account/signup.php);14$exists1 = Table:Count(user, array(usercard = $uusercard,);if ($exists1) Session:Set(error, 注册失败,该身份证号已经使用 );redirect( WEB_ROOT . /account/signup.php);6:include/class/ZUser.class.php 的 Create()if($user_rowintid)$_rid = abs(intval($user_rowintid);else$_rid = abs(intval(cookieget(_rid);7:include/template/account_loginup.html 身份证号 请填写正确的身份证编码 邀请人帐 户ID 填写 4-16 个字符 , 一个汉字为两个字符 15最土代金券功能分析我们在录入 最土 项目的时候 , 我们可以选择该商品最多能使用多少代金券 , 比如你录入是 10 ,商品价格是 20 。那么你手上有最土的代金券的话。你只需要支 付10 元就可以。非常方便。我们在后台可以生成代金券,具体的在最土后台代金券管理里面。最土后台 生成代金券之后 , 他是存储在最 土数据库 card 表里 面 。 主要占 据id 字段。里面存储着使用期限。我们在购买的时候,当填写完最土的收货人信息之后,会进入支付页面,这个时候如果该商品允许使用最土代金券的话 。 你就可以直接输入代金券 。 抵消部分余额 。当我们点输入代金券的时候,将触发以下 JSX.misc.cardcode = function() var oid = jQuery(#cardcode-order-id).attr(value);var cid = jQuery(#cardcode-card-id).attr(value);if(oid&cid) return !X.get(WEB_ROOT +/ajax/order.php?action=cardcode&id=+oid+&cid=+cid);该方法调用 ajax/order.php 来返回逻辑数据流。elseif ( $action = cardcode) $cid = strval($_GETcid);$order = Table:Fetch(order, $order_id);if ( !$order ) json( 订单记录不存在 , alert);$ret = ZCard:UseCard($order, $cid);if ( true = $ret ) json(array(array(data = 代金券使用成功 , type=alert),array(data = null, type=refresh),), mix);$error = ZCard:Explain($ret);json($error, alert);我们看到,当我们输入代金券的时候,将返回一定的提示。他就是通过ZCard:Explain($ret); 方式来返回提示信息的。该函数代码如下。16static public function Explain($errno) switch($errno) case self:ERR_NOCARD : return 代金券不存在 ;case self:ERR_TEAM : return 代金券不可用于本单 ;case self:ERR_CREDIT : return 代金券面额受限 ;case self:ERR_EXPIRE : return 不在有效期内 ;case self:ERR_USED : return 代金券已被使用 ;case self:ERR_ORDER: return 每单只能用一张代金券 ;return 未知错误 ;最土程序商品图片调用分析在研究最土程序的时候 , 我们常常要研究 最土商品录入 和图片调用问题 。 比如在最土的 api 接口 中 也常常需要调用最土商品图片 最土程序商品图片调用分析由此显示的格外重要了。首先我们应该去了解最土的商品数据库结构我们找到最土商品数据 tea m表。里面有 image , image1,image2 字段。分别存储着最土商品的三张图片。我们在最土过往团购和现在团购的列表中 。 我们可以发现一点 一般都是通过调 用image 字段来显示图片的。最土商品的图片有两个概念,一个是存储在 static/team 文件夹里面。是最土商品录入的时候上传的 。 也有一种方式 , 通过最土的 image 图片来动态生成一张新的商品缩略图片来获得我们看最土商品图片函数function team_image($image=null, $index=false) global $INI;if (!$image) return null;if ($index) $path = WWW_ROOT . /static/ . $image;$image = preg_replace(#(d+).(w+)$#, 1_index.2, $image);$dest = WWW_ROOT . /static/ . $image;if (!file_exists($dest) & file_exists($path) ) Image:Convert($path, $dest, 200, 120, Image:MODE_SCALE);return $INIsystemimgprefix/static/$image;17在这里我们不难发现 , 第一个参数是商品图片地址 , 第二个参数是表示显示原始图片还是显示动态生成的缩略图如果 $index 为 false 就表示商品调用原始图片否则就动态的通过最土图片处理函数来动态生成如果要输出原始图片: team_image($oneimage, false);要输出动态生成缩略图: team_image($oneimage, true);最土后台导航功能分析最后后台导航功能 , 其实有些代码写的还是很好的 我们在做 最土二次开发 的时候 。 常常看到最土有些代码写的不错 。 最土后台导航功能选择中高亮 , 其实也是可以给我们一个参考的。我们可以看到 最土后台导航功能 的模板,十分简洁$biz_mcurrent_team($selector)这个意思是十分简单的 。 意思就是后台选中了当前项目导航 。 我们再看看最土函数 biz_mcurrent_team();function biz_mcurrent_team($selector=null) $a = array(/biz/team/index.php = 当前项目 ,/biz/team/success.php = 成功项目 ,/biz/team/failure.php = 失败项目 ,/biz/team/edit.php = 编辑项目 ,);$l = /biz/team/$selector.php;return current_link($l,$a,true);很显然最土要做一个导航选择的时候,必须将该导航数据放在一个数组中 , 当某个选择的动作被执行十 , 动作的名称其实就是和文件名称一样 , 就可以使用 $l = /biz/team/$selector.php; 方式来取得当前被选中高亮的导航 那么 current_link() 函数也是分精妙他对比传递过来的参数,如果导航数组中的值也当前被选中的值一样。那么就默认该导航被选中,而且高亮function current_link($link, $links, $span=false) $html = ;$span = $span ? : ;foreach($links AS $l=$n) if (trim($l,/)=trim($link,/) 18$html .= $n$span;else $html .= $n$span;return $html;最土后台导航功能分析之后 , 发现十分简单 , 十分容易 。 我们必须掌握该技巧,就很容易自己封装出自己的新导航。最土项目录入功能分析最土程序的 最土项目录入功能 , 其实是对 最土二次开发 必须知道的 。 我们常常对最土项目功能修改 。 中间最重要的就是最土的项目录入功能修改 已经和最土项目录入相关的功能。要谈最土项目录入功能分析,首先必须知道最土的项目是存储在 team 表中 ,他有三种形态。团购,热卖和秒杀在最土数据库中字段值分别 为normal,goods,seconds 如果我们要对最土项目录入的功能进行修改。首先必须熟悉这个。最土不但可以编辑项目基本信息 , 最土项目的基本问题大概包括以下几个内容 。 首先是商品基本信息 , 然后是商品杂项信息 , 然后是商品 SEO 信息 最土的基本信息包括商品的价格,商品的图片和描述等。最土的杂项信息包括本商品项目相关的代金券,邀请返利,免运费的数量等 。最土商品的 seo 优化项目 。 主要是为了让最土项目更加适合 seo 的需求 。 对标题进行处理。设置 seo 标题, seo 关键字以及 seo 相关的描述如果你想更深入的了解最土项目操作,必须知道项目的具体某些字段的意思 : seo_title 表示 seo 的标题: seo_keyword 表示 seo 的关键字: seo_description 表示 seo 的描述: card 表示代金券: bonus 邀请返利,赠送: credit 消费返利19最土项目录入的时候 , 还有商户的概念 , 在最土后台可以管理和增加商户 ,在录入项目的时候,如果存在商户,就必须选择商户他是通过 partner_id 字段来和商户数据联系起来的。最土项目发布之后,我们还需要通过 最土 api 接口 。将数据对外共享,这个时候就必须有完整的商户信息,以及针对该最土项目 seo 优化的优化信息。最土增加新闻模块思路最近很多使用最土程序的朋友 , 都提出个 最土程序二次开发 需求 。 就是给最 土程序增加个新闻模块 我的思路很简单就是对最土分类进行扩展 , 结合最土商品发布机制 , 在 最土数据库 中增加个新闻表 。 对应的增加最土新闻模块的处理以下是思路。1:incudefunctioncommon.php (587) function get_zones($zone=null) 增加以下内容article = 新闻分类 ,2:includefunctioncurrent.php (21) function current_backend() 增加以下内容/manage/article/index.php = 新闻 ,3: 新增文章表create table article(id int(1) not null primary key auto_increment,group_id int(1) default 0,title varchar(255),keyword varchar(255),content text,addtime int(1),user_id int(1),click_count int(1),sort_type int(1) default 020);4:includefunctioncurrent.php (21)function mcurrent_article($selector=null) $a = array(/manage/article/index.php = 新闻列表 ,/manage/article/create.php = 文章发布 ,);$l = /manage/article/$selector.php;return current_link($l,$a,true);如何增加最土后台操作栏分析很多朋友提到过 如何增加最土后台操作栏 , 该如何操作呢 。 在对 最土程序二次开发 的过程中 。 我们应该很仔细的发现 。 最土的后台自定义操作栏目的增加 , 其实也是非常容易的。首先我们找到最土系统第一的模板,我们可以发现里面有以下代码。$mcurrent_system(de)我们可以查看 mcurrent_system() 函数的内容。function mcurrent_system($selector=null) $a = array(/manage/system/index.php = 基本 ,/manage/system/option.php = 选项 ,/manage/system/bulletin.php = 公告 ,/manage/system/pay.php = 支付 ,/manage/system/email.php = 邮件 ,/manage/system/sms.php = 短信 ,/manage/system/page.php = 页面 ,/manage/system/cache.php = 缓存 ,/manage/system/skin.php = 皮肤 ,/manage/system/template.php = 模板 ,/manage/system/upgrade.php = 升级 ,/manage/system/de.php = 定义 ,);$l = /manage/system/$selector.php;21return current_link($l,$a,true);我们将自己定义一个定义栏目 , 文件是 de.php , 模板中要想取得这个地址 。直接 $mcurrent_system(de) 传入 de 参数就可以了 , 然后通过调用 current_link() 来返回合理的 htmlfunction current_link($link, $links, $span=false) $html = ;$span = $span ? : ;foreach($links AS $l=$n) if (trim($l,/)=trim($link,/) $html .= $n$span;else $html .= $n$span;return $html;这样就完成了 最土后台 导航栏目的增加,然后我们具体的新建立个 de.php, 以及对应的模板 。 就可以了 。 当然必须结合 最土程序保存系统配置功能分析 来进行系统文件的存储最土程序保存系统配置功能分析最土程序 里 , 后台系统配置的设置 , 都是保存在系统所指定的系统配置文件里面 ,而不是象 ecshop 系统 设置保存在数据库里面。最土系统配置保存功能也十分强大。先分析最土程序设置 最土短信接口 的配置文件。我们在最土后台系统设置,详细步骤参考。首先在 sms.php 中,我们可以看到最土系统变量 $INI, 先合并 $ 最土提交的表单数据。注意最土后台配置的表单数据的名称都是以某个变量名开始的数组 。 比如短信配置表单的输入框名称是 $smspass.$INI = Config:MergeINI($INI, $_POST);$INI = ZSystem:GetUnsetINI($INI);先将系统配置封装成 key/val

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论