<?php
/*
[DISCUZ!] index.php - Crossday Discuz! Board index page
This is NOT a freeware, use is subject to license terms
Version: 4.0.0
Web: http://www.comsenz.com
Copyright: 2001-2005 Comsenz Technology Ltd.
Last Modified: 2005-3-6 16:18
*/
define('CURSCRIPT', 'index');
require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./include/forum.func.php';
$discuz_action = 1;
$validdays = $discuz_uid && !empty($groupexpiry) && $groupexpiry >= $timestamp ?
ceil(($groupexpiry - $timestamp) / 86400) : 0;
if(isset($showoldetails)) {
switch($showoldetails) {
case 'no': dsetcookie('onlineindex', 0, 86400 * 365); break;
case 'yes': dsetcookie('onlineindex', 1, 86400 * 365); break;
}
} else {
$showoldetails = false;
}
$currenttime = gmdate($timeformat, $timestamp + $timeoffset * 3600);
$lastvisittime = gmdate("$dateformat $timeformat", $lastvisit + $timeoffset * 3600);
$memberenc = rawurlencode($lastmember);
$newthreads = round(($timestamp - $lastvisit + 600) / 1000) * 1000;
if(empty($gid)) {
$navigation = $navtitle = '';
$announcements = '';
if($_DCACHE['announcements']) {
$space = '';
foreach($_DCACHE['announcements'] as $announcement) {
if($timestamp >= $announcement['starttime'] && ($timestamp <= $announcement['endtime'] || !$announcement['endtime'])) {
$announcements .= $space.'<a href="announcement.php?id='.$announcement['id'].'#'.$announcement['id'].'"><span class="bold">'.$announcement['subject'].'</span> '.
'('.gmdate($dateformat, $announcement['starttime'] + $timeoffset * 3600).')</a>';
$space = ' ';
}
}
}
unset($_DCACHE['announcements']);
$threads = $posts = $todayposts = 0;
$forumlist = $catforumlist = $forums = $catforums = $categories = $collapse = array();
$sql = !empty($accessmasks) ?
"SELECT f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, ff.description, ff.moderators, ff.icon, ff.viewperm, a.allowview FROM {$tablepre}forums f
LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid
LEFT JOIN {$tablepre}access a ON a.uid='$discuz_uid' AND a.fid=f.fid
WHERE f.status='1' ORDER BY f.type, f.displayorder"
: "SELECT f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, ff.description, ff.moderators, ff.icon, ff.viewperm FROM {$tablepre}forums f
LEFT JOIN {$tablepre}forumfields ff USING(fid)
WHERE f.status='1' ORDER BY f.type, f.displayorder";
$query = $db->query($sql);
while($forum = $db->fetch_array($query)) {
$forumname[$forum['fid']] = strip_tags($forum['name']);
if($forum['type'] != 'group') {
$threads += $forum['threads'];
$posts += $forum['posts'];
$todayposts += forumtodayposts($forum);
if($forum['type'] != 'sub') {
$forums[$forum['fid']] = $forum;
} else {
if($subforumsindex) {
$forums[$forum['fup']]['subforums'][] = '<a href="forumdisplay.php?fid='.$forum['fid'].'"><u>'.$forum['name'].'</u></a>';
}
$forums[$forum['fup']]['threads'] += $forum['threads'];
$forums[$forum['fup']]['posts'] += $forum['posts'];
$forums[$forum['fup']]['todayposts'] += $forum['todayposts'];
}
} else {
$forum['moderators'] = moddisplay($forum['moderators'], 'flat');
if(!isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'category_'.$forum['fid'].' ') === FALSE) {
$forum['collapseimg'] = 'collapsed_no.gif';
$collapse['category_'.$forum['fid']] = '';
} else {
$forum['collapseimg'] = 'collapsed_yes.gif';
$collapse['category_'.$forum['fid']] = 'display: none';
}
$categories[] = $forum;
}
}
if($categories) {
foreach($categories as $group) {
$group_forum = array();
foreach($forums as $fid => $forum) {
if($forum['fup'] == $group['fid']) {
if(forum($forum)) {
$group_forum[] = $forum;
unset($forums[$fid]);
}
} elseif(!$forum['fup'] && $forum['type'] == 'forum') {
$catforums[] = $forum;
unset($forums[$fid]);
}
}
if($group_forum) {
$forumlist = array_merge($forumlist, array($group), $group_forum);
}
}
} else {
$catforums = $forums;
}
foreach($catforums as $forum) {
if(forum($forum)) {
$catforumlist[] = $forum;
}
}
if($catforumlist) {
$forum = array('fid' => 0, 'type' => 'group', 'name' => $bbname);
if(strpos($_COOKIE['discuz_collapse'], 'category_0 ') === FALSE) {
$forum['collapseimg'] = 'collapsed_no.gif';
$collapse['category_0'] = '';
} else {
$forum['collapseimg'] = 'collapsed_yes.gif';
$collapse['category_'.$forum['fid']] = 'display: none';
}
$forumlist = array_merge($forumlist, array($forum), $catforumlist);
}
unset($fid, $forums, $catforums, $catforumlist, $categories, $group, $forum, $group_forum);
if(!isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'forumlinks ') === FALSE) {
$linkcollapseimg = 'collapsed_no.gif';
$collapse['forumlinks'] = '';
} else {
$linkcollapseimg = 'collapsed_yes.gif';
$collapse['forumlinks'] = 'display: none';
}
if($whosonlinestatus == 1 || $whosonlinestatus == 3) {
$whosonlinestatus = 1;
$onlineinfo = explode("\t", $onlinerecord);
$detailstatus = ((empty($_DCOOKIE['onlineindex']) && $onlineinfo[0] < 500) || (empty($_DCOOKIE['onlineindex']) || $showoldetails == 'yes')) && $showoldetails != 'no';
if($detailstatus) {
@include language('actions');
updatesession();
$membercount = $invisiblecount = 0;
$whosonline = array();
$query = $db->query("SELECT uid, username, groupid, invisible, action, lastactivity, ip1, ip2, ip3, ip4, fid FROM {$tablepre}sessions ORDER BY uid DESC");
while($online = $db->fetch_array($query)) {
if($online['uid']) {
$membercount++;
if(!$online['invisible']) {
$online['icon'] = isset($_DCACHE['onlinelist'][$online['groupid']]) ? $_DCACHE['onlinelist'][$online['groupid']] : $_DCACHE['onlinelist'][0];
} else {
$invisiblecount++;
continue;
}
$online['fid'] = $online['fid'] ? $forumname[$online['fid']] : 0;
$online['action'] = $actioncode[$online['action']];
$online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
//-----------------------显IP开始!
$online['ip'] = $online['ip1'].'.'.$online['ip2'].'.'.$online['ip3'].'.'.$online['ip4'];
if($allowviewip) {
require_once $discuz_root.'./include/misc.func.php';
$online['iplocation'] = convertip($online['ip']);
}
//-----------------------显IP结束!
//$whosonline[] = $online;
//} else {
//break;
//首页中的在线人数中显示游客结束
$whosonline[] = $online;
} else {
$guestcount++;
$guest['username']= "游客";
$guest['icon']= "online_guest.gif";
$guest['fid'] = $online['fid'] ? $forumname[$online['fid']] : 0;
$guest['action'] = $actioncode[$online['action']];
$guest['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
$guestonline[]=$guest;
}
}
//首页中的在线人数中显示游客结束
//$onlinenum = $db->num_rows($query);
//$guestcount = $onlinenum - $membercount;
//unset($online);
//首页中的在线人数中显示游客结束
$onlinenum = $db->num_rows($query);
$count=count($guestonline);
for($i=0;$i<$count;$i++){
$whosonline[]=$guestonline[$i];
}
$guestcount = $onlinenum - $membercount;
unset($online);
//首页中的在线人数中显示游客结束
} else {
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}sessions");
$onlinenum = $db->result($query, 0);
}
if($onlinenum > $onlineinfo[0]) {
$db->query("UPDATE {$tablepre}settings SET value='$onlinenum\t$timestamp' WHERE variable='onlinerecord'");
require_once DISCUZ_ROOT.'./include/cache.func.php';
updatecache('settings');
$onlineinfo = array($onlinenum, $timestamp);
}
$onlineinfo[1] = gmdate($dateformat, $onlineinfo[1] + ($timeoffset * 3600));
} else {
$whosonlinestatus = 0;
}
if($discuz_uid && $newpm) {
require_once DISCUZ_ROOT.'./include/pmprompt.inc.php';
}
} else {
require_once DISCUZ_ROOT.'./include/category.inc.php';
}
include template('index');
?> |