📄 members.inc.php
字号:
SUM(digestposts) AS digestposts, SUM(pageviews) AS pageviews,
SUM(oltime) AS oltime
FROM {$tablepre}members WHERE uid IN ($suids)");
$member = $db->fetch_array($query);
$db->query("UPDATE {$tablepre}members SET credits=credits+$member[credits],
extcredits1=extcredits1+$member[extcredits1], extcredits2=extcredits2+$member[extcredits2],
extcredits3=extcredits3+$member[extcredits3], extcredits4=extcredits4+$member[extcredits4],
extcredits5=extcredits5+$member[extcredits5], extcredits6=extcredits6+$member[extcredits6],
extcredits7=extcredits7+$member[extcredits7], extcredits8=extcredits8+$member[extcredits8],
posts=posts+$member[posts], digestposts=digestposts+$member[digestposts],
pageviews=pageviews+$member[pageviews], oltime=oltime+$member[oltime]
WHERE uid='$tuid'");
$db->query("DELETE FROM {$tablepre}members WHERE uid IN ($suids)");
updatecache('settings');
cpmsg('members_merge_succeed');
}
}
} elseif($action == 'editgroups') {
$query = $db->query("SELECT m.uid, m.username, m.adminid, m.groupid, m.groupexpiry, m.extgroupids, m.credits,
mf.groupterms, u.type AS grouptype, u.grouptitle
FROM {$tablepre}members m
INNER JOIN {$tablepre}memberfields mf ON mf.uid=m.uid
LEFT JOIN {$tablepre}usergroups u ON u.groupid=m.groupid
WHERE m.uid='$uid'");
if(!$member = $db->fetch_array($query)) {
cpmsg('members_edit_nonexistence');
} elseif (!$isfounder && ($member['adminid'] == 1 || $member['groupid'] == 1)) {
cpmsg('members_super_edit_admin_allow');
}
if(!submitcheck('editsubmit')) {
$checkadminid = array(($member['adminid'] >= 0 ? $member['adminid'] : 0) => 'checked');
$member['groupterms'] = unserialize($member['groupterms']);
if($member['groupterms']['main']) {
$expirydate = gmdate('Y-n-j', $member['groupterms']['main']['time'] + $timeoffset * 3600);
$expirydays = ceil(($member['groupterms']['main']['time'] - $timestamp) / 86400);
$selecteaid = array($member['groupterms']['main']['adminid'] => 'selected');
$selectegid = array($member['groupterms']['main']['groupid'] => 'selected');
} else {
$expirydate = $expirydays = '';
$selecteaid = array($member['adminid'] => 'selected');
$selectegid = array(($member['grouptype'] == 'member' ? 0 : $member['groupid']) => 'selected');
}
$class = 'altbg1';
$extgroupcount = 0;
$extgroups = $expgroups = $curtype = $thisbg = '';
$extgrouparray = explode("\t", $member['extgroupids']);
$groups = array('system' => '', 'special' => '', 'member' => '');
$group = array('groupid' => 0, 'radminid' => 0, 'type' => '', 'grouptitle' => $lang['usergroups_system_0'], 'creditshigher' => 0, 'creditslower' => '0');
$query = $db->query("SELECT groupid, radminid, type, grouptitle, creditshigher, creditslower
FROM {$tablepre}usergroups WHERE groupid NOT IN ('6', '7') ORDER BY creditshigher, groupid");
do {
if($group['groupid'] && !in_array($group['groupid'], array(4, 5, 6, 7, 8)) && ($group['type'] == 'system' || $group['type'] == 'special')) {
$extgroups .= ($extgroupcount++ % 2 == 0 ? '</tr><tr>' : '').
'<td class="altbg2"><input class="checkbox" type="checkbox" name="extgroupidsnew[]" value="'.$group['groupid'].'" '.(in_array($group['groupid'], $extgrouparray) ? 'checked' : '').'> '.$group['grouptitle'].'</td><td align="center" class="altbg2"><input type="text" size="9" name="extgroupexpirynew['.$group['groupid'].']" value="'.(in_array($group['groupid'], $extgrouparray) && !empty($member['groupterms']['ext'][$group['groupid']]) ? gmdate('Y-n-j', $member['groupterms']['ext'][$group['groupid']] + $timeoffset * 3600) : '').'" onclick="showcalendar(event, this)"></td>';
}
if($group['groupid'] && $group['type'] == 'member' && !($member['credits'] >= $group['creditshigher'] && $member['credits'] < $group['creditslower']) && $member['groupid'] != $group['groupid']) {
continue;
}
$expgroups .= '<option name="expgroupidnew" value="'.$group['groupid'].'" '.$selectegid[$group['groupid']].'>'.$group['grouptitle'].'</option>';
if($group['groupid'] != 0) {
$thisbg = $curtype == $group['type'] && $thisbg == 'altbg2' ? 'altbg1' : 'altbg2';
$curtype = $group['type'];
$groupradmin = $group['type'] == 'special' && !$group['radminid'] ? '<select name="adminidnew['.$group['groupid'].']"><option value="0"'.($member['adminid'] == 0 ? ' selected' : '').'>'.$lang['usergroups_system_0'].'</option><option value="3"'.($member['adminid'] == 3 ? ' selected' : '').'>'.$lang['usergroups_system_3'].'</option><option value="2"'.($member['adminid'] == 2 ? ' selected' : '').'>'.$lang['usergroups_system_2'].'</option><option value="1"'.($member['adminid'] == 1 ? ' selected' : '').'>'.$lang['usergroups_system_1'].'</option></select>' : ($group['radminid'] ? $lang['usergroups_system_'.$group['radminid']] : '<span class="warning">X</span>');
$groups[$group['type']] .= '<tr class="'.$thisbg.'"><td><input class="radio" type="radio" name="groupidnew" value="'.$group['groupid'].'" '.($member['groupid'] == $group['groupid'] ? 'checked' : '').'> '.$group['grouptitle'].'</td><td>'.$groupradmin.'</td></tr>';
}
} while($group = $db->fetch_array($query));
$extgroups .= $extgroupcount++ % 2 != 0 ? '<td colspan="2" class="altbg2"> </tr><tr>' : '';
if(!$groups['member']) {
$query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups WHERE type='member' AND creditshigher>='0' ORDER BY creditshigher LIMIT 1");
$group = $db->fetch_array($query);
$groups['member'] = '<tr><td class="altbg1"><input class="radio" type="radio" name="groupidnew" value="'.$group['groupid'].'"> '.$group['grouptitle'].'</td></tr>';
}
shownav('members_edit_groups');
?>
<script src="include/calendar.js" type="text/javascript"></script>
<form method="post" action="admincp.php?action=editgroups&uid=<?=$member['uid']?>">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td colspan="2"><?=$lang['members_edit_groups']?> - <?=$member['username']?></td></tr>
<tr class="altbg1"><td><table cellspacing="0" cellpadding="10" width="100%" align="center">
<tr><td width="35%" valign="top">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td><?=$lang['usergroup']?></td><td><?=$lang['members_edit_groups_related_adminid']?></td></tr>
<tr><td class="category" colspan="2"><span class="bold"><?=$lang['usergroups_system']?></span></td></tr>
<?=$groups['system']?>
<tr><td class="category" colspan="2"><span class="bold"><?=$lang['usergroups_special']?></span></td></tr>
<?=$groups['special']?>
<tr><td class="category" colspan="2"><span class="bold"><?=$lang['usergroups_member']?></span></td></tr>
<?=$groups['member']?>
</table>
</td>
<td width="65%" align="right" valign="top">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td colspan="4"><?=$lang['members_edit_groups_extended']?></td></tr>
<tr align="center" class="category"><td width="30%"><?=$lang['usergroup']?></td><td width="20%"><?=$lang['validity']?></td><td width="30%"><?=$lang['usergroup']?></td><td width="20%"><?=$lang['validity']?></td>
<?=$extgroups?>
<tr><td colspan="4" class="altbg2"><?=$lang['members_edit_groups_extended_comment']?></td></tr>
</table><br>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td colspan="2"><?=$lang['validity']?></td></tr>
<tr><td class="altbg1" width="60%"><b><?=$lang['members_edit_groups_validity']?></b><br><span class="smalltxt"><?=$lang['members_edit_groups_validity_comment']?></span></td>
<td class="altbg2" width="40%">
<input class="radio" type="radio" name="expirytype" value="date" checked> <input type="text" name="expirydatenew" value="<?=$expirydate?>" size="15"> <?=$lang['members_edit_groups_validity_date']?><br>
<input class="radio" type="radio" name="expirytype" value="days"> <input type="text" name="expirydaysnew" value="<?=$expirydays?>" size="15"> <?=$lang['members_edit_groups_validity_days']?><br></td></tr>
<tr><td class="altbg1" width="60%"><b><?=$lang['members_edit_groups_orig_groupid']?></b></td><td class="altbg2" width="40%">
<select name="expadminidnew">
<option value="0" <?=$selecteaid[0]?>><?=$lang['usergroups_system_0']?></option>
<option value="1" <?=$selecteaid[1]?>><?=$lang['usergroups_system_1']?></option>
<option value="2" <?=$selecteaid[2]?>><?=$lang['usergroups_system_2']?></option>
<option value="3" <?=$selecteaid[3]?>><?=$lang['usergroups_system_3']?></option>
</select></td></tr>
<tr><td class="altbg1" width="60%"><b><?=$lang['members_edit_groups_orig_adminid']?></b></td><td class="altbg2" width="40%">
<select name="expgroupidnew"><?=$expgroups?></select></td></tr>
</table><br>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td colspan="2"><?=$lang['members_edit_reason']?></td></tr>
<tr><td class="altbg1" width="60%"><b><?=$lang['members_edit_groups_ban_reason']?></b><br><span class="smalltxt"><?=$lang['members_edit_groups_ban_reason_comment']?></span></td>
<td class="altbg2" width="40%"><textarea name="reason" rows="5" cols="30"></textarea></td></tr>
</table><br><br><center><input class="button" type="submit" name="editsubmit" value="<?=$lang['submit']?>"></center>
</td></tr></table>
</td></tr>
</table></form>
<?
} else {
$query = $db->query("SELECT groupid, radminid, type FROM {$tablepre}usergroups WHERE groupid='$groupidnew'");
if(!$group = $db->fetch_array($query)) {
cpmsg('undefined_action');
}
if(strlen(is_array($extgroupidsnew) ? implode("\t", $extgroupidsnew) : '') > 60) {
cpmsg('members_edit_groups_toomany');
}
$adminidnew = $adminidnew[$groupidnew];
switch($group['type']) {
case 'member':
$groupidnew = in_array($adminidnew, array(1, 2, 3)) ? $adminidnew : $groupidnew;
break;
case 'special':
if($group['radminid']) {
$adminidnew = $group['radminid'];
} elseif(!in_array($adminidnew, array(1, 2, 3))) {
$adminidnew = -1;
}
break;
case 'system':
$adminidnew = in_array($groupidnew, array(1, 2, 3)) ? $groupidnew : -1;
break;
}
$groupterms = array();
if($expirytype == 'date' && $expirydatenew) {
$maingroupexpirynew = strtotime($expirydatenew) - date('Z') + $timeoffset * 3600;
} elseif($expirytype == 'days' && $expirydaysnew) {
$maingroupexpirynew = $timestamp + $expirydaysnew * 86400;
} else {
$maingroupexpirynew = 0;
}
if($maingroupexpirynew) {
$query = $db->query("SELECT groupid, radminid, type FROM {$tablepre}usergroups WHERE groupid='$expgroupidnew'");
if(!$group = $db->fetch_array($query)) {
$expgroupidnew = in_array($expadminidnew, array(1, 2, 3)) ? $expadminidnew : $expgroupidnew;
} else {
switch($group['type']) {
case 'special':
if($group['radminid']) {
$expadminidnew = $group['radminid'];
} elseif(!in_array($expadminidnew, array(1, 2, 3))) {
$expadminidnew = -1;
}
break;
case 'system':
$expadminidnew = in_array($expgroupidnew, array(1, 2, 3)) ? $expgroupidnew : -1;
break;
}
}
if($expgroupidnew == $groupidnew) {
cpmsg('members_edit_groups_illegal');
} elseif($maingroupexpirynew > $timestamp) {
if($expgroupidnew || $expadminidnew) {
$groupterms['main'] = array('time' => $maingroupexpirynew, 'adminid' => $expadminidnew, 'groupid' => $expgroupidnew);
} else {
$groupterms['main'] = array('time' => $maingroupexpirynew);
}
$groupterms['ext'][$groupidnew] = $maingroupexpirynew;
}
}
if(is_array($extgroupexpirynew)) {
foreach($extgroupexpirynew as $extgroupid => $expiry) {
if(is_array($extgroupidsnew) && in_array($extgroupid, $extgroupidsnew) && !isset($groupterms['ext'][$extgroupid]) && $expiry && ($expiry = strtotime($expiry) - date('Z') + $timeoffset * 3600) > $timestamp) {
$groupterms['ext'][$extgroupid] = $expiry;
}
}
}
$grouptermsnew = addslashes(serialize($groupterms));
$groupexpirynew = groupexpiry($groupterms);
$extgroupidsnew = $extgroupidsnew && is_array($extgroupidsnew) ? implode("\t", $extgroupidsnew) : '';
$db->query("UPDATE {$tablepre}members SET groupid='$groupidnew', adminid='$adminidnew', extgroupids='$extgroupidsnew', groupexpiry='$groupexpirynew' WHERE uid='$member[uid]'");
$db->query("UPDATE {$tablepre}memberfields SET groupterms='$grouptermsnew' WHERE uid='$member[uid]'");
if($groupidnew != $member['groupid'] && (in_array($groupidnew, array(4, 5)) || in_array($member['groupid'], array(4, 5)))) {
banlog($member['username'], $member['groupid'], $groupidnew, $groupexpirynew, $reason);
}
cpmsg('members_edit_groups_succeed', "admincp.php?action=editgroups&uid=$member[uid]");
}
} elseif($action == 'editcredits' && $uid && $extcredits) {
$query = $db->query("SELECT m.username, m.groupid, m.adminid, m.credits, m.extcredits1, m.extcredits2, m.extcredits3, m.extcredits4,
m.extcredits5, m.extcredits6, m.extcredits7, m.extcredits8, digestposts, posts, pageviews, oltime, u.grouptitle,
u.type, u.creditslower, u.creditshigher FROM {$tablepre}members m
LEFT JOIN {$tablepre}usergroups u ON u.groupid=m.groupid
WHERE uid='$uid'");
if(!$member = $db->fetch_array($query)) {
cpmsg('members_edit_nonexistence');
} elseif(!$isfounder && ($member['adminid'] == 1 || $member['groupid'] == 1)) {
cpmsg('members_super_edit_admin_allow');
}
if(!submitcheck('creditsubmit')) {
eval("\$membercredit = @round($creditsformula);");
$query = $db->query("SELECT value FROM {$tablepre}settings WHERE variable='creditsformula'");
if($jscreditsformula = $db->result($query, 0)) {
$jscreditsformula = str_replace(array('digestposts', 'posts', 'pageviews', 'oltime'), array($member['digestposts'], $member['posts'],$member['pageviews'],$member['oltime']), $jscreditsformula);
}
$creditscols = $creditsvalue = '';
for($i = 1; $i <= 8; $i++) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -