📄 members.inc.php
字号:
$conditions .= $regdateafter != '' ? " AND regdate>'".(strtotime($regdateafter) + $dateoffset)."'" : '';
$conditions .= $lastvisitafter != '' ? " AND lastvisit>'".(strtotime($lastvisitafter) + $dateoffset)."'" : '';
$conditions .= $lastvisitbefore != '' ? " AND lastvisit<'".(strtotime($lastvisitbefore) + $dateoffset)."'" : '';
$conditions .= $lastpostafter != '' ? " AND lastpost>'".(strtotime($lastpostafter) + $dateoffset)."'" : '';
$conditions .= $lastpostbefore != '' ? " AND lastpost<'".(strtotime($lastpostbefore) + $dateoffset)."'" : '';
$conditions .= $srchbday != '' ? " AND bday LIKE '".(($birthyear ? $birthyear : '%').'-'.($birthmonth ? $birthmonth : '%').'-'.($birthday ? $birthday : '%'))."'" : '';
$conditions .= submitcheck('newslettersubmit') || submitcheck('sendsubmit', 1) ? " AND newsletter='1'" : '';
if(!$conditions && !$uidarray && submitcheck('deletesubmit')) {
cpmsg('members_search_invalid');
} else {
$conditions = '1'.$conditions;
}
$urladd = '';
foreach(array('admingroupid', 'usergroupid', 'extusergroupid') as $key) {
if(is_array($$key) && !in_array('all', $$key)) {
foreach($$key as $gid => $value) {
if($value != '') {
$urladd .= '&'.$key.'[]='.rawurlencode($value);
}
}
}
}
foreach(array('lower', 'higher') as $key) {
if(is_array($$key)) {
foreach($$key as $column => $value) {
$urladd .= '&'.$key.'['.$column.']='.rawurlencode($value);
}
}
}
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}members WHERE $conditions");
$membernum = $db->result($query, 0);
if(submitcheck('newslettersubmit') || submitcheck('creditsubmit')) {
if(submitcheck('creditsubmit', 1)) {
$next = 'updatecreditsubmit';
$variable = 'creditsnotify';
} else {
$next = 'sendsubmit';
$variable = 'newsletter';
}
?>
<br><br><table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td colspan="9"><?=$lang['members_search_result']?> <?=$membernum?></td></tr>
<?
if(!$membernum) {
echo '<tr><td bgcolor="'.ALTBG2.'" colspan="2">'.$lang['members_search_nonexistence'].'</td></tr></table><br></form>';
} else {
if($next == 'updatecreditsubmit') {
$creditscols = $creditsvalue = '';
for($i = 1; $i <= 8; $i++) {
$creditscols .= '<td width="10%">'.(isset($extcredits[$i]) ? $extcredits[$i]['title'] : 'extcredits'.$i).'</td>';
$creditsvalue .= '<td class="altbg'.($i % 2 + 1).'">'.(isset($extcredits[$i]) ? '<input type="text" size="3" name="addextcredits['.$i.']" value="0"> '.$extcredits['$i']['unit'] : '<input type="text" size="3" value="N/A" disabled>').'</td>';
}
?>
<tr class="category" align="center"><td width="20%"><?=$lang['credits_title']?></td><?=$creditscols?></tr>
<tr align="center"><td class="altbg1"><?=$lang['members_credits_value']?></td><?=$creditsvalue?></tr>
</table>
<br>
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td colspan="2"><input class="header" type="checkbox" name="sendcreditsletter" value="1" onclick="findobj('messagebody').disabled=!this.checked"> <?=$lang['members_credits_notify']?></td></tr>
<?
}
$subject = $message = '';
$query = $db->query("SELECT value FROM {$tablepre}settings WHERE variable='$variable'");
if($settings = $db->result($query, 0)){
$settings = unserialize($settings);
$subject = $settings['subject'];
$message = $settings['message'];
}
?>
<tbody id="messagebody">
<tr>
<td bgcolor="<?=ALTBG1?>"><?=$lang['subject']?>:</td>
<td bgcolor="<?=ALTBG2?>"><input type="text" name="subject" size="80" value=<?=dhtmlspecialchars($subject)?>></td>
</tr>
<tr>
<td bgcolor="<?=ALTBG1?>" valign="top"><?=$lang['message']?>:</td><td bgcolor="<?=ALTBG2?>">
<textarea cols="80" rows="10" name="message"><?=dhtmlspecialchars($message)?></textarea></td></tr>
<tr>
<td bgcolor="<?=ALTBG1?>"><?=$lang['members_newsletter_send_via']?></td>
<td bgcolor="<?=ALTBG2?>">
<input type="radio" value="email" name="sendvia"> <?=$lang['email']?>
<input type="radio" value="pm" checked name="sendvia"> <?=$lang['pm']?>
</td></tr>
<tr>
<td bgcolor="<?=ALTBG1?>"><?=$lang['members_newsletter_num']?></td>
<td bgcolor="<?=ALTBG2?>"><input type="text" name="pertask" value="100" size="10"></td>
</tr>
</tbody>
</table><br>
<center><input type="submit" name="<?=$next?>" value="<?=$lang['submit']?>"></center></form>
<?
}
}
if(submitcheck('sendsubmit', 1) || submitcheck('updatecreditsubmit', 1)) {
if(submitcheck('updatecreditsubmit', 1)) {
$submit = 'updatecreditsubmit';
$variable = 'creditsnotify';
} else {
$submit = 'sendsubmit';
$variable = 'newsletter';
}
if(!empty($current)) {
$subject = $message = '';
$query = $db->query("SELECT value FROM {$tablepre}settings WHERE variable='$variable'");
if($settings = $db->result($query, 0)){
$settings = unserialize($settings);
$subject = $settings['subject'];
$message = $settings['message'];
}
} else {
$current = 0;
if(($submit == 'sendsubmit' || !empty($sendcreditsletter)) && (!($subject = trim($subject)) || !($message = trim(str_replace("\t", ' ', $message))))) {
cpmsg('members_newsletter_sm_invalid');
}
if($submit == 'updatecreditsubmit') {
$updatesql = '';
if(is_array($addextcredits) && !empty($addextcredits)){
foreach($addextcredits as $key => $value) {
$value = intval($value);
if(isset($extcredits[$key]) && !empty($value)) {
$updatesql .= ", extcredits{$key}=extcredits{$key}+($value)";
}
}
}
if(!empty($updatesql)) {
$db->query("UPDATE {$tablepre}members set uid=uid $updatesql WHERE $conditions", 'UNBUFFTERED');
} else {
cpmsg('members_credits_invalid');
}
if(!$sendcreditsletter){
cpmsg('members_credits_succeed');
}
}
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('$variable', '".
addslashes(serialize(array('subject' => $subject, 'message' => $message)))."')");
}
$pertask = intval($pertask);
$current = intval($current);
$subject = '[Discuz!] '.$subject;
$uids = $emails = $comma = '';
$query = $db->query("SELECT uid, email FROM {$tablepre}members WHERE $conditions LIMIT $current, $pertask");
while($member = $db->fetch_array($query)) {
if($sendvia == 'pm') {
$uids .= $comma.$member['uid'];
$db->query("INSERT INTO {$tablepre}pms (msgfrom, msgfromid, msgtoid, folder, new, subject, dateline, message)
VALUES('$discuz_user', '$discuz_uid', '$member[uid]', 'inbox', '1', '".dhtmlspecialchars($subject)."', '$timestamp', '$message')");
} elseif($sendvia == 'email') {
$emails .= $comma.$member['email'];
}
$comma = ',';
}
if($uids || $emails) {
if($sendvia == 'pm') {
$db->query("UPDATE {$tablepre}members SET newpm='1' WHERE uid IN ($uids)");
} elseif($sendvia == 'email') {
sendmail($emails, $subject, $message);
}
$next = $current + $pertask;
cpmsg("$lang[members_newsletter_send]: $lang[members_newsletter_processing]", "admincp.php?action=members&{$submit}=yes&sendvia=".rawurlencode($sendvia)."$urladd&cins=".rawurlencode($cins)."&username=".rawurlencode($username)."&srchemail=".rawurlencode($srchemail)."®datebefore=".rawurlencode($regdatebefore)."®dateafter=".rawurlencode($regdateafter)."&postshigher=".rawurlencode($postshigher)."&postslower=".rawurlencode($postslower)."®ip=".rawurlencode($regip)."&lastip=".rawurlencode($lastip)."&lastvisitafter=".rawurlencode($lastvisitafter)."&lastvisitbefore=".rawurlencode($lastvisitbefore)."&lastpostafter=".rawurlencode($lastpostafter)."&lastpostbefore=".rawurlencode($lastpostbefore)."&birthyear=".rawurlencode($birthyear)."&birthmonth=".rawurlencode($birthmonth)."&birthday=".rawurlencode($birthday)."¤t=$next&pertask=$pertask");
} else {
cpmsg(($submit == 'sendsubmit') ? 'members_newsletter_succeed' : 'members_credits_notify_succeed');
}
} elseif(submitcheck('searchsubmit', 1)) {
$multipage = multi($membernum, $memberperpage, $page, "admincp.php?action=members&searchsubmit=yes$urladd&cins=".rawurlencode($cins)."&username=".rawurlencode($username)."&srchemail=".rawurlencode($srchemail)."®datebefore=".rawurlencode($regdatebefore)."®dateafter=".rawurlencode($regdateafter)."&postshigher=".rawurlencode($postshigher)."&postslower=".rawurlencode($postslower)."®ip=".rawurlencode($regip)."&lastip=".rawurlencode($lastip)."&lastvisitafter=".rawurlencode($lastvisitafter)."&lastvisitbefore=".rawurlencode($lastvisitbefore)."&lastpostafter=".rawurlencode($lastpostafter)."&lastpostbefore=".rawurlencode($lastpostbefore)."&birthyear=".rawurlencode($birthyear)."&birthmonth=".rawurlencode($birthmonth)."&day=".rawurlencode($birthday));
$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;
}
$altbg1 = 'altbg'.((count($extcredits) + 3) % 2 ? '2' : '1');
$altbg2 = $altbg1 == 'altbg1' ? 'altbg2' : 'altbg1';
$creditscolumns = '';
foreach($extcredits as $id => $credit) {
$creditscolumns .= "<td>$credit[title]</td>";
}
$query = $db->query("SELECT uid, username, adminid, groupid, credits, extcredits1, extcredits2,
extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, posts, bday FROM {$tablepre}members WHERE $conditions LIMIT $start_limit, $memberperpage");
while($member = $db->fetch_array($query)) {
$members .= "<tr align=\"center\" class=\"smalltxt\"><td class=\"altbg1\"><input type=\"checkbox\" name=\"delete[]\" value=\"$member[uid]\"".($member['adminid'] == 1 ? 'disabled' : '')."></td>\n".
"<td class=\"altbg2\"><a href=\"viewpro.php?uid=$member[uid]\" target=\"_blank\">$member[username]</a></td>\n".
"<td class=\"altbg1\">$member[credits]</td>\n";
$thisbg = '';
foreach($extcredits as $id => $credit) {
$thisbg = isset($thisbg) && $thisbg == 'altbg2' ? 'altbg1' : 'altbg2';
$members .= "<td class=\"$thisbg\">".$member['extcredits'.$id]."</td>\n";
}
$members .="<td class=\"$altbg1\">$member[posts]</td>\n".
"<td class=\"$altbg2\">{$usergroups[$member[adminid]][grouptitle]}</td>\n".
"<td class=\"$altbg1\">{$usergroups[$member[groupid]][grouptitle]}</td>\n".
"<td class=\"$altbg2\">$member[bday]</td>\n".
"<td class=\"$altbg1\"><a href=\"admincp.php?action=editgroups&uid=$member[uid]\">[$lang[usergroup]]</a> ".
"<a href=\"admincp.php?action=access&uid=$member[uid]\">[$lang[access]]</a> ".
($extcredits ? "<a href=\"admincp.php?action=editcredits&uid=$member[uid]\">[$lang[credits]]</a> " : "<span disabled>[$lang[edit]]</span> ").
"<a href=\"admincp.php?action=editmedals&uid=$member[uid]\">[$lang[medals]]</a> ".
"<a href=\"admincp.php?action=memberprofile&uid=$member[uid]\">[$lang[detail]]</a></td></tr>\n";
}
?>
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="95%" align="center" class="tableborder">
<tr class="header"><td><?=$lang['tips']?></td></tr>
<tr bgcolor="<?=ALTBG1?>"><td>
<br><?=$lang['members_tips']?>
</td></tr></table>
<br>
<table cellspacing="0" cellpadding="0" border="0" width="95%" align="center">
<tr><td class="multi"><?=$multipage?></td></tr></table>
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="95%" align="center" class="tableborder">
<form method="post" action="admincp.php?action=members">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<tr align="center" class="header">
<td width="48"><input type="checkbox" name="chkall" class="header" onclick="checkall(this.form, 'delete')"><?=$lang['del']?></td>
<td><?=$lang['username']?></td><td><?=$lang['credits']?></td><?=$creditscolumns?><td><?=$lang['posts']?></td><td><?=$lang['admingroup']?><td><?=$lang['usergroup']?></td><td><?=$lang['birthday']?></td><td><?=$lang['edit']?></td></tr>
<?=$members?>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="95%" align="center">
<tr><td class="multi"><?=$multipage?></td></tr></table><br><center>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -