📄 members.inc.php
字号:
<?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¤t=$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 + -