zuitu 最土团购源码分析(一)前台部分

本文通过分析最土团购网站的源码,详细解读了使用PHP进行快速系统开发的过程。文章从网站首页index.php入手,逐步解析了MVC框架的应用、数据库操作、模板加载等关键技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无可厚非PHP还是普及度最高,最简单的语言。

想快速开发系统还是用PHP比较好。

初学PHP,那就以现在最火的团购网站源码最土来做分析学习。

 

最土网站 http://www.zuitu.com/

 

开发工具

dreamwear

xampp

 

前台分析

我们首先来看首页index.php的源码

 

<?php
require_once(dirname(__FILE__) . '/app.php');

if(!$INI['db']['host']) redirect( WEB_ROOT . '/install.php' );
if($city&&option_yes('rewritecity')){
	redirect(WEB_ROOT."/{$city['ename']}");
}

$request_uri = 'index';
$team = $teams = index_get_team($city['id']);

if ($team && $team['id']) {
	$_GET['id'] = abs(intval($team['id']));
	die(require_once( dirname(__FILE__) . '/team.php'));
}
elseif ($teams) {
	$disable_multi = true;
	die(require_once( dirname(__FILE__) . '/multi.php'));
}

include template('subscribe');
 

我勒个去,找不到HTML标签。难道HTML用模版实现的?

算了,先从第一句看吧,谁叫我是菜鸟呢。

 

 

require_once(dirname(__FILE__) . '/app.php');

直接google,过程省略。

http://php.net/manual/zh/function.require-once.php

意思就是只引用一次app.php。 app.php应该是MVC框架的控制器。

我们再看看app.php里写了什么。

 

 

<?php
require_once(dirname(__FILE__). '/include/application.php');
/* magic_quota_gpc */
$_GET = magic_gpc($_GET);
$_POST = magic_gpc($_POST);
$_COOKIE = magic_gpc($_COOKIE);

/* process currefer*/
$currefer = uencode(strval($_SERVER['REQUEST_URI']));

/* session,cache,configure,webroot register */
Session::Init();
$INI = ZSystem::GetINI();
/* end */

/* date_zone */
if(function_exists('date_default_timezone_set')) { 
	date_default_timezone_set($INI['system']['timezone']); 
}
/* end date_zone */


/* biz logic */
$currency = $INI['system']['currency'];
$login_user_id = ZLogin::GetLoginId();
$login_user = Table::Fetch('user', $login_user_id);
$hotcities = option_hotcategory('city', false, true);
$allcities = option_category('city', false, true);
$city = cookie_city(null);

/* not allow access app.php */
if($_SERVER['SCRIPT_FILENAME']==__FILE__){
	redirect( WEB_ROOT . '/index.php');
}
/* end */
$AJAX = ('XMLHttpRequest' == @$_SERVER['HTTP_X_REQUESTED_WITH']);
if (false==$AJAX) { 
	header('Content-Type: text/html; charset=UTF-8'); 
	run_cron();
} else {
	header("Cache-Control: no-store, no-cache, must-revalidate");
}
 

马勒隔壁,这么多。看得头晕,还是先把index.php看完再看下面一层吧。不然就是无限循环啊。。。切记,切记。

 

 

<?php
require_once(dirname(__FILE__) . '/app.php');	/*只加载一次app.php*/
if(!$INI['db']['host']) redirect( WEB_ROOT . '/install.php' );	/* $INI中是否存在['db']['host'],$INI在app.php中加载 */
if($city&&option_yes('rewritecity')){ /* 如果有city变量并且XXX就直接跳转到根目录所有的省链接 */
	redirect(WEB_ROOT."/{$city['ename']}");
}

$request_uri = 'index';
$team = $teams = index_get_team($city['id']); /* index_get_team函数在include/function/common.php里 */

if ($team && $team['id']) {
	$_GET['id'] = abs(intval($team['id'])); /* 字符串转整数并取绝对值,为什么要这样做? */
	die(require_once( dirname(__FILE__) . '/team.php')); /* 加载team.php 并终止*/
}
elseif ($teams) {
	$disable_multi = true;
	die(require_once( dirname(__FILE__) . '/multi.php')); 
}

include template('subscribe'); /* 加载模版subscribe, subscribe是什么? */

 

待解决疑问  

 

/* session,cache,configure,webroot register */
Session::Init();
$INI = ZSystem::GetINI();
/* end */

 

include/function/common.php

 

function index_get_team($city_id) {
	global $INI;
	$multi = option_yes('indexmulti');
	if (!$multi) return current_team($city_id);
	$city_id = abs(intval($city_id));
	$now = time();
	$size = abs(intval($INI['system']['sideteam']));
	if ($size<=1) return current_team($city_id);

	$oc = array( 
			'city_id' => array($city_id, 0), 
			'team_type' => 'normal',
			"begin_time < '{$now}'",
			"end_time > '{$now}'",
			);
	$teams = DB::LimitQuery('team', array(
				'condition' => $oc,
				'order' => 'ORDER BY `sort_order` DESC, `id` DESC',
				'size' => $size,
				));
	if(count($teams) == 1) return array_pop($teams);
	return $teams;
}
 

 

 

 

 

 

新2010-11-20日发上来的,开源团购源码 ,团购网站源码,是商业版的,有安装说明,功能是目前团购网站程序齐全 的,官方网站 www.cmstuan.com 开源团购后台功能相关说明与升级历史 1、用户界面:支持前台无刷新选择新界面; 2、系统扩展:完美整合UCenter插件,可与其他系统同步注册登录、统头像; 3、系统扩展:集成GoogleMap,可后台设置、标记商家所在区域; 4、邮件验证:支持验证Email真实性后才可以登录等(后台系统定义中设置); 5、邮件通知:支持团购成功时自动Email通知等; 6、邮件通知:支持用户Email订阅、登录取消订阅等; 7、推广营销:支持用户前台获取推荐连接,并邀请好友购买、返现; 8、支付接口:默认集成支付宝和财付通接口;可后台设置,或添加银行转账信息等; 9、团购流程:支持生成唯订单号(方便沟通)、可切换不同的支付方式; 10、自动开通:满足团购要求时,系统自动开通相关订单、生成优惠券和随机密码; 11、帐户充值:可分批对账户进行充值再开通订单,方便对支付有限额的用户; 12、财务明细:全程记录资金的动作,即使直接开通订单,系统也会自动先充值再扣款; 13、放心消费:用户可在前台我的团购中看到每笔资金信息和相关的备注; 14、消费保障:优惠券的消费需要密码,密码仅用户自己可见; 15、安全消费:即使知道了优惠券和密码,也只有对应的商家才可以消费; 16、合作商家:可前台登陆、查看自己的产品、优化券,并Email提醒用户消费; 17、产品消费:商家登陆后,输入优惠券和对应密码才可以消费(将优惠券变成已消费); 18、在线沟通:前台可在线提问、意见反馈和商务合作; 19、网站优化:可设置开启伪静态,Apache下系统支持自动创建伪静态规则; 20、网站优化:后台可开启Gzip压缩输出内容,加快页面打开速度; 21、网站安全:后台可设置过滤关键词内容,防止用户留言中包括违法内容; 22、IP管理 :可禁止指定IP的用户访问网站或者后台; 23、友情链接:支持后台添加文字或者图片友情链接; 24、关于我们:管理员可后台设置关于我们、联系我们、加入我们等信息; 25、互动管理:管理员后台可以回答问题,答复后的问题会在前台显示; 26、城市管理:可任意添加或修改城市、开启或关闭前台显示,可做地图标记; 27、商家管理:可列表查看商家旗下的产品数量、成功订单数和营业总额; 28、商家管理:可通过关键词查找商家,或直接查看某城市下的所有商家; 29、产品管理:添加产品时,支持选择城市自动选择其下商家,减少管理员操作; 30、产品管理:可列表查看团购产品的时间、价格、购买数、团购状态等; 31、产品管理:可键查看成功团购产品的相关购买人、数量、时间和订单号; 32、订单管理:可列表查看每订单的价格、购买数量、时间、购买人、支付状态等; 33、订单管理:对未支付的订单,可键操作对该用户进行Email催款; 34、订单管理:对银行转账的订单,管理员可后台填写相关信息后,手工开通; 35、订单管理:可通过用户名、订单号、支付状态等查询订单; 36、订单管理:团购没达到指定人数,管理员可确认团购失败,并退款给用户; 37、团购券管理:可列表查看优惠券拥有人、到期时间,并发送Email到期提醒; 38、团购券管理:可通过团购券号、到期时间、使用状态等查看团购券; 39、返利管理:可列表查看购买人、时间、登陆IP、所购产品、其邀请人和登陆IP等 ; 40、返利管理:支持后台逐管理满足返利的订单,并给用户返利到账户; 41、邮件订阅:可设置使用PHP的mail函数还是smtp发送邮件; 42、邮件订阅:可自由添加邮件通知内容,并选择邮件的发送区域; 43、邮件订阅:邮件均保存在发送队列中由计划任务控制发送,避免造成服务器堵塞; 44、计划任务:可添加计划任务,并自由设置计划任务的执行时间; 45、站长工具:可开启蜘蛛网页爬行统计,有效掌控搜索引擎对网站的友好性; 46、站长工具:可查看本站的Alexa排名、搜索引擎收录、网站近日收录、交换友情链接; 47、站长工具:可分卷备份数据库、在线打包下载、数据库优化、在线恢复等; 48、用户权限:可任意组合设置用户角色,设置不同权限的管理级别,方便多用户管理; 49、用户管理:可列表查看用户的角色、账号余额和总消费金额等; 50、用户管理:可编辑用户的信息,并查看指定用户的完整消费记录。 2010年9月7日00:01发布 1、增加Google地图功能 2010年9月13日发布 1、修改部分小BUG 2010年10月31日正式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值