📄 groups.inc.php
字号:
<?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'].'»</a> </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 + -