Вход Регистрация
Файл: 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 {
$nameshit($_POST['name']);
$infoshit($_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']==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']==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 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 {
$nameshit($_POST['name']);
$codeshit($_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 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 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);
?>
Онлайн: 0
Реклама