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

📄 members.inc.php

📁 Discuz! 论坛软件系统
💻 PHP
📖 第 1 页 / 共 5 页
字号:
				"<td bgcolor=\"".ALTBG2."\">$medal[name]</td>\n".
				"<td bgcolor=\"".ALTBG1."\"><input type=\"checkbox\" name=\"medals[$medal[medalid]]\" value=\"1\" ".(in_array($medal['medalid'], $membermedals) ? 'checked' : '')."></td></td>\n";
		}

		if(!$medals) {
			cpmsg('members_edit_medals_nonexistence');
		}

?>
<form method="post" action="admincp.php?action=editmedals&uid=<?=$uid?>">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="70%" align="center" class="tableborder">
<tr class="header"><td colspan="3"><?=$lang['medals_edit']?> - <?=$member['username']?></td></tr>
<tr class="category" align="center"><td><?=$lang['medals_image']?></td><td><?=$lang['name']?></td><td><?=$lang['medals_grant']?></td></tr>
<?=$medals?>
</table><br>
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="70%" align="center" class="tableborder">
<tr><td colspan="2" class="header"><?=$lang['members_edit_reason']?></td></tr>
<tr><td bgcolor="<?=ALTBG1?>" width="60%"><b><?=$lang['members_edit_medals_reason']?></b><br><span class="smalltxt"><?=$lang['members_edit_medals_reason_comment']?></span></td>
<td bgcolor="<?=ALTBG2?>" width="40%"><textarea name="reason" rows="5" cols="30"></textarea></td></tr>
</table><br><center>
<input type="submit" name="medalsubmit" value="<?=$lang['submit']?>">
</center></form>
<?

	} else {

		$medalsarray = array();
		if(is_array($medals)) {
			foreach($medals as $medalid => $newgranted) {
				if($newgranted) {
					$medalsarray[] = intval($medalid);
				}
			}
		}

		$medalsnew = implode("\t", $medalsarray);
		$reason = preg_replace("/(\r\n|\r|\n)/", '<br />', dhtmlspecialchars(trim($reason)));

		if($member['medals'] != $medalsnew) {
			if(empty($reason)) {
				cpmsg('members_edit_reason_invalid');
			} else {
				$db->query("UPDATE {$tablepre}memberfields SET medals='$medalsnew' WHERE uid='$uid'");
			}
		}

		$origmedalsarray = explode("\t", $member['medals']);

		@$fp = fopen(DISCUZ_ROOT.'./forumdata/medalslog.php', 'a');
		@flock($fp, 2);

		foreach(array_unique(array_merge($origmedalsarray, $medalsarray)) as $medalid) {
			if($medalid) {
				$orig = in_array($medalid, $origmedalsarray);
				$new = in_array($medalid, $medalsarray);
				if($orig != $new) {
					if($orig && !$new) {
						$medalaction = 'revoke';
					} elseif(!$orig && $new) {
						$medalaction = 'grant';
					}
					@fwrite($fp, "$timestamp\t".dhtmlspecialchars($discuz_userss)."\t$onlineip\t".dhtmlspecialchars($member['username'])."\t$medalid\t$medalaction\t$reason\n");
				}
			}
		}

		@fclose($fp);

		cpmsg('members_edit_medals_succeed', "admincp.php?action=editmedals&uid=$uid");

	}

} elseif($action == 'editmember') {

	if(empty($uid) && empty($username)) {

?>
<br><br><form method="post" action="admincp.php?action=editmember">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="70%" align="center" class="tableborder">
<tr class="header"><td colspan="2"><?=$lang['members_edit']?></td></tr>
<tr bgcolor="<?=ALTBG2?>">
<td><?=$lang['username']?>:</td><td><input type="text" name="username"></td></tr>
</table><br><center>
<input type="submit" name="membersubmit" value="<?=$lang['submit']?>">
</center></form><br>
<?

	} else {

		$query = $db->query("SELECT m.*, mf.*, u.type AS grouptype, u.allowsigbbcode, u.allowsigimgcode FROM {$tablepre}members m
			LEFT JOIN {$tablepre}memberfields mf ON mf.uid=m.uid
			LEFT JOIN {$tablepre}usergroups u ON u.groupid=m.groupid
			WHERE ".($uid ? "m.uid='$uid'" : "m.username='$username'"));

		if(!$member = $db->fetch_array($query)) {
			cpmsg('members_edit_nonexistence');
		} elseif(($member['grouptype'] == 'system' && in_array($member['groupid'], array(1, 2, 3, 6, 7, 8))) || $member['grouptype'] == 'special') {
			cpmsg('members_edit_illegal');
		}

		$member['groupterms'] = unserialize($member['groupterms']);

		if(!submitcheck('editsubmit')) {

			if($member['groupid'] == 4) {
				$check['post'] = 'checked';
			} elseif($member['groupid'] == 5) {
				$check['visit'] = 'checked';
			} else {
				$check['none'] = 'checked';
			}

			echo "<br><form method=\"post\" action=\"admincp.php?action=editmember&uid=$member[uid]&formhash=".FORMHASH."\">";

			if($allowbanuser) {
				$member['banexpiry'] = $member['banexpiry'] && ($member['groupid'] == 4 || $member['groupid'] == 5) ? gmdate('Y-n-j', $member['groupterms']['main']['time'] + $timeoffset * 3600) : '';
				showtype("$lang[members_edit_ban_user] - $member[username]", 'top');
				showsetting('members_edit_ban', '', '', '<input type="radio" name="bannew" value="" '.$check['none'].'> '.$lang['members_edit_ban_none'].'<br><input type="radio" name="bannew" value="post" '.$check['post'].'> '.$lang['members_edit_ban_post'].'<br><input type="radio" name="bannew" value="visit" '.$check['visit'].'> '.$lang['members_edit_ban_visit']);
				showsetting('members_edit_ban_validity', 'banexpirynew', $member['banexpiry'], 'text');
				showsetting('members_edit_ban_reason', 'reason', '', 'textarea');
				showtype('', 'bottom');
			}
			if($allowedituser) {
				showtype($lang['members_edit'], ($allowbanuser ? '' : 'top'));
				showsetting('members_edit_location', 'locationnew', $member['location'], 'text');
				showsetting('members_edit_bio', 'bionew', $member['bio'], 'textarea');
				showsetting('members_edit_signature', 'signaturenew', $member['signature'], 'textarea');
				showtype('', 'bottom');
			}

			echo '<br><br><center><input type="submit" name="editsubmit" value="'.$lang['submit'].'"></center></form>';

		} else {

			$sql = 'uid=uid';

			if($allowbanuser) {
					
				$reason = trim($reason);
				if(!$reason && ($reasonpm == 1 || $reasonpm == 3)) {
					cpmsg('members_edit_reason_invalid');
				}

				if($bannew == 'post' || $bannew == 'visit') {
					$groupidnew = $bannew == 'post' ? 4 : 5;
					$banexpirynew = intval(@strtotime($banexpirynew) - $timeoffset * 8 + date('Z'));
					$banexpirynew = $banexpirynew > $timestamp ? $banexpirynew : 0;
					if($banexpirynew) {
						$member['groupterms']['main'] = array('time' => $banexpirynew, 'adminid' => $member['adminid'], 'groupid' => $member['groupid']);
						$member['groupterms']['ext'][$groupidnew] = $banexpirynew;
						$sql .= ', groupexpiry=\''.groupexpiry($member['groupterms']).'\'';
					}
					$adminidnew = -1;
				} elseif($member['groupid'] == 4 || $member['groupid'] == 5) {
					if(!empty($member['groupterms']['main']['groupid'])) {
						$groupidnew = $member['groupterms']['main']['groupid'];
						$adminidnew = $member['groupterms']['main']['adminid'];
						unset($member['groupterms']['main']);
						unset($member['groupterms']['ext'][$member['groupid']]);
						$sql .= ', groupexpiry=\''.groupexpiry($member['groupterms']).'\'';
					} else {
						$query = $db->query("SELECT groupid FROM {$tablepre}usergroups WHERE type='member' AND creditshigher<'$member[credits]' AND creditslower>'$member[credits]'");
						$groupidnew = $db->result($query, 0);
						$adminidnew = 0;
					}
				} else {
					cpmsg('undefined_action');
				}
				$sql .= ", adminid='$adminidnew', groupid='$groupidnew'";
			}

			if($allowedituser) {
				require_once DISCUZ_ROOT.'./include/discuzcode.func.php';

				$sightmlnew = addslashes(discuzcode(stripslashes($signaturenew), 1, 0, 0, 0, $member['allowsigbbcode'], $member['allowsigimgcode'], 0));
				$locationnew = dhtmlspecialchars($locationnew);

				$sql .= ', sigstatus=\''.($signaturenew ? 1 : 0).'\'';
				$db->query("UPDATE {$tablepre}memberfields SET location='$locationnew', bio='$bionew', signature='$signaturenew', sightml='$sightmlnew' WHERE uid='$member[uid]'");
			}

			$db->query("UPDATE {$tablepre}members SET $sql WHERE uid='$member[uid]'");
			if($allowbanuser && ($db->affected_rows($query))) {
				banlog($member['username'], $member['groupid'], $groupidnew, $banexpirynew, $reason);
			}

			$db->query("UPDATE {$tablepre}memberfields SET groupterms='".($member['groupterms'] ? addslashes(serialize($member['groupterms'])) : '')."' WHERE uid='$member[uid]'");

			cpmsg('members_edit_succeed', 'admincp.php?action=editmember');

		}

	}

} elseif($action == 'access') {

	$query = $db->query("SELECT username FROM {$tablepre}members WHERE uid='$uid'");
	if(!$member = $db->fetch_array($query)) {
		cpmsg('undefined_action');
	}

	require_once DISCUZ_ROOT.'./forumdata/cache/cache_forums.php';

	if(!submitcheck('accesssubmit')) {

		$accessmasks = array();
		$query = $db->query("SELECT * FROM {$tablepre}access WHERE uid='$uid'");
		while($access = $db->fetch_array($query)) {
			$accessmasks[$access['fid']] = $access;
		}

		$members = '';
		foreach($_DCACHE['forums'] as $fid => $forum) {
			if($forum['type'] != 'group') {
				if(isset($accessmasks[$fid])) {
					$check = array(	'default'	=> '',
							'view'		=> ($accessmasks[$fid]['allowview'] ? 'checked' : ''),
							'post'		=> ($accessmasks[$fid]['allowpost'] ? 'checked' : ''),
							'reply'		=> ($accessmasks[$fid]['allowreply'] ? 'checked' : ''),
							'getattach'	=> ($accessmasks[$fid]['allowgetattach'] ? 'checked' : ''),
							'postattach'	=> ($accessmasks[$fid]['allowpostattach'] ? 'checked' : ''));
				} else {
					$check = array(	'default'	=> 'checked',
							'view'		=> '',
							'post'		=> '',
							'reply'		=> '',
							'getattach'	=> '',
							'postattach'	=> '');
				}

				$members .= "<tr><td bgcolor=\"".ALTBG1."\" width=\"22%\"><a href=\"admincp.php?action=forumdetail&fid=$forum[fid]\">$forum[name]</a></td>".
						"<td bgcolor=\"".ALTBG2."\" width=\"13%\" align=\"center\"><input type=\"checkbox\" name=\"defaultnew[$fid]\" value=\"1\" $check[default]></td>\n".
						"<td bgcolor=\"".ALTBG1."\" width=\"13%\" align=\"center\"><input type=\"checkbox\" name=\"allowviewnew[$fid]\" value=\"1\" $check[view]></td>\n".
						"<td bgcolor=\"".ALTBG2."\" width=\"13%\" align=\"center\"><input type=\"checkbox\" name=\"allowpostnew[$fid]\" value=\"1\" $check[post]></td>\n".
						"<td bgcolor=\"".ALTBG1."\" width=\"13%\" align=\"center\"><input type=\"checkbox\" name=\"allowreplynew[$fid]\" value=\"1\" $check[reply]></td>\n".
						"<td bgcolor=\"".ALTBG2."\" width=\"13%\" align=\"center\"><input type=\"checkbox\" name=\"allowgetattachnew[$fid]\" value=\"1\" $check[getattach]></td>\n".
						"<td bgcolor=\"".ALTBG1."\" width=\"13%\" align=\"center\"><input type=\"checkbox\" name=\"allowpostattachnew[$fid]\" value=\"1\" $check[postattach]></td></tr>";
			}
		}

?>
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td><?=$lang['tips']?></td></tr>
<tr bgcolor="<?=ALTBG1?>"><td>
<br><?=$lang['access_tips']?>
</td></tr></table>

<form method="post" action="admincp.php?action=access&uid=<?=$uid?>">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table cellspacing="<?=INNERBORDERWIDTH?>" cellpadding="<?=TABLESPACE?>" width="90%" align="center" class="tableborder">
<tr class="header"><td colspan="7"><?=$lang['access_edit']?> - <?=$member['username']?></td></tr>
<tr class="category" align="center">
<td><?=$lang['forum']?></td><td><?=$lang['access_default']?></td><td><?=$lang['access_view']?></td><td><?=$lang['access_post']?></td><td><?=$lang['access_reply']?></td><td><?=$lang['access_getattach']?></td><td><?=$lang['access_postattach']?></td></tr>
<?=$members?>
</table><br>

⌨️ 快捷键说明

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