java phpwind_phpwind源码解析

define('SCR','index');

require_once('global.php');

include_once(D_P.'data/bbscache/cache_index.php');

include_once(D_P.'data/bbscache/forum_cache.php');

//notice

//公告处理

$noticedb = array();

foreach ($notice_A as $value) {

if ($value['startdate']<=$timestamp && (!$value['enddate'] || $value['enddate']>=$timestamp)) {

$value['startdate'] = $value['stime'] ? $value['stime'] : get_date($value['startdate'],'y-m-d');

!$value['url'] && $value['url'] = 'notice.php#'.$value['aid'];

$noticedb[$value['aid']] = $value;

}

}

$notice_A = $noticedb;

unset($noticedb);

$topics = $article = $tposts = 0;

$cateid = (int)GetGP('cateid');

$secdomain = null;

$m = GetGP('m');

//设置默认主页模式为门户

if (!$cateid && $db_modedomain && $secdomain = array_search($pwServer['HTTP_HOST'], $db_modedomain)) {

$cateinfo = explode("_",$secdomain);

if ('cate' == $cateinfo[0]) {

$cateid = (int)$cateinfo[1];

$db_bbsurl = $_mainUrl;

$m = 'area';

}

unset($cateinfo);

}

//根据参数选择模式

selectMode($m);

if (defined('M_P') && file_exists(M_P . ($cateid > 0 ? 'cate' : 'index') . '.php')) {

//门户模式

if ($cateid > 0) {

//门户模式的子版块

$_GET['fid'] = $_GET['cateid'] = $cateid;

require_once M_P.'cate.php';

} else {

//门户首页或圈子首页

require_once(M_P.'index.php');

$db_newinfoifopen = 0;

}

} else {

//论坛模式

$pw_seoset = L::loadClass('seoset');

$webPageTitle = $pw_seoset->getPageTitle();

$metaDescription = $pw_seoset->getPageMetadescrip();

$metaKeywords = $pw_seoset->getPageMetakeyword();

$newpic = (int)GetCookie('newpic');

$forumdb = $catedb = $showsub = array();

$c_htm = 0;

if ($db_forumdir) {

require_once(R_P.'require/dirname.php');

} elseif ($cateid > 0) {

$catestyle = $forum[$cateid]['style'];

if ($catestyle && file_exists(D_P."data/style/$catestyle.php")) {

$skin = $catestyle;

}

#SEO

$pw_seoset->set_page('thread');

$pw_seoset->set_ifCMS($forum[$cateid]['ifcms']);

$webPageTitle = $pw_seoset->getPageTitle($forum[$cateid]['title'],$forum[$cateid]['name']);

$metaDescription = $pw_seoset->getPageMetadescrip($forum[$cateid]['metadescrip'],$forum[$cateid]['name']);

$metaKeywords = $pw_seoset->getPageMetakeyword($forum[$cateid]['keywords'],$forum[$cateid]['name']);

$sqlwhere = 'AND (f.fid=' . pwEscape($cateid) . ' OR f.fup=' . pwEscape($cateid) . ')';

unset($metakeyword);

}

require_once(R_P.'require/header.php');

!$db_showcms && $sqlwhere .= " AND f.cms!='1'";

/*The app client*/

//第三方app相关

if ($db_siteappkey && ($db_apps_list['17']['status'] == 1 || is_array($db_threadconfig))) {

$appclient = L::loadClass('appclient');

if (is_array($db_threadconfig)) {

$threadright = array();

$threadright = $appclient->getThreadRight();

}

}

/*The app client*/

if ($cookie_deploy = $_COOKIE['deploy']) {

$deployfids = explode("/t",$cookie_deploy);

$deployfids = array_flip($deployfids);

unset($cookie_deploy);

} else {

$deployfids = array();

}

//查询表pw_forums和pw_forumdata得到版块信息

$query  = $db->query("SELECT f.fid,f.name,f.type,f.childid,f.fup,f.logo,f.descrip,f.metadescrip,f.forumadmin,f.across,f.allowhtm,f.password,f.allowvisit,f.showsub,f.ifcms,fd.tpost,fd.topic,fd.article,fd.subtopic,fd.top1,fd.lastpost FROM pw_forums f LEFT JOIN pw_forumdata fd USING(fid) WHERE f.ifsub='0' AND f.ifcms!=2 $sqlwhere ORDER BY f.vieworder");

while ($forums = $db->fetch_array($query)) {

//循环取得每个版块信息

if ($forums['type'] === 'forum') {

//若为具体版块

//子版块设置

if ($forums['showsub'] && $forums['childid']) {

$showsub[$forums['fid']] = '';

}

//取得主题总数

$forums['topics'] = $forums['topic']+$forums['subtopic'];

if ($db_topped) {

$forums['topics'] += $forums['top1'];

$forums['article'] += $forums['top1'];

}

//计算帖子和回帖总数

$article += $forums['article'];

$topics += $forums['topics'];

$tposts += $forums['tpost'];

$forums['au'] = $forums['admin'] = '';

if (!$forums['password'] && (!$forums['allowvisit'] || allowcheck($forums['allowvisit'],$groupid, $winddb['groups'],$forums['fid'],$winddb['visit']))) {

//允许访问

//取得本版块最新贴的相关信息

list($forums['t'],$forums['au'],$forums['newtitle'],$forums['ft']) = explode("/t",$forums['lastpost']);

$forums['pic'] = $newpic  $timestamp) ? 'new' : 'old';

$forums['newtitle'] = get_date($forums['newtitle']);

$forums['t'] = substrs($forums['t'],26);

} elseif ($forum[$forums['fid']]['f_type'] === 'hidden' && $groupid != 3) {

//有权限或密码保护

if ($forums['password'] && allowcheck($forums['allowvisit'],$groupid,$winddb['groups'], $forums['fid'],$winddb['visit'])) {

$forums['pic'] = 'lock';

} else {

continue;

}

} else {

$forums['pic'] = 'lock';

}

$forums['allowhtm'] == 1 && $c_htm = 1;

//取得版块logo

if ($db_indexfmlogo == 2) {

if(!empty($forums['logo']) && strpos($forums['logo'],'http://') === false && file_exists($attachdir.'/'.$forums['logo'])){

$forums['logo'] = "$attachpath/$forums[logo]";

}

} elseif ($db_indexfmlogo == 1 && file_exists("$imgdir/$stylepath/forumlogo/$forums[fid].gif")) {

$forums['logo'] = "$imgpath/$stylepath/forumlogo/$forums[fid].gif";

} else {

$forums['logo'] = '';

}

//取得版主信息

if ($forums['forumadmin']) {

$forumadmin = explode(',',$forums['forumadmin']);

foreach ($forumadmin as $value) {

if ($value) {

if (!$db_adminshow) {

$forums['admin'] .= '$value ";

} else {

$forums['admin'] .= "$value";

}

}

}

}

//第三方 app相关

/*The app client*/

if ($db_siteappkey && $db_apps_list['17']['status'] == 1) {

$forums['forumappinfo'] = $appclient->showForumappinfo($forums['fid'],'forum_erect,forum_across','17');

}

/*The app client*/

$forumdb[$forums['fup']][] = $forums;

} elseif ($forums['type'] === 'category') {

//若为版块分类

//取得图标和样式等显示信息

if (isset($deployfids[$forums['fid']])) {

$forums['deploy_img'] = 'open';

$forums['tbody_style'] = 'none';

$forums['admin'] = '';

} else {

$forums['deploy_img'] = 'fold';

$forums['tbody_style'] = $forums['admin'] = '';

}

//取得版主信息

if ($forums['forumadmin']) {

$forumadmin = explode(',',$forums['forumadmin']);

foreach ($forumadmin as $key => $value) {

if ($value) {

if ($key==10) {

$forums['admin'] .= '...';

break;

}

$forums['admin'] .= '$value ";

}

}

}

$catedb[] = $forums;

}

}

$db->free_result($query);

// View sub

if (!empty($showsub)) {

foreach ($forum as $value) {

if (isset($showsub[$value['fup']]) && $value['f_type'] != 'hidden') {

$showsub[$value['fup']] .= ($showsub[$value['fup']] ? ' | ' : '')."$value[name]";

}

}

}

unset($forums,$forum,$db_showcms);

//info deploy

if (isset($deployfids['info'])) {

$cate_img  = 'open';

$cate_info = 'none';

} else {

$cate_img  = 'fold';

$cate_info = '';

}

// update birth day

if ($db_indexshowbirth) {

$brithcache = '';

require_once(R_P.'require/birth.php');

}

}

// Sharing Information

//取得论坛基本统计信息

extract($db->get_one("SELECT * FROM pw_bbsinfo WHERE id=1"));

//$rt = $db->get_one('SELECT newmember,totalmember,higholnum,higholtime,tdtcontrol,yposts,hposts,hit_tdtime,hit_control,plantime FROM pw_bbsinfo WHERE id=1');

//显示新会员

$newmember = ''.$newmember.'';

//取得主题和帖子总数

$article += $o_post;

$topics += $o_post;

$tposts += $o_tpost;

// online users

//更新在线信息

Update_ol();

$userinbbs = $guestinbbs = 0;

//从cache或数据库取得在线信息

if (empty($db_online)) {

include_once(D_P.'data/bbscache/olcache.php');

} else {

$query = $db->query("SELECT uid!=0 as ifuser,COUNT(*) AS count FROM pw_online GROUP BY uid!='0'");

while ($rt = $db->fetch_array($query)) {

if ($rt['ifuser']) {

$userinbbs = $rt['count'];

} else {

$guestinbbs = $rt['count'];

}

}

}

//会员总数

$usertotal = $guestinbbs + $userinbbs;

if ($db_indexonline) {

InitGP(array('online'));

empty($online) && $online = GetCookie('online');

if ($online == 'yes') {

if ($usertotal > 2000 && !CkInArray($windid,$manager)) {

$online = 'no';

Cookie('online',$online);

} else {

$index_whosonline = '';

$db_online = intval($db_online);

include_once Pcv(R_P."require/online_{$db_online}.php");

}

}

}

$showgroup = $db_showgroup ? explode(',',$db_showgroup) : array();

// Share union

if ($db_indexmqshare && $sharelink[1]) {

$sharelink[1] = "$sharelink[1]";

}

//update pw_feed

//更新好友动态

if ($winduid && PwStrtoTime(get_date($lastvisit,'Y-m-d')) 

$_flag = $db->get_value("SELECT id FROM pw_feed WHERE uid = ".pwEscape($winduid)." ORDER BY id DESC LIMIT 29,1");

$_flag && $db->update("DELETE FROM pw_feed WHERE uid = ".pwEscape($winduid)." AND id 

}

//更新昨日发贴数和数据更新时间

if ($db_hostweb == 1 && $groupid != 'guest' && !$cateid && $tdtcontrol 

require_once(R_P.'require/updateforum.php');

updateshortcut();

$db->update("UPDATE pw_bbsinfo SET".pwSqlSingle(array('yposts' => $tposts, 'tdtcontrol' => $tdtime,'o_tpost'=>0))."WHERE id='1'");

$db->update("UPDATE pw_forumdata SET tpost=0 WHERE tpost<>'0'");

//  $db->update("DELETE FROM pw_feed WHERE timestamp

}

// update posts hits

if ($c_htm || $db_hithour) {

$db_hithour == 0 && $db_hithour = 4;

$hit_wtime = $hit_control * $db_hithour;

$hit_wtime > 24 && $hit_wtime = 0;

$hitsize = @filesize(D_P.'data/bbscache/hits.txt');

if ($hitsize && ($hitsize > 1024 || ($timestamp - $hit_tdtime) > $hit_wtime * 3600) && procLock('hitupdate')) {

require_once(R_P.'require/hitupdate.php');

procUnLock('hitupdate');

}

}

//更新最高在线数和最高在线时间

if ($higholnum 

$db->update("UPDATE pw_bbsinfo SET ".pwSqlSingle(array('higholnum' => $usertotal,'higholtime'=> $timestamp))." WHERE id=1");

$higholnum = $usertotal;

}

//更新最高日贴

if ($hposts 

$db->update('UPDATE pw_bbsinfo SET hposts='.pwEscape($tposts).' WHERE id=1');

$hposts = $tposts;

}

$mostinbbstime = get_date($higholtime);

if (!$ol_offset && $db_onlinelmt != 0 && $usertotal >= $db_onlinelmt) {

Cookie('ol_offset','',0);

Showmsg('most_online');

}

if ($plantime && $timestamp > $plantime && procLock('task')) {

require_once(R_P.'require/task.php');

procUnLock('task');

}

$db_newinfoifopen && require_once(R_P."require/newinfo.php");

//取得index.htm模板,把上去取得的各个信息通过html展现出来,相当于control层到view层

require_once PrintEot('index');

if (isset($area_refresh_static) && $area_refresh_static && function_exists("area_static_deal")) {

$area_static_content = ob_get_contents();

area_static_deal("saveStaticContent", array('content'=>$area_static_content));

ob_clean();

echo $area_static_header, $area_static_content;

unset($area_static_header, $area_static_content);

}

footer();

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
携圣诞和元旦的双重喜庆与祝福,PHPWind7火热发布!感谢一直辛苦等待新版本的童鞋们,祝大家新年进步,事业有成,尽情尽兴! PHPWind是一套采用php+mysql数据库方式运行并可生成html页面的全新且完善的强大系统.我们希望作为一个开源.共享的软件,PHPWind可以以其流畅的速度与高负载能力激起各位加入PHPWind阵营的热情!共同打造专业品牌PHPWind.Net PHPWind除了具备多重子版块.和后台用户组权限可以自由组合外,还具备分版块控制生成html页面、可选用的所见即所得编辑器、防止图片和附件防盗链、多附件上传下载、输入图片URL直接显示图片、版块主题分类、版块积分控制与版块内的用户组权限控制、主题与回复审核功能、自定义积分与自定义等级提升系统、论坛用户宣传接口、帖子加密隐藏出售、分论坛二级目录/域名等一些特色功能.从而减轻了大部分论坛程序中都必须要借助开发hack才能实现的诸多工作。 正式版更新 改进后台计划任务设置 修正添加好友时消息显示错误 批量用户权限修改 后台用户个人.权限管理 改进权限算法 改进广告出租管理,自定义发消息 改进帖子中code代码显示方式 增加后台checkbox选中效果 邮件群发按注册时间选择用户 邮件群发可暂停发送任务 邮件群发发送意外故障后任务恢复功能 批量上传功能 版主已阅功能加强 搜索页面,搜索关键词用空格隔开 初始人或版主搜索新帖子批量管理 申请勋章短消息通知 短消息的下一条、下一条、转发 板块批量添加修改 附件出售 附件加密 外链提醒的白名单 修改发布辩论主题帖
为达到最佳效果,推荐使用九网互联的PHP全能空间,支持Zend、MySQL。携圣诞和元旦的双重喜庆与祝福,PHPWind 7 火热发布!感谢一直辛苦等待新版本的童鞋们,祝大家新年进步,事业有成,尽情尽兴!PHPWind 是一套采用 php+mysql 数据库 方式运行并可生成 html 页面的全新且完善的强大系统. 我们希望作为一个开源.共享的软件,PHPWind 可以以其流畅的速度与高负载能力激起各位加入PHPWind阵营的热情!共同打造专业品牌PHPWind.NetPHPWind 除了具备多重子版块.和后台用户组权限可以自由组合外, 还具备分版块控制生成html页面、可选用的所见即所得编辑器、防止图片和附件防盗链、多附件上传下载、输入图片URL直接显示图片、版块主题分类、版块积分控制与版块内的用户组权限控制、主题与回复审核功能、自定义积分与自定义等级提升系统、论坛用户宣传接口、帖子加密隐藏出售、分论坛二级目录/域名等一些特色功能. 从而减轻了大部分论坛程序中都必须要借助开发hack才能实现的诸多工作。正式版更新改进后台计划任务设置修正添加好友时消息显示错误批量用户权限修改后台用户个人.权限管理改进权限算法改进广告出租管理,自定义发消息改进帖子中code代码显示方式增加后台checkbox选中效果邮件群发按注册时间选择用户邮件群发可暂停发送任务邮件群发发送意外故障后任务恢复功能批量上传功能版主已阅功能加强搜索页面,搜索关键词用空格隔开初始人或版主搜索新帖子批量管理申请勋章短消息通知短消息的下一条、下一条、转发板块批量添加修改附件出售附件加密外链提醒的白名单修改发布辩论主题帖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值