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

📄 my.php

📁 Discuz功能源码(开源)
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?php

/*
	[Discuz!] (C)2001-2009 Comsenz Inc.
	This is NOT a freeware, use is subject to license terms

	$Id: my.php 17208 2008-12-10 02:39:12Z liuqiang $
*/

define('NOROBOT', TRUE);
define('CURSCRIPT', 'my');
require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./forumdata/cache/cache_forums.php';

$discuz_action = 8;
if(!$discuz_uid) {
	showmessage('not_loggedin', NULL, 'NOPERM');
}

$page = max(1, intval($page));
$start_limit = ($page - 1) * $tpp;

$threadlist = $postlist = array();
$tids = $comma = $threadadd = $postadd = $forumname = $extrafid = $extra = $multipage = '';

if($srchfid = empty($srchfid) ? 0 : intval($srchfid)) {
	$threadadd = "AND t.fid='$srchfid'";
	$postadd = "AND p.fid='$srchfid'";
	$forumname = $_DCACHE['forums'][$srchfid]['name'];
	$extrafid = '&amp;srchfid='.$srchfid;
}

$item = isset($item) ? trim($item) : '';

if(empty($item)) {

	$query = $db->query("SELECT m.*, t.subject, t.fid, t.displayorder, t.lastposter, t.lastpost, t.closed FROM {$tablepre}mythreads m, {$tablepre}threads t
		WHERE m.uid='$discuz_uid' AND m.tid=t.tid $threadadd ORDER BY m.dateline DESC LIMIT 5");
	while($thread = $db->fetch_array($query)) {
		$thread['lastpost'] = dgmdate("$dateformat $timeformat", $thread['lastpost'] + $timeoffset * 3600);
		$thread['forumname'] = $_DCACHE['forums'][$thread['fid']]['name'];
		$thread['lastposterenc'] = rawurlencode($thread['lastposter']);
		$threadlist[] = $thread;
	}

	$query = $db->query("SELECT m.*, p.fid, p.invisible FROM {$tablepre}myposts m
		INNER JOIN {$tablepre}posts p ON p.pid=m.pid $postadd
		INNER JOIN {$tablepre}threads t ON t.tid=m.tid
		WHERE m.uid = '$discuz_uid' ORDER BY m.dateline DESC LIMIT 5");
	while($post = $db->fetch_array($query)) {
		$post['forumname'] = $_DCACHE['forums'][$post['fid']]['name'];
		$postlist[$post['tid']] = $post;
		$tids .= $comma.$post['tid'];
		$comma = ', ';
	}

	if($tids) {
		$query = $db->query("SELECT tid, subject, lastposter, lastpost FROM {$tablepre}threads WHERE tid IN ($tids)");
		while($thread = $db->fetch_array($query)) {
			$postlist[$thread['tid']]['subject'] = $thread['subject'];
			$postlist[$thread['tid']]['lastposter'] = $thread['lastposter'];
			$postlist[$thread['tid']]['lastpost'] = dgmdate("$dateformat $timeformat", $thread['lastpost'] + $timeoffset * 3600);
			$postlist[$thread['tid']]['lastposterenc'] = rawurlencode($thread['lastposter']);
		}
	}

} elseif($item == 'grouppermission') {

	require_once './include/forum.func.php';

	$searchgroupid = isset($searchgroupid) ? intval($searchgroupid) : $groupid;
	$grouplist = array();
	$query = $db->query("SELECT groupid, type, grouptitle FROM {$tablepre}usergroups ORDER BY (creditshigher<>'0' || creditslower<>'0'), creditslower");
	while($group = $db->fetch_array($query)) {
		$grouplist[$group['type']] .= '<li><a href="my.php?item=grouppermission&amp;type='.$group['type'].'&amp;searchgroupid='.$group['groupid'].'">'.$group['grouptitle'].'</a></li>';
	}

	$group = $db->fetch_first("SELECT * FROM {$tablepre}usergroups u LEFT JOIN {$tablepre}admingroups a ON u.groupid=a.admingid WHERE u.groupid='$searchgroupid'");
	if(!$group) {
		showmessage('usergroups_nonexistence');
	}
	$group['maxattachsize'] = $group['maxattachsize'] / 1024;
	$group['maxsizeperday'] = $group['maxsizeperday'] / 1024;
	$group['maxbiosize'] = $group['maxbiosize'] ? $group['maxbiosize'] : 200;

	include template('my_grouppermission');
	exit;

} elseif($item == 'threads') {

	if($filter == 'recyclebin') {
		$threadadd .= " AND t.displayorder='-1'";
	} elseif($filter == 'aduit') {
		$threadadd .= " AND t.displayorder='-2'";
	} elseif($filter == 'close') {
		$threadadd .= " AND t.closed='1'";
	} elseif($filter == 'common') {
		$threadadd .= " AND t.displayorder>='0' AND t.closed='0'";
	}
	$fidadd = $srchfid ? "&amp;srchfid=$srchfid" : '';

	$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}mythreads m, {$tablepre}threads t WHERE m.uid='$discuz_uid' $threadadd AND m.tid=t.tid");
	$multipage = multi($num, $tpp, $page, 'my.php?item=threads'.$fidadd.$extrafid);

	$query = $db->query("SELECT m.*, t.subject, t.fid, t.displayorder, t.closed, t.lastposter, t.lastpost FROM {$tablepre}mythreads m, {$tablepre}threads t
		WHERE m.uid = '$discuz_uid' $threadadd AND m.tid=t.tid ORDER BY m.dateline DESC LIMIT $start_limit, $tpp");
	while($thread = $db->fetch_array($query)) {
		$thread['lastpost'] = dgmdate("$dateformat $timeformat", $thread['lastpost'] + $timeoffset * 3600);
		$thread['forumname'] = $_DCACHE['forums'][$thread['fid']]['name'];
		$thread['lastposterenc'] = rawurlencode($thread['lastposter']);
		$threadlist[] = $thread;
	}

} elseif($item == 'posts') {

	if($filter == 'recyclebin') {
		$postadd .= " AND p.invisible='-1'";
	} elseif($filter == 'aduit') {
		$postadd .= " AND p.invisible='-2'";
	} elseif($filter == 'close') {
		$threadadd .= " AND t.closed='1'";
	} elseif($filter == 'common') {
		$postadd .= " AND p.invisible='0'";
		$threadadd .= " AND t.displayorder>='0' AND t.closed='0'";
	}
	$fidadd = $srchfid ? "&amp;srchfid=$srchfid" : '';

	$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}myposts m
		INNER JOIN {$tablepre}posts p ON p.pid=m.pid $postadd
		INNER JOIN {$tablepre}threads t ON t.tid=m.tid $threadadd
		WHERE m.uid = '$discuz_uid'");
	$multipage = multi($num, $tpp, $page, 'my.php?item=posts'.$fidadd.$extrafid);

	$query = $db->query("SELECT m.uid, m.tid, m.pid, p.fid, p.invisible, p.dateline FROM {$tablepre}myposts m
		INNER JOIN {$tablepre}posts p ON p.pid=m.pid $postadd
		INNER JOIN {$tablepre}threads t ON t.tid=m.tid $threadadd
		WHERE m.uid = '$discuz_uid' ORDER BY m.dateline DESC LIMIT $start_limit, $tpp");
	while($post = $db->fetch_array($query)) {
		$post['forumname'] = $_DCACHE['forums'][$post['fid']]['name'];
		$postlist[$post['tid']] = $post;
		$tids .= $comma.$post['tid'];
		$comma = ', ';
	}

	if($tids) {
		$query = $db->query("SELECT tid, subject AS tsubject, lastposter, lastpost, closed FROM {$tablepre}threads WHERE tid IN ($tids)");
		while($thread = $db->fetch_array($query)) {
			$postlist[$thread['tid']]['tsubject'] = $thread['tsubject'];
			$postlist[$thread['tid']]['lastposter'] = $thread['lastposter'];
			$postlist[$thread['tid']]['closed'] = $thread['closed'];
			$postlist[$thread['tid']]['lastpost'] = dgmdate("$dateformat $timeformat", $thread['lastpost'] + $timeoffset * 3600);
			$postlist[$thread['tid']]['lastposterenc'] = rawurlencode($thread['lastposter']);
		}
	}

} elseif(in_array($item, array('favorites', 'subscriptions'))) {

	if($fid && empty($forum['allowview'])) {
		if(!$forum['viewperm'] && !$readaccess) {
			showmessage('group_nopermission', NULL, 'NOPERM');
		} elseif($forum['viewperm'] && !forumperm($forum['viewperm'])) {
			showmessage('forum_nopermission', NULL, 'NOPERM');
		}
	}

	if($item == 'favorites') {

		$ftid = $type == 'thread' || $tid ? 'tid' : 'fid';
		$type = $type == 'thread' || $tid ? 'thread' : 'forum';
		$extra .= $srchfid ? '&amp;type='.$type : '';

		if(($fid || $tid) && !submitcheck('favsubmit')) {

			if($db->result_first("SELECT COUNT(*) FROM {$tablepre}favorites WHERE uid='$discuz_uid' AND $ftid>'0'") >= $maxfavorites) {
				showmessage('favorite_is_full', 'my.php?item=favorites&type='.$type);
			}

			if($db->result_first("SELECT $ftid FROM {$tablepre}favorites WHERE uid='$discuz_uid' AND $ftid='${$ftid}' LIMIT 1")) {
				showmessage('favorite_exists');
			} else {
				$db->query("INSERT INTO {$tablepre}favorites (uid, $ftid) VALUES ('$discuz_uid', '${$ftid}')");
				showmessage('favorite_add_succeed', dreferer());
			}

		} elseif(!$fid && !$tid) {

			if(!submitcheck('favsubmit')) {

				$favlist = array();
				if($type == 'forum') {
					$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}favorites fav, {$tablepre}forums f
						WHERE fav.uid = '$discuz_uid' AND fav.fid=f.fid");
					$multipage = multi($num, $tpp, $page, "my.php?item=favorites&amp;type=forum$extrafid");

					$query = $db->query("SELECT f.fid, f.name, f.threads, f.posts, f.todayposts, f.lastpost
						FROM {$tablepre}favorites fav, {$tablepre}forums f
						WHERE fav.fid=f.fid AND fav.uid='$discuz_uid' ORDER BY f.lastpost DESC LIMIT $start_limit, $tpp");

					while($fav = $db->fetch_array($query)) {
						$fav['lastposterenc'] = rawurlencode($fav['lastposter']);
						$fav['lastpost'] = dgmdate("$dateformat $timeformat", $fav['lastpost'] + $timeoffset * 3600);
						$favlist[] = $fav;
					}
				} else {
					$num = $db->result_first("SELECT COUNT(*) FROM {$tablepre}favorites fav, {$tablepre}threads t
						WHERE fav.uid = '$discuz_uid' AND fav.tid=t.tid AND t.displayorder>='0' $threadadd");
					$multipage = multi($num, $tpp, $page, "my.php?item=favorites&amp;type=thread$extrafid");

					$query = $db->query("SELECT t.tid, t.fid, t.subject, t.replies, t.lastpost, t.lastposter, f.name
						FROM {$tablepre}favorites fav, {$tablepre}threads t, {$tablepre}forums f
						WHERE fav.tid=t.tid AND t.displayorder>='0' AND fav.uid='$discuz_uid' AND t.fid=f.fid $threadadd
						ORDER BY t.lastpost DESC LIMIT $start_limit, $tpp");

					while($fav = $db->fetch_array($query)) {
						$fav['lastposterenc'] = rawurlencode($fav['lastposter']);
						$fav['lastpost'] = dgmdate("$dateformat $timeformat", $fav['lastpost'] + $timeoffset * 3600);
						$favlist[] = $fav;
					}
				}

			} else {

				if($ids = implodeids($delete)) {
					$db->query("DELETE FROM {$tablepre}favorites WHERE uid='$discuz_uid' AND $ftid IN ($ids)", 'UNBUFFERED');
				}
				showmessage('favorite_update_succeed', dreferer());
			}

		}
	} else {

		if(isset($subadd) && !submitcheck('subsubmit')) {

			$subadd = intval($subadd);

			if($pricethread = $db->result_first("SELECT price FROM {$tablepre}threads WHERE tid='$subadd'")) {
				$query = $db->query("SELECT tid FROM {$tablepre}paymentlog WHERE tid='$subadd' AND uid='$discuz_uid'");
				if(!$db->num_rows($query)) {
					showmessage('subscription_nopermission');
				}
			}

⌨️ 快捷键说明

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