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

📄 members.inc.php

📁 论坛代码网增加免费空间业务
💻 PHP
📖 第 1 页 / 共 5 页
字号:
<?php

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

	$Id: members.inc.php 13771 2008-05-23 02:58:21Z liuqiang $
*/

if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
        exit('Access Denied');
}

@set_time_limit(600);

cpheader();

if(!$operation) {

	if(!submitcheck('submit', 1)) {

		shownav('user', 'menu_members_edit');
		showsubmenu('menu_members_edit', array(
			array('search', 'members', 1),
			array('clean', 'members&operation=clean', 0),
		));
		showtips('members_admin_tips');
		searchmembers();

	} else {

		countmembers();

		$multipage = multi($membernum, $memberperpage, $page, "admincp.php?action=members&submit=yes".$urladd);

		$usergroups = array();
		$query = $db->query("SELECT groupid, type, grouptitle FROM {$tablepre}usergroups");
		while($group = $db->fetch_array($query)) {
			switch($group['type']) {
				case 'system': $group['grouptitle'] = '<b>'.$group['grouptitle'].'</b>'; break;
				case 'special': $group['grouptitle'] = '<i>'.$group['grouptitle'].'</i>'; break;
			}
			$usergroups[$group['groupid']] = $group;
		}

		$query = $db->query("SELECT uid, username, adminid, groupid, credits, extcredits1, extcredits2,
			extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, posts FROM {$tablepre}members WHERE $conditions LIMIT $start_limit, $memberperpage");

		while($member = $db->fetch_array($query)) {
			$memberextcredits = array();
			foreach($extcredits as $id => $credit) {
				$memberextcredits[] = $extcredits[$id]['title'].': '.$member['extcredits'.$id];
			}
			$members .= showtablerow('', array('class="td25"', '', 'title="'.implode("\n", $memberextcredits).'"'), array(
				"<input type=\"checkbox\" name=\"uidarray[]\" value=\"$member[uid]\"".($member['adminid'] == 1 ? 'disabled' : '')." class=\"checkbox\">",
				"<a href=\"space.php?uid=$member[uid]\" target=\"_blank\">$member[username]</a>",
				$member['credits'],
				$member['posts'],
				$usergroups[$member['adminid']]['grouptitle'],
				$usergroups[$member['groupid']]['grouptitle'],
				"<a href=\"admincp.php?action=members&operation=editgroups&uid=$member[uid]\" class=\"act\">$lang[usergroup]</a><a href=\"admincp.php?action=members&operation=access&uid=$member[uid]\" class=\"act\">$lang[members_access]</a>".
				($extcredits ? "<a href=\"admincp.php?action=members&operation=editcredits&uid=$member[uid]\" class=\"act\">$lang[credits]</a>" : "<span disabled>$lang[edit]</span>").
				"<a href=\"admincp.php?action=members&operation=editmedals&uid=$member[uid]\" class=\"act\">$lang[medals]</a><a href=\"admincp.php?action=members&operation=profile&uid=$member[uid]\" class=\"act\">$lang[detail]</a>"
			), TRUE);
		}

		shownav('user', 'menu_members_edit');
		showsubmenu('menu_members_edit');
		showformheader("members&operation=clean");
		eval("\$lang[members_search_result] = \"".$lang['members_search_result']."\";");
		showtableheader(lang('members_search_result').'<a href="javascript:history.go(-1);" class="act lightlink normal">'.lang('research').'</a>');
		showsubtitle(array('', 'username', 'credits', 'posts', 'admingroup', 'usergroup', ''));
		echo $members;
		showtablerow('', array('class="td25"', 'class="lineheight" colspan="7"'), array('', lang('members_admin_comment')));
		showsubmit('submit', 'submit', '<input type="checkbox" name="chkall" onclick="checkAll(\'prefix\', this.form, \'uidarray\')" class="checkbox">'.lang('del'), '', $multipage);
		showtablefooter();
		showformfooter();

	}

} elseif($operation == 'clean') {

	if(!submitcheck('submit', 1)) {

		shownav('user', 'menu_members_edit');
		showsubmenu('menu_members_edit', array(
			array('search', 'members', 0),
			array('clean', 'members&operation=clean', 1),
		));

		searchmembers('clean');

	} else {

		countmembers();

		$uids = 0;
		$extra = '';

		if(empty($uidarray)) {
			$query = $db->query("SELECT uid, groupid, adminid FROM {$tablepre}members WHERE $conditions AND adminid<>1 AND groupid<>1");
		} else {
			$uids = is_array($uidarray) ? '\''.implode('\', \'', $uidarray).'\'' : '0';
			$query = $db->query("SELECT uid, groupid, adminid FROM {$tablepre}members WHERE uid IN($uids) AND adminid<>1 AND groupid<>1");
		}

		$membernum = $db->num_rows($query);

		$uids = $comma = '';
		while($member = $db->fetch_array($query)) {
			if($membernum < 2000 || !empty($uidarray)) {
				$extra .= '<input type="hidden" name="uidarray[]" value="'.$member['uid'].'" />';
			}
			$uids .= $comma.$member['uid'];
			$comma = ',';
		}

		if((empty($membernum) || empty($uids))) {
			cpmsg('members_no_find_deluser', '', 'error');
		}

		if(!$confirmed) {

			cpmsg('members_delete_confirm', "admincp.php?action=members&operation=clean&submit=yes&confirmed=yes".$urladd, 'form', $extra.'<br /><input type="checkbox" name="includepost" value="1" class="checkbox" />'.$lang['members_delete_post']);

		} else {

			if(empty($includepost)) {

				$query = $db->query("DELETE FROM {$tablepre}members WHERE uid IN ($uids)");
				$numdeleted = $db->affected_rows();
				$db->query("DELETE FROM {$tablepre}access WHERE uid IN ($uids)", 'UNBUFFERED');
				$db->query("DELETE FROM {$tablepre}memberfields WHERE uid IN ($uids)", 'UNBUFFERED');
				$db->query("DELETE FROM {$tablepre}favorites WHERE uid IN ($uids)", 'UNBUFFERED');
				$db->query("DELETE FROM {$tablepre}moderators WHERE uid IN ($uids)", 'UNBUFFERED');
				$db->query("DELETE FROM {$tablepre}subscriptions WHERE uid IN ($uids)", 'UNBUFFERED');
				$db->query("DELETE FROM {$tablepre}validating WHERE uid IN ($uids)", 'UNBUFFERED');
				cpmsg('members_delete_succeed', '', 'succeed');

			} else {

				$numdeleted = $numdeleted ? $numdeleted : count($uidarray);
				$pertask = 1000;
				$current = intval($current);

				$next = $current + $pertask;
				$threads = $fids = $threadsarray = array();

				$query = $db->query("SELECT f.fid, t.tid FROM {$tablepre}threads t LEFT JOIN {$tablepre}forums f ON t.fid=f.fid WHERE t.authorid IN ($uids) ORDER BY f.fid LIMIT $pertask");
				while($thread = $db->fetch_array($query)) {
					$threads[$thread['fid']] .= ($threads[$thread['fid']] ? ',' : '').$thread['tid'];
				}

				$nextlink = "admincp.php?action=members&operation=clean&confirmed=yes&submit=yes&includepost=yes&current=$next&pertask=$pertask&lastprocess=$processed".$urladd;
				if($threads) {
					foreach($threads as $fid => $tids) {
						$query = $db->query("SELECT attachment, thumb, remote FROM {$tablepre}attachments WHERE tid IN ($tids)");
						while($attach = $db->fetch_array($query)) {
							dunlink($attach['attachment'], $attach['thumb'], $attach['remote']);
						}

						foreach(array('threads', 'threadsmod', 'relatedthreads', 'posts', 'polls', 'polloptions', 'trades', 'activities', 'activityapplies', 'debates', 'debateposts', 'attachments', 'favorites', 'mythreads', 'myposts', 'subscriptions', 'typeoptionvars', 'forumrecommend') as $value) {
							$db->query("DELETE FROM {$tablepre}$value WHERE tid IN ($tids)", 'UNBUFFERED');
						}

						require_once DISCUZ_ROOT.'./include/post.func.php';
						updateforumcount($fid);
					}
					if($globalstick && $stickmodify) {
						require_once DISCUZ_ROOT.'./include/cache.func.php';
						updatecache('globalstick');
					}

					cpmsg(lang('members_delete_post').': '.lang('members_delete_processing'), $nextlink, 'loadingform', $extra);

				} elseif($uids) {

					$query = $db->query("DELETE FROM {$tablepre}members WHERE uid IN ($uids)");
					$numdeleted = $db->affected_rows();
					$db->query("DELETE FROM {$tablepre}access WHERE uid IN ($uids)", 'UNBUFFERED');
					$db->query("DELETE FROM {$tablepre}memberfields WHERE uid IN ($uids)", 'UNBUFFERED');
					$db->query("DELETE FROM {$tablepre}favorites WHERE uid IN ($uids)", 'UNBUFFERED');
					$db->query("DELETE FROM {$tablepre}moderators WHERE uid IN ($uids)", 'UNBUFFERED');
					$db->query("DELETE FROM {$tablepre}subscriptions WHERE uid IN ($uids)", 'UNBUFFERED');

					$query = $db->query("SELECT uid, attachment, thumb, remote FROM {$tablepre}attachments WHERE uid IN ($uids) LIMIT $pertask");
					while($attach = $db->fetch_array($query)) {
						dunlink($attach['attachment'], $attach['thumb'], $attach['remote']);
					}
					$db->query("DELETE FROM {$tablepre}attachments WHERE uid IN ($uids)");

					$db->query("DELETE FROM {$tablepre}posts WHERE authorid IN ($uids)");
					$db->query("DELETE FROM {$tablepre}trades WHERE sellerid IN ($uids)");
					$db->query("DELETE FROM {$tablepre}validating WHERE uid IN ($uids)");

					cpmsg('members_delete_succeed', '', 'succeed');

				} else {

					cpmsg('members_no_find_deluser', '', 'error');

				}
			}
		}
	}

} elseif($operation == 'newsletter') {

	if(!submitcheck('newslettersubmit', 1)) {

		shownav('user', 'nav_members_newsletter');
		showsubmenusteps('nav_members_newsletter', array(
			array('nav_members_select', !$submit),
			array('nav_members_notify', $submit),
		));

		searchmembers('newsletter');

		if(submitcheck('submit', 1)) {

			countmembers();

			showtagheader('div', 'newsletter', TRUE);
			showformheader('members&operation=newsletter'.$urladd);
			echo '<table class="tb tb1">';

			if(!$membernum) {
				showtablerow('', 'class="lineheight"', $lang['members_search_nonexistence']);
			} else {
				eval("\$lang[members_search_result] = \"".$lang['members_search_result']."\";");
				showtablerow('class="first"', array('class="th11"'), array(
					lang('members_newsletter_members'),
					"$lang[members_search_result] <a href=\"###\" onclick=\"$('searchmembers').style.display='';$('newsletter').style.display='none';$('step1').className='current';$('step2').className='';\" class=\"act\">$lang[research]</a>"
				));

				showtagheader('tbody', 'messagebody', TRUE);
				shownewsletter();
				showtagfooter('tbody');

				showsubmit('newslettersubmit', 'submit', 'td');

			}

			showtablefooter();
			showformfooter();
			showtagfooter('div');

		}

	} else {

		countmembers();
		notifymembers('newsletter', 'newsletter');

	}

} elseif($operation == 'reward') {

	if(!submitcheck('rewardsubmit', 1)) {

		shownav('user', 'nav_members_reward');
		showsubmenusteps('nav_members_reward', array(
			array('nav_members_select', !$submit),
			array('nav_members_reward', $submit),
		));

		searchmembers('reward');

		if(submitcheck('submit', 1)) {

			countmembers();

			showtagheader('div', 'reward', TRUE);
			showformheader('members&operation=reward'.$urladd);
			echo '<table class="tb tb1">';

			if(!$membernum) {
				showtablerow('', 'class="lineheight"', $lang['members_search_nonexistence']);
				showtablefooter();
			} else {

				$creditscols = array('credits_title');
				$creditsvalue = $resetcredits = array();
				$js_extcreditids = '';

⌨️ 快捷键说明

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