📄 usergroups.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2009 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: usergroups.inc.php 16688 2008-11-14 06:41:07Z cnteacher $
*/
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
cpheader();
if(!$operation) {
if(!submitcheck('groupsubmit')) {
$sgroups = $smembers = array();
$sgroupids = '0';
$smembernum = $membergroup = $specialgroup = $sysgroup = $membergroupoption = $specialgroupoption = '';
$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, radminid, type, grouptitle, creditshigher, creditslower, stars, color, groupavatar FROM {$tablepre}usergroups $conditions ORDER BY creditshigher");
while($group = $db->fetch_array($query)) {
if($group['type'] == 'member') {
$membergroupoption .= "<option value=\"g{$group[groupid]}\">$group[grouptitle]</option>";
$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=\"$BASESCRIPT?action=usergroups&operation=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=\"$BASESCRIPT?action=usergroups&operation=edit&id=$group[groupid]\" class=\"act\">$lang[detail]</a>"
), TRUE);
} elseif($group['type'] == 'special' && $group['radminid'] == '0') {
$specialgroupoption .= "<option value=\"g{$group[groupid]}\">$group[grouptitle]</option>";
$sgroups[] = $group;
$sgroupids .= ','.$group['groupid'];
}
}
$projectselect = $membergroupoption.'<option value=""> ------------ </option>';
$specialprojectselect = $specialgroupoption.'<option value=""> ------------ </option>';
$project = array();
$query = $db->query("SELECT id, name FROM {$tablepre}projects WHERE type='group'");
while($project = $db->fetch_array($query)) {
$projectselect = $specialprojectselect .= '<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="'.$BASESCRIPT.'?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=\"$BASESCRIPT?action=usergroups&operation=viewsgroup&sgroupid=$group[groupid]\" onclick=\"ajaxget(this.href, 'sgroup_$group[groupid]', 'sgroup_$group[groupid]', 'auto');doane(event);\" class=\"act\">$lang[view]</a>",
"<a href=\"$BASESCRIPT?action=usergroups&operation=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_project]</option><option value="0">------------</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,'<select name="groupnewaddproject[]"><option value="">$lang[usergroups_project]</option><option value="0">------------</option>$specialprojectselect</select>'],
[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');
showformheader('usergroups&type=member');
showtableheader('usergroups_member', 'fixpadding', 'id="membergroups"'.($type && $type != 'member' ? ' style="display: none"' : ''));
showsubtitle(array('', 'usergroups_title', 'usergroups_creditsrange', 'usergroups_stars', 'usergroups_color', 'usergroups_avatar', ''));
echo $membergroup;
echo '<tr><td> </td><td colspan="8"><div><a href="###" onclick="addrow(this, 0)" class="addtr">'.$lang['usergroups_add'].'</a></div></td></tr>';
showsubmit('groupsubmit', 'submit', 'del');
showtablefooter();
showformfooter();
showformheader('usergroups&type=special');
showtableheader('usergroups_special', 'fixpadding', 'id="specialgroups"'.($type != 'special' ? ' style="display: none"' : ''));
showsubtitle(array('', 'usergroups_title', 'usergroups_stars', 'usergroups_color', 'usergroups_avatar', '', ''));
echo $specialgroup;
echo '<tr><td> </td><td colspan="8"><div><a href="###" onclick="addrow(this, 1)" class="addtr">'.$lang['usergroups_sepcial_add'].'</a></div></td></tr>';
showsubmit('groupsubmit', 'submit', 'del');
showtablefooter();
showformfooter();
showformheader('usergroups&type=system');
showtableheader('usergroups_system', 'fixpadding', 'id="systemgroups"'.($type != 'system' ? ' style="display: none"' : ''));
showsubtitle(array('usergroups_title', 'usergroups_status', 'usergroups_stars', 'usergroups_color', 'usergroups_avatar', ''));
echo $sysgroup;
showsubmit('groupsubmit');
showtablefooter();
showformfooter();
} else {
if(empty($type) || !in_array($type, array('member', 'special', 'system'))) {
cpmsg('usergroups_type_nonexistence');
}
$oldgroups = $extadd = array();
$query = $db->query("SELECT * FROM {$tablepre}usergroups WHERE `type`='$type'");
while ($gp = $db->fetch_array($query)) {
$oldgroups[$gp['groupid']] = $gp;
}
$sqladd = '';
$query = $db->query("SELECT * FROM {$tablepre}projects WHERE type='group'");
while($project = $db->fetch_array($query)) {
$project['value'] = unserialize($project['value']);
foreach($project['value'] as $k=>$v) {
$v = addslashes($v);
$k = addslashes($k);
$sqladd .= ",`$k`='$v'";
}
$project['sqladd'] = $sqladd;
$extadd[$project['id']] = $project['sqladd'];
}
foreach ($oldgroups as $id => $vals) {
$sqladd = '';
foreach ($vals as $k => $v) {
$v = addslashes($v);
if(!in_array($k, array('groupid', 'radminid', 'type', 'system', 'grouptitle', 'creditshigher', 'creditslower', 'stars', 'color', 'groupavatar'))) {
$sqladd .= ",`$k`='$v'";
}
}
$extadd['g'.$id] = $sqladd;
}
if($type == 'member') {
$groupnewadd = array_flip_keys($groupnewadd);
foreach($groupnewadd as $k => $v) {
if(!$v['grouptitle'] || !$v['creditshigher']) {
unset($groupnewadd[$k]);
}
}
$groupnewkeys = array_keys($groupnew);
$maxgroupid = max($groupnewkeys);
foreach($groupnewadd as $k=>$v) {
$groupnew[$k+$maxgroupid+1] = $v;
}
$orderarray = array();
if(is_array($groupnew)) {
foreach($groupnew as $id => $group) {
if((is_array($delete) && in_array($id, $delete)) || ($id == 0 && (!$group['grouptitle'] || $group['creditshigher'] == ''))) {
unset($groupnew[$id]);
} else {
$orderarray[$group['creditshigher']] = $id;
}
}
}
if(empty($orderarray[0]) || min(array_flip($orderarray)) >= 0) {
cpmsg('usergroups_update_credits_invalid', '', 'error');
}
ksort($orderarray);
$rangearray = array();
$lowerlimit = array_keys($orderarray);
for($i = 0; $i < count($lowerlimit); $i++) {
$rangearray[$orderarray[$lowerlimit[$i]]] = array
(
'creditshigher' => isset($lowerlimit[$i - 1]) ? $lowerlimit[$i] : -999999999,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -