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

📄 groups.inc.php

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

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

	$Id: groups.inc.php 13684 2008-05-08 02:46:28Z liuqiang $
*/

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

cpheader();

if($operation == 'admin') {

	if(!$do) {

		shownav('user', 'nav_admingroups');
		showsubmenu('nav_admingroups');
		showtips('admingroups_tips');
		showtableheader('', 'fixpadding');
		showsubtitle(array('name', 'type', 'admingroups_level', '', ''));

		$query = $db->query("SELECT a.*, u.radminid, u.grouptitle FROM {$tablepre}admingroups a
			LEFT JOIN {$tablepre}usergroups u ON u.groupid=a.admingid
			WHERE a.admingid<>'1' ORDER BY u.radminid, a.admingid");
		while($group = $db->fetch_array($query)) {
			showtablerow('', '', array(
				$group[grouptitle],
				$group['admingid'] <= 3 ? $lang['admingroups_type_system'] : $lang['admingroups_type_user'],
				$lang['usergroups_system_'.$group['radminid']],
				"<a href=\"admincp.php?action=groups&operation=user&do=edit&id={$group[admingid]}&return=admin\">$lang[admingroups_settings_user]</a>",
				"<a href=\"admincp.php?action=groups&operation=admin&do=edit&id=$group[admingid]\">$lang[admingroups_settings_admin]</a>"
			));
		}

		showtablefooter();

	} elseif($do == 'edit' && $id) {

		$actionarray = array(
			'settings' => array(),
			'forums' => array('edit', 'moderators', 'delete', 'merge', 'copy'),
			'threadtypes' => array(),
			'members' => array('add', 'editgroups', 'access', 'editcredits', 'editmedals', 'profile', 'profilefields', 'ipban'),
			'groups' => array('user', 'admin', 'ranks'),
			'styles' => array(),
			'templates' => array('add', 'edit'),
			'moderate' => array('members', 'threads', 'replies'),
			'threads' => array(),
			'prune' => array(),
			'recyclebin' => array(),
			'announcements' => array(),
			'smilies' => array(),
			'misc' => array('forumlinks', 'onlinelist', 'censor', 'discuzcodes', 'tags', 'icons', 'attachtypes', 'crons'),
			'advertisements' => array('add', 'edit'),
			'database' => array('runquery', 'optimize', 'export', 'import'),
			'tools' => array('updatecache', 'fileperms', 'relatedtag'),
			'attachments' => array(),
			'counter' => array(),
			'jswizard' => array(),
			'creditwizard' => array(),
			'google_config' => array(),
			'qihoo' => array('config', 'topics'),
			'ecommerce' => array('alipay', 'orders'),
			'medals' => array(),
			'plugins' => array('config', 'edit', 'hooks', 'vars'),
			'logs' => array('illegal', 'rate', 'mods', 'medals', 'ban', 'cp', 'credits', 'error')
		);

		if(!submitcheck('groupsubmit')) {

			$id = intval($id);
			$group = $db->fetch_first("SELECT a.*, aa.disabledactions, u.radminid, u.grouptitle FROM {$tablepre}admingroups a
				LEFT JOIN {$tablepre}usergroups u ON u.groupid=a.admingid
				LEFT JOIN {$tablepre}adminactions aa ON aa.admingid=a.admingid
				WHERE a.admingid='$id' AND a.admingid<>'1'");

			if(!$group) {
				cpmsg('undefined_action', '', 'error');
			}

			showsubmenu($lang['admingroups_edit'].' - '.$group['grouptitle']);
			showformheader("groups&operation=admin&do=edit&id=$id");
			showtableheader();

			if($group['radminid'] == 1) {

				$group['disabledactions'] = $group['disabledactions'] ? unserialize($group['disabledactions']) : array();

				foreach($actionarray as $actionstr => $operationstr) {
					showsetting('admingroups_edit_action_'.$actionstr, 'disabledactionnew['.$actionstr.']', !in_array($actionstr, $group['disabledactions']), 'radio', '', $operationstr);
					foreach($operationstr as $opstr) {
						$str = $actionstr.'_'.$opstr;
						showsetting('admingroups_edit_action_'.$str, 'disabledactionnew['.$str.']', !in_array($str, $group['disabledactions']), 'radio');
					}
					$operationstr && showtagfooter('tbody');
				}

			} else {

				$checkstick = array($group['allowstickthread'] => 'checked');

				showsetting('admingroups_edit_edit_post', 'alloweditpostnew', $group['alloweditpost'], 'radio');
				showsetting('admingroups_edit_edit_poll', 'alloweditpollnew', $group['alloweditpoll'], 'radio');
				showsetting('admingroups_edit_stick_thread', '', '', '<input class="radio" type="radio" name="allowstickthreadnew" value="0" '.$checkstick[0].'> '.$lang['admingroups_edit_stick_thread_none'].'<br /><input class="radio" type="radio" name="allowstickthreadnew" value="1" '.$checkstick[1].'> '.$lang['admingroups_edit_stick_thread_1'].'<br /><input class="radio" type="radio" name="allowstickthreadnew" value="2" '.$checkstick[2].'> '.$lang['admingroups_edit_stick_thread_2'].'<br /><input class="radio" type="radio" name="allowstickthreadnew" value="3" '.$checkstick[3].'> '.$lang['admingroups_edit_stick_thread_3'].'');
				showsetting('admingroups_edit_mod_post', 'allowmodpostnew', $group['allowmodpost'], 'radio');
				showsetting('admingroups_edit_del_post', 'allowdelpostnew', $group['allowdelpost'], 'radio');
				showsetting('admingroups_edit_ban_post', 'allowbanpostnew', $group['allowbanpost'], 'radio');
				showsetting('admingroups_edit_refund', 'allowrefundnew', $group['allowrefund'], 'radio');
				showsetting('admingroups_edit_view_ip', 'allowviewipnew', $group['allowviewip'], 'radio');
				showsetting('admingroups_edit_ban_ip', 'allowbanipnew', $group['allowbanip'], 'radio');
				showsetting('admingroups_edit_edit_user', 'alloweditusernew', $group['allowedituser'], 'radio');
				showsetting('admingroups_edit_ban_user', 'allowbanusernew', $group['allowbanuser'], 'radio');
				showsetting('admingroups_edit_post_announce', 'allowpostannouncenew', $group['allowpostannounce'], 'radio');
				showsetting('admingroups_edit_disable_postctrl', 'disablepostctrlnew', $group['disablepostctrl'], 'radio');

			}

			showsubmit('groupsubmit');
			showtablefooter();
			showformfooter();

		} else {

			$group = $db->fetch_first("SELECT groupid, radminid FROM {$tablepre}usergroups WHERE groupid='$id'");
			if(!$group) {
				cpmsg('undefined_action', '', 'error');
			}

			if($group['radminid'] == 1) {

				$actions = array();
				foreach ($actionarray as $key => $val) {
					$actions[] = $key;
					if(!empty($val) && is_array($val)) {
						foreach ($val as $temp) {
							$actions[] = "{$key}_{$temp}";
						}
					}
				}

				$dactionarray = array();
				if(is_array($disabledactionnew)) {
					foreach($disabledactionnew as $key => $value) {
						if(in_array($key, $actions) && !$value) {
							$dactionarray[] = $key;
						}
					}
				}

				$db->query("REPLACE INTO {$tablepre}adminactions (admingid, disabledactions)
					VALUES ('$group[groupid]', '".addslashes(serialize($dactionarray))."')");

			} else {

				$db->query("UPDATE {$tablepre}admingroups SET alloweditpost='$alloweditpostnew', alloweditpoll='$alloweditpollnew',
					allowstickthread='$allowstickthreadnew', allowmodpost='$allowmodpostnew', allowbanpost='$allowbanpostnew', allowdelpost='$allowdelpostnew',
					allowmassprune='$allowmassprunenew', allowrefund='$allowrefundnew', allowcensorword='$allowcensorwordnew',
					allowviewip='$allowviewipnew', allowbanip='$allowbanipnew', allowedituser='$alloweditusernew', allowbanuser='$allowbanusernew',
					allowmoduser='$allowmodusernew', allowpostannounce='$allowpostannouncenew', allowviewlog='$allowviewlognew',
					disablepostctrl='$disablepostctrlnew' WHERE admingid='$group[groupid]' AND admingid<>'1'");

			}

			updatecache('usergroups');
			updatecache('admingroups');
			cpmsg('admingroups_edit_succeed', 'admincp.php?action=groups&operation=admin&do=edit&id='.$id, 'succeed');

		}

	}

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

	if(!$do) {

		if(!submitcheck('groupsubmit')) {

			$sgroups = $smembers = array();
			$sgroupids = '0';
			$smembernum = $membergroup = $specialgroup = $sysgroup = '';
			$insenz = ($insenz = $db->result_first("SELECT value FROM {$tablepre}settings WHERE variable='insenz'")) ? unserialize($insenz) : array();
			$conditions = !empty($insenz['groupid']) ? "WHERE groupid<>$insenz[groupid]" : '';
			$query = $db->query("SELECT groupid, type, grouptitle, creditshigher, creditslower, stars, color, groupavatar FROM {$tablepre}usergroups $conditions ORDER BY creditshigher");
			while($group = $db->fetch_array($query)) {
				if($group['type'] == 'member') {
					$membergroup .= showtablerow('', array('class="td25"', '', 'class="td28"', 'class=td28'), array(
						"<input class=\"checkbox\" type=\"checkbox\" name=\"delete[$group[groupid]]\" value=\"$group[groupid]\">",
						"<input type=\"text\" class=\"txt\" size=\"12\" name=\"groupnew[$group[groupid]][grouptitle]\" value=\"$group[grouptitle]\">",
						"<input type=\"text\" class=\"txt\" size=\"6\" name=\"groupnew[$group[groupid]][creditshigher]\" value=\"$group[creditshigher]\" /> ~ <input type=\"text\" class=\"txt\" size=\"6\" name=\"groupnew[$group[groupid]][creditslower]\" value=\"$group[creditslower]\" disabled />",
						"<input type=\"text\" class=\"txt\" size=\"2\" name=\"groupnew[$group[groupid]][stars]\" value=\"$group[stars]\">",
						"<input type=\"text\" class=\"txt\" size=\"6\" name=\"groupnew[$group[groupid]][color]\" value=\"$group[color]\">",
						"<input type=\"text\" class=\"txt\" size=\"12\" name=\"groupnew[$group[groupid]][groupavatar]\" value=\"$group[groupavatar]\">",
						"<a href=\"admincp.php?action=groups&operation=user&do=edit&id=$group[groupid]\" class=\"act\">$lang[detail]</a>"
					), TRUE);
				} elseif($group['type'] == 'system') {
					$sysgroup .= showtablerow('', array('', '', 'class="td28"'), array(
						"<input type=\"text\" class=\"txt\" size=\"12\" name=\"group_title[$group[groupid]]\" value=\"$group[grouptitle]\">",
						$lang['usergroups_system_'.$group['groupid']],
						"<input type=\"text\" class=\"txt\" size=\"2\"name=\"group_stars[$group[groupid]]\" value=\"$group[stars]\">",
						"<input type=\"text\" class=\"txt\" size=\"6\"name=\"group_color[$group[groupid]]\" value=\"$group[color]\">",
						"<input type=\"text\" class=\"txt\" size=\"12\" name=\"group_avatar[$group[groupid]]\" value=\"$group[groupavatar]\">",
						"<a href=\"admincp.php?action=groups&operation=user&do=edit&id=$group[groupid]\" class=\"act\">$lang[detail]</a>"
					), TRUE);
				} elseif($group['type'] == 'special') {
					$sgroups[] = $group;
					$sgroupids .= ','.$group['groupid'];
				}
			}

			$projectselect = '';
			$project = array();
			$query = $db->query("SELECT id, name FROM {$tablepre}projects WHERE type='group'");
			while($project = $db->fetch_array($query)) {
				$projectselect .= '<option value="'.$project['id'].'">'.$project['name'].'</option>';
			}

			foreach($sgroups as $group) {
				if(is_array($smembers[$group['groupid']])) {
					$num = count($smembers[$group['groupid']]);
					$specifiedusers = implode('', $smembers[$group['groupid']]).($num > $smembernum[$group['groupid']] ? '<br /><div style="float: right; clear: both; margin:5px"><a href="admincp.php?action=members&submit=yes&usergroupid[]='.$group['groupid'].'" style="text-align: right;">'.$lang['more'].'&raquo;</a>&nbsp;</div>' : '<br /><br/>');
					unset($smembers[$group['groupid']]);
				} else {
					$specifiedusers = '';
					$num = 0;
				}
				$specifiedusers = "<style>#specifieduser span{width: 9em; height: 2em; float: left; overflow: hidden; margin: 2px;}</style><div id=\"specifieduser\">$specifiedusers</div>";

				$specialgroup .= showtablerow('', array('class="td25"', '', 'class="td28"'), array(
					"<input class=\"checkbox\" type=\"checkbox\" name=\"delete[$group[groupid]]\" value=\"$group[groupid]\">",
					"<input type=\"text\" class=\"txt\" size=\"12\" name=\"group_title[$group[groupid]]\" value=\"$group[grouptitle]\">",
					"<input type=\"text\" class=\"txt\" size=\"2\"name=\"group_stars[$group[groupid]]\" value=\"$group[stars]\">",
					"<input type=\"text\" class=\"txt\" size=\"6\"name=\"group_color[$group[groupid]]\" value=\"$group[color]\">",
					"<input type=\"text\" class=\"txt\" size=\"12\" name=\"group_avatar[$group[groupid]]\" value=\"$group[groupavatar]\">",
					"<a href=\"admincp.php?action=groups&operation=user&sgroupid=$group[groupid]&do=viewsgroup\" onclick=\"ajaxget(this.href, 'sgroup_$group[groupid]', 'sgroup_$group[groupid]', 'auto');doane(event);\" class=\"act\">$lang[view]</a>",
					"<a href=\"admincp.php?action=groups&operation=user&do=edit&id=$group[groupid]\" class=\"act\">$lang[detail]</a>"
				), TRUE);
				$specialgroup .= showtablerow('', array('', 'colspan="6" id="sgroup_'.$group['groupid'].'" style="display: none"'), array(
					'',
					''
				), TRUE);
			}

			echo <<<EOT
<script type="text/JavaScript">
	var rowtypedata = [
		[
			[1,'', 'td25'],
			[1,'<input type="text" class="txt" size="12" name="groupnewadd[grouptitle][]">'],
			[1,'<input type="text" class="txt" size="6" name="groupnewadd[creditshigher][]">', 'td28'],
			[1,'<input type="text" class="txt" size="2" name="groupnewadd[stars][]">', 'td28'],
			[4,'<select name="groupnewadd[projectid][]"><option value="">$lang[usergroups_scheme]</option><option value="0"><$lang[none]</option>$projectselect</select>']
		],
		[
			[1,'', 'td25'],
			[1,'<input type="text" class="txt" size="12" name="grouptitlenewadd[]">'],
			[1,'<input type="text" class="txt" size="2" name="starsnewadd[]">', 'td28'],
			[1,'<input type="text" class="txt" size="6" name="colornewadd[]">'],
			[1,'<input type="text" class="txt" size="12" name="groupavatarnewadd[]">'],
			[2, '']
		]
	];
</script>
EOT;
			shownav('user', 'nav_usergroups');
			showsubmenuanchors('nav_usergroups', array(
				array('usergroups_member', 'membergroups', !$type || $type == 'member'),
				array('usergroups_system', 'systemgroups', $type == 'system'),
				array('usergroups_special', 'specialgroups', $type == 'special')
			));
			showtips('usergroups_tips');

⌨️ 快捷键说明

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