Файл: sysadm/group.php
Строк: 544
<?
define('ROOT','../');
require_once (ROOT.'system/power.php');
$fuser->aut();
$admin->user_can('settings_site',$ya['id'],true,ROOT.'/sysadm/');
$standart_functions_ids=13; //количество id стандартных функций
switch($mode) {
////Создание новой группы
case 'new':
$diz -> head('Группы');
$diz -> title('Группы');
//запрашиваем все существующие функции
$functions = $db -> query("SELECT * FROM `function` ORDER BY `id`");
if (empty($_POST['name'])) {
echo '<div class="fon"><form action="?mode=new" method="post">
'.language('Название').':<br/><input type="text" name="name"/></br>
'.language('Информация').':<br/><textarea name="info"></textarea><br/>
'.language('Привилегии').':<br/>';
if ($functions -> num_rows > 0) {
while ($function = $functions -> fetch_assoc()) {
echo $diz->checkbox('function'.$function['id'],$function['name'],false,false,$function['id']);
}
}else echo language('Нет').'<br/>';
echo '<input type="submit" value="'.language('Создать').'"/></form></div>';
} else {
$name= shit($_POST['name']);
$info= shit($_POST['info']);
$sql = $db -> query("SELECT * FROM `user_groups` WHERE `name` = '".$name."'");
if ($sql -> num_rows == 0) {
$maxsid = $db -> dbcount('MAX(`sort`)','user_groups');
$db -> query("Insert `user_groups` SET `name` = '".$name."',`info` = '".$info."',`sort`=".$maxsid."+1,`time` = '".time()."'");
$id_group=$db -> insert_id;
if ($functions -> num_rows > 0) {
while ($function = $functions -> fetch_assoc()) {
$function_id = $func->checkbox_read($_POST['function'.$function['id']],1,0);
if($function_id==1){
$funcid=$_POST['function'.$function['id']];
$db -> query("Insert `groups_function` SET `group` = '".$id_group."',`function` = '".$funcid."'");
}
}
}
header('Location: ?');
}else echo'<div class="fon">'.language('Такая запись уже существует').'</div>';
}
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
break;
///редактирование группы
case 'edit':
$sql = $db -> query("SELECT * FROM `user_groups` WHERE `id` = '".$id."'");
if ($sql -> num_rows > 0) {
$group = $sql -> fetch_assoc();
//запрашиваем все существующие функции
$functions = $db -> query("SELECT * FROM `function` ORDER BY `id`");
//получаем текущий массив id функций группы
$array_function=$admin->group_functions($group['id']);
///
$diz -> head('Группы');
$diz -> title('Группы');
if (empty($_POST['name'])) {
echo '<div class="fon"><form action="?mode=edit&id='.$id.'" method="post">
'.language('Название').':<br/><input type="text" name="name" value="'.$group['name'].'" maxlength="24"/></br>
'.language('Информация').':<br/><textarea name="info">'.$group['info'].'</textarea><br/>
'.language('Привилегии').':<br/>';
//выводим привилегии
if ($functions -> num_rows > 0) {
while ($function = $functions -> fetch_assoc()) {
//если функция уже применяется к группе,то выводим это в checkbox
if(in_array($function['id'],$array_function)==true){
//если группа id=1,то запрещаем изменение стандартных функций
if($group['id']==1 and $function['id']<=$standart_functions_ids)$ckeckbox_dis=true; else $ckeckbox_dis=false;
echo $diz->checkbox('function'.$function['id'],$function['name'],true,$ckeckbox_dis,$function['id']);
}else{
echo $diz->checkbox('function'.$function['id'],$function['name'],false,false,$function['id']);
}
}
}else echo language('Нет').'<br/>';
echo '<input type="submit" value="'.language('Изменить').'"/></form></div>';
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
} else {
$name = shit($_POST['name']);
$info = shit($_POST['info']);
//обновляем привилегии
if ($functions -> num_rows > 0) {
while ($function = $functions -> fetch_assoc()) {
if(isset($_POST['function'.$function['id']])){
$function_id=intval(abs($_POST['function'.$function['id']]));
//если функция выбрана и её не было до этого у группы,то добавляем (если же есть,то пропускаем действие)
if(in_array($function['id'],$array_function)==false){
$db -> query("Insert `groups_function` SET `group` = '".$group['id']."',`function` = '".$function_id."'");
}
//проверка функций,которые были не выбраны
}else{
//если функция у группы существует но была отключена,то удаляем её из базы
if(in_array($function['id'],$array_function)==true){
//если группа id=1,то стандартные функции нельзя отключить
if($group['id']==1 and $function['id']<=$standart_functions_ids){
///не выполняем никакие функции
}else $db -> query("DELETE FROM `groups_function` where `function` = '".$function['id']."' and `group`='".$group['id']."'");
}
}
}
}
//обновляем инфу по группе
$db -> query("UPDATE `user_groups` SET `name` = '".$name."',`info` = '".$info."' WHERE `id` = '".$id."'");
echo '<div class="fon">'.language('Изменения внесены').'</div>';
echo '<div class="levo"><a href="?mode=edit&id='.$id.'" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
}
} else header('Location: ?');
break;
///удаление группы
case 'del':
$diz -> head('Группы');
$diz -> title('Группы');
$sql = $db -> query("SELECT * FROM `user_groups` WHERE `id` = '".$id."'");
if ($sql -> num_rows > 0 and $id!=1) {
switch($do) {
case 'yes':
$db -> query("DELETE FROM `groups_users` where `group` = '".$id."'");
$db -> query("DELETE FROM `groups_function` where `group` = '".$id."'");
$db -> query("DELETE FROM `user_groups` where `id` = '".$id."'");
header('Location: ?');
break;
default:
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?mode=del&do=yes&id='.$id.'">'.language('Да').'</a>
<a class="dialog_m" href="?">'.language('Нет').'</a>
</div>';
}
} else header('Location: ?');
break;
//двигаем группу по id на единицу выше
case 'up':
$sql = $db -> query("SELECT * FROM `user_groups` WHERE `id` = '".$id."'");
if ($sql -> num_rows > 0) {
$db -> query("UPDATE `user_groups` SET `sort`=sort-1 WHERE `id` = '".$id."'");
header('Location: ?');
} else header('Location: ?');
break;
//двигаем группу по id на единицу ниже
case 'foot':
$sql = $db -> query("SELECT * FROM `user_groups` WHERE `id` = '".$id."'");
if ($sql -> num_rows > 0) {
$db -> query("UPDATE `user_groups` SET `sort`=sort+1 WHERE `id` = '".$id."'");
header('Location: ?');
} else header('Location: ?');
break;
///меню управления функциями
case 'functions':
$diz -> head('Функции');
$diz -> title('Функции');
echo '<div class="but_razdel"><a href="?" class="button_razdel" style="width:50%">'.language('Группы').'</a>
<div class="button_razdel" style="width:50%"/><b>'.language('Функции').'</b></div></div>';
echo '<div class="menu"><a href="?mode=func_new" class="menutuch">'.$diz -> icon('settings.png').' '.language('Добавить').'</a></div>';
$sql = $db -> query("SELECT * FROM `function`");
if ($sql -> num_rows > 0) {
$sql = $db -> query("SELECT * FROM `function` ORDER BY `id`");
while ($func_group= $sql -> fetch_assoc()) {
//подсчёт кол-ва групп использующий функцию
$groups_this_functions = $db -> dbcount('COUNT(`id`)','groups_function','`function`="'.$func_group['id'].'"');
//вывод
if($func_group['admin_panel']==1)$admin_panel=language('Да'); else $admin_panel=language('Нет');
echo '<div class="fon">
ID'.$func_group['id'].') '.language('Название').': <span class="text">'.language($func_group['name']).'</span></br>
'.language('Панель управления').': <span class="text">'.$admin_panel.'</span><br/>
'.language('Используется').': <span class="count">'.$groups_this_functions.'</span><br/>';
echo ''.language('Кодовое название').': <span class="text">'.$func_group['function'].'</span>';
echo '</div>';
//функции (со стандартными действия производить нельзя)
if($func_group['id']>$standart_functions_ids){
echo '<div class="zap">';
echo '<a class="zap_b" href="?mode=func_edit&id='.$func_group['id'].'">'.language('Редактировать').'</a>';
echo '<a class="zap_b" href="?mode=func_del&id='.$func_group['id'].'">'.language('Удалить').'</a>';
echo'</div>';
}
}
}else echo '<div class="fon">'.language('Функций пока нет').'</div>';
break;
///новая функция
case 'func_new':
$diz -> head('Функции');
$diz -> title('Функции');
if (empty($_POST['code']) || empty($_POST['name'])) {
echo '<div class="fon"><form action="?mode=func_new" method="post">
'.language('Название').':<br/><input type="text" name="name" maxlength="60"/></br>';
echo $diz->checkbox('admin_panel','Панель управления');
echo language('Код').':<br/><input type="text" name="code" maxlength="60"/></br>
<input type="submit" value="'.language('Добавить').'"/></form></div>';
} else {
$name= shit($_POST['name']);
$code= shit($_POST['code']);
$admin_panel = $func->checkbox_read($_POST['admin_panel'],1,0);
$sql = $db -> query("SELECT * FROM `function` WHERE `function` = '".$code."'");
if ($sql -> num_rows == 0) {
$db -> query("Insert `function` SET `name` = '".$name."',`function` = '".$code."',`admin_panel`='".$admin_panel."'");
header('Location: ?mode=functions');
}else echo'<div class="fon">'.language('Такая запись уже существует').'</div>';
}
echo '<div class="levo"><a href="?mode=functions" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
break;
///редактирование функции
case 'func_edit':
$sql = $db -> query("SELECT * FROM `function` WHERE `id` = '".$id."'");
if ($sql -> num_rows > 0 and $id>$standart_functions_ids) {
$function_info = $sql -> fetch_assoc();
//системные уведомления
if ($function_info['admin_panel'] == '1') $admin_panel=true; else $admin_panel = false;
$diz -> head('Функции');
$diz -> title('Функции');
if (empty($_POST['name']) || empty($_POST['code'])) {
echo '<div class="fon"><form action="?mode=func_edit&id='.$id.'" method="post">
'.language('Название').':<br/><input type="text" name="name" value="'.$function_info['name'].'" maxlength="60"/></br>';
echo $diz->checkbox('admin_panel','Панель управления',$admin_panel);
echo language('Код').':<br/><input type="text" name="code" value="'.$function_info['function'].'" maxlength="60"/></br>
<input type="submit" value="'.language('Изменить').'"/></form></div>';
} else {
$name = shit($_POST['name']);
$code = shit($_POST['code']);
$admin_panel = $func->checkbox_read($_POST['admin_panel'],1,0);
$sql = $db -> query("SELECT * FROM `function` WHERE `function` = '".$code."' and `id`<>'".$id."'");
if ($sql -> num_rows == 0) {
//обновляем инфу по группе
$db -> query("UPDATE `function` SET `name` = '".$name."',`function` = '".$code."',`admin_panel`='".$admin_panel."' WHERE `id` = '".$id."'");
header('Location: ?mode=functions');
}else echo'<div class="fon">'.language('Такая запись уже существует').'</div>';
}
echo '<div class="levo"><a href="?mode=functions" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
} else header('Location: ?mode=functions');
break;
///удаление функции
case 'func_del':
$diz -> head('Функции');
$diz -> title('Функции');
$sql = $db -> query("SELECT * FROM `function` WHERE `id` = '".$id."'");
if ($sql -> num_rows > 0 and $id>$standart_functions_ids) {
switch($do) {
case 'yes':
$db -> query("DELETE FROM `groups_function` where `function` = '".$id."'");
$db -> query("DELETE FROM `function` where `id` = '".$id."'");
header('Location: ?mode=functions');
break;
default:
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?mode=func_del&do=yes&id='.$id.'">'.language('Да').'</a>
<a class="dialog_m" href="?mode=functions">'.language('Нет').'</a>
</div>';
}
} else header('Location: ?mode=functions');
break;
///главное меню
default:
$diz -> head('Группы');
$diz -> title('Группы');
echo '<div class="but_razdel">
<div class="button_razdel" style="width:50%"/><b>'.language('Группы').'</b></div>
<a href="?mode=functions" class="button_razdel" style="width:50%">'.language('Функции').'</a></div>';
echo '<div class="menu"><a href="?mode=new" class="menutuch">'.$diz -> icon('settings.png').' '.language('Создать').'</a></div>';
$sql = $db -> query("SELECT * FROM `user_groups`");
if ($sql -> num_rows > 0) {
//оптимизация групп
$db -> query("UPDATE `user_groups` SET `sort` = '1' WHERE `sort`<'1'");
//
$sql = $db -> query("SELECT * FROM `user_groups` ORDER BY `sort`");
while ($group = $sql -> fetch_assoc()) {
//подсчёт кол-ва человек в группе
$group_peoples = $db -> dbcount('COUNT(`id`)','groups_users','`group`="'.$group['id'].'"');
//вывод
echo '<div class="fon">
'.$group['sort'].') '.language('Название').': <span class="text">'.$group['name'].'</span> (ID: <span class="text">'.$group['id'].'</span>)</br>
'.language('Пользователей').': <span class="count">'.$group_peoples.'</span><br/>
'.language('Привилегии').':';
$array_function=$admin->group_functions($group['id']);
if($array_function!=null){
foreach($array_function as $value)
{
echo '<br/><span class="text">'.$admin->function_name($value).'</span>';
}
}else echo ' '.language('Нет');
echo '<br/>'.language('Информация').': <span class="text">'; if(mb_strlen($func->delprobel($group['info']))>1) echo $group['info']; else echo language('Отсутствует');
echo '</span><br/>'.language('Дата создания').': <span class="date">'.$func->times(date('d m Y',ustime($ya['gmt'],$group['time']))).'</span>';
echo '</div>';
//функции
echo '<div class="zap">';
echo '<a class="zap_b" href="?mode=edit&id='.$group['id'].'">'.language('Редактировать').'</a>';
if($group['id']!=1)echo '<a class="zap_b" href="?mode=del&id='.$group['id'].'">'.language('Удалить').'</a>'; //группу под ID=1 удалить нельзя
if ($sql -> num_rows != 1)echo '<a class="zap_b" href="?mode=up&id='.$group['id'].'">'.language('Вверх').'</a>';
if ($sql -> num_rows != 1)echo '<a class="zap_b" href="?mode=foot&id='.$group['id'].'">'.language('Вниз').'</a>';
echo '</div>';
}
}else echo'<div class="fon">'.language('Список пуст').'</div>';
}
echo '<div class="levo"><a href="./" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Управление').'</a></div>';
echo '<div class="levo"><a href="'.ROOT.'" class="levo_tuch">'.$diz -> icon('home.png').' '.language('На главную').'</a></div>';
#####Копирайт#######
$diz -> out($msg);
?>