⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.php

📁 速度很快的PHP论坛源程序
💻 PHP
字号:
<?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: 2004/11/22 08:49
*/

require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./include/forum.func.php';

$discuz_action = 1;

if(isset($showoldetails)) {
	switch ($showoldetails) {
		case 'no': dsetcookie('onlinedetail', 0, 86400 * 365); break;
		case 'yes': dsetcookie('onlinedetail', 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;

$validdays = 0;
if($discuz_uid && $groupexpiry) {
	if($groupexpiry < $timestamp) {
		header("Location: {$boardurl}member.php?action=groupexpiry");
		dexit();
	} else {
		$validdays = ceil(($groupexpiry - $timestamp) / 86400);
	}
}

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 = '&nbsp; &nbsp; &nbsp; &nbsp;';
			}
		}
	}
	unset($_DCACHE['announcements']);

	$threads = $posts = 0;
	$forumlist = $catforumlist = $forums = $catforums = $categories = $collapse = array();

	$sql = $accessmasks	? "SELECT f.fid, f.fup, f.type, f.name, f.description, f.threads, f.posts, f.lastpost, f.inheritedmod, 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.description, f.threads, f.posts, f.lastpost, f.inheritedmod, 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'];

			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'];
			}
		} else {
			$forum['moderators'] = moddisplay($forum['moderators'], 'flat');
			if(strpos($HTTP_COOKIE_VARS['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']) {
					$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($HTTP_COOKIE_VARS['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(strpos($HTTP_COOKIE_VARS['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 = ((!isset($_DCOOKIE['onlinedetail']) && $onlineinfo[0] < 500) || ($_DCOOKIE['onlinedetail'] || $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, 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));
					$whosonline[] = $online;
				} else {
					break;
				}
			}
			$onlinenum = $db->num_rows($query);
			$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_user && $newpm) {
		require_once DISCUZ_ROOT.'./include/pmprompt.inc.php';
	}

	include template('index');

} else {

	$forums = $forumlist = array();
	$threads = $posts = $fids = 0;

	$sql = $accessmasks	? "SELECT f.fid, f.fup, f.type, f.name, f.description, f.threads, f.posts, f.lastpost, f.inheritedmod, 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' AND (f.fid='$gid' OR (f.fup='$gid' AND f.type='forum')) ORDER BY f.type, f.displayorder"
				: "SELECT f.fid, f.fup, f.type, f.name, f.description, f.threads, f.posts, f.lastpost, f.inheritedmod, ff.moderators, ff.icon, ff.viewperm FROM {$tablepre}forums f
					LEFT JOIN {$tablepre}forumfields ff USING(fid)
					WHERE f.status='1' AND (f.fid='$gid' OR (f.fup='$gid' AND f.type='forum')) ORDER BY f.type, f.displayorder";

	$query = $db->query($sql);
	while($forum = $db->fetch_array($query)) {

		if($forum['type'] != 'group') {
			$threads += $forum['threads'];
			$posts += $forum['posts'];
			$fids .= ','.$forum['fid'];

			$forums[$forum['fid']] = $forum;
		} else {
			if(strpos($HTTP_COOKIE_VARS['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';
			}

			if($forum['moderators']) {
				$forum['moderators'] = moddisplay($forum['moderators'], 'flat');
			}
			$forumlist[] = $forum;

			$navigation = '&raquo; '.$forum['name'];
			$navtitle = ' - '.strip_tags($forum['name']);
		}

	}	

	if(!$db->num_rows($query)) {
		showmessage('forum_nonexistence', NULL, 'HALTED');
	}

	$query = $db->query("SELECT fid, fup, name, threads, posts FROM {$tablepre}forums WHERE status='1' AND fup IN ($fids) AND type='sub'");
	while($forum = $db->fetch_array($query)) {
		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'];
	}

	foreach($forums as $forum) {
		if(forum($forum)) {
			$forumlist[] = $forum;
		}
	}

	include template('index');

}

?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -