<?php
define('NTLCMS', 1);
$module = 'panel';
include ('../system/start.php');
include ('../system/function.php');
include ('../system/antidos.php');
include ('../system/head.php');
################################################################################
if ($active && $_USER['admin'] == '1'){
################################################################################
switch($act){
default:
echo '<div class="title"><b>'.razd.' Админ-Панель | Бан/Разбан</b></div>';
################################################################################
echo '<div class="menu"><i class="fa fa-expeditedssl fa-fw"></i> <a href="'.URL.'/_ban-add">Банить юзера</a></div>';				
			
$k_post = DB :: run() -> querySingle("select count(`id`) from `ban`");			
 
$k_page = k_page($k_post, $onpage); 
$page = page($k_page); 
$start = $onpage * $page - $onpage;
			
$sql = DB :: run() -> query("select * from `ban` where `id` order by `id` desc limit ".$start.", ".$onpage);

if ($k_post == 0){
echo '<div class="post"><center><i class="fa fa-close fa-fw"></i> Забаненных еще нет!</center></div>';
} else {
echo '<table border="1" class="menu" width="100%"><tr><td><center>Логин</center></td><td><center>Срок бана</center></td>
<td><center>Причина бана</center></td><td><center>Действие</center></td></tr>';
while ($row = $sql -> fetch(PDO::FETCH_OBJ)){
echo '<tr><td><center>'.login($row -> who, 1).'</center></td><td><center>'.date('d.m.Y H:i', $row -> date).'</center></td>
<td><center>'.checkout($row -> reason).'</center></td><td><center><a href="'.URL.'/_ban-unban'.((int) $row -> id).'">Разбанить</a></center></td></tr>';
}
echo '</table>';

if ($k_page > 1) navigation(URL.'/_ban?', $k_page, $page);
}
echo '<div class="block"><i class="fa fa-home fa-fw"></i> <a href="'.URL.'/cabinet">В кабинет</a> | <a href="'.URL.'/_control">Админ-Панель</a></div>';
break;
################################################################################		
case 'add':
echo '<div class="title"><b>'.razd.' Админ-Панель | Банить юзера</b></div>';

$error = null;
				
if (isset($_POST['name']) && isset($_POST['text']) && isset($_POST['quantity'])){

$name = isset($_POST['name']) ? filter_var($_POST['name'], FILTER_SANITIZE_STRING) : false;
$reason = isset($_POST['text']) ? filter_var($_POST['text'], FILTER_SANITIZE_STRING) : false;
$stop = TIME + ($_POST['quantity'] * $_POST['that']);

if (empty($name)){
          $error.= 'Введите логин пользователя!<br/>';
} elseif(!preg_match('#[a-zA-Z0-9_-]{3,15}#i', $name)){
          $error.= 'Логин должен содержать от 3 до 15 символов!<br/>';
} elseif(!DB :: run() -> querySingle("select (`login`) from `users` where `login` = ?", array($name))){
          $error.= 'Пользователь '.$name.' не найден в системе!<br/>';
} elseif(preg_match('/([a-zA-Zа-яА-Я])+([0-9]{6})|(\s)|(\W)/', $name)){
          $error.= 'Спец символы в логинах запрещены!<br/>';
} elseif ($name == ADMINS()){
          $error.= 'Администратора нельзя заблокировать!<br/>';
} elseif ($ulogin == $name){
          $error.= 'Вы не можете себя заблокировать!<br/>';
}

if (empty($reason)){
          $error.= 'Введите причину бана!<br/>';
} elseif (mb_strlen($reason, 'UTF-8') < 2 or mb_strlen($reason, 'UTF-8') > 250){
          $error.= 'Причина должна содержать от 2 до 250 символов!<br/>';
}

if (empty($_POST['quantity'])){
          $error.= 'Введите срок бана!<br/>';
} elseif(!preg_match('#[0-9]{1,4}#i', $_POST['quantity'])){
          $error.= 'Срок бана должен содержать от 1 до 4 цифр!<br/>';
}

if ($error) {
echo '<div class="post"><center><i class="fa fa-close fa-fw"></i> '.$error.'</center></div>';
} else {

if (DB :: run() -> query("insert into `ban` (`admin`, `time`, `date`, `who`, `reason`) values (?, ?, ?, ?, ?)", array($ulogin, TIME, $stop, $name, $reason))){

header('Location: '.URL.'/_ban');
$_SESSION['success'] = 'Пользователь успешно забанен!';
} else {
echo '<div class="post"><center><i class="fa fa-close fa-fw"></i> Пользователь не забанен!</center></div>';
}
}
}
				
echo '<div class="menu"><form name="form" action="'.URL.'/_ban-add" method="post">
* Логин юзера:<br/><input type="text" name="name" maxlength="15" value="'.checkout($_GET['login']).'"/><br/>
* Причина бана:<br/><textarea name="text" rows="4" cols="40"></textarea><br/>
* Cpoк бана юзера:<br/>
<input name="quantity" size="4" maxlength="4" type="text"/>
<select name="that" size="1">
<option value="60">мин</option>
<option value="86400">днeй</option>
<option value="604800">нeдeль</option>
<option value="2419200">мecяцeв</option>
</select><br/> 
<input type="submit" value="Банить юзера"/></form></div>';

echo '<div class="block"><i class="fa fa-home fa-fw"></i> <a href="'.URL.'/cabinet">В кабинет</a> | <a href="'.URL.'/_ban">Бан/Разбан</a> | <a href="'.URL.'/_control">Админ-Панель</a></div>';		

break;
################################################################################
case 'unban':

if (isset($_GET['id'])){

$id = isset($_GET['id']) ? filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT) : '0';

if (DB :: run() -> querySingle("select count(`id`) from `ban` where `id` = ?", array($id))){
DB :: run() -> query("delete from `ban` where `id` = ?", array($id));
header('Location: '.URL.'/_ban');
$_SESSION['success'] = 'Пользователь разбанен!';
} else {
header('Location: '.URL.'/_ban');
$_SESSION['fail'] = 'Пользователь не разбанен!';
}
} else {
header('Location: '.URL.'/_ban');
$_SESSION['fail'] = 'Действие запрещено!';
}

break;
################################################################################
}
} else {
echo '<div class="title"><center>Проверка прав доступа</center></div>';
echo '<div class="menu"><center><i class="fa fa-close fa-fw"></i> Доступ запрещен!</center></div>';
echo '<div class="block"><i class="fa fa-home fa-fw"></i> '.(isset($active) ? '<a href="'.URL.'/cabinet">В кабинет</a>' : '<a href="'.URL.'">На главную</a>').'</div>';
}

include ('../system/foot.php');
?>