<?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-plus-square fa-fw"></i> <a href="'.URL.'/_news-add">Добавить новость</a></div>';				

$k_post = DB :: run() -> querySingle("select count(`id`) from `news`");
 
$k_page = k_page($k_post, $onpage); 
$page = page($k_page); 
$start = $onpage * $page - $onpage;
			
$sql = DB :: run() -> query("select * from `news` 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 {
while ($row = $sql -> fetch(PDO::FETCH_OBJ)){

echo '<div class="menu"><i class="fa fa-feed fa-fw"></i> <b>'.checkout($row -> name).'</b> ['.date('d.m H:i', $row -> date).'] ';
echo '[<a href="'.URL.'/_news-del'.((int) $row -> id).'">Удал</a>]';
echo '[<a href="'.URL.'/_news-edit'.((int) $row -> id).'">Изм</a>]';			
echo '<br/><i class="fa fa-file-text-o fa-fw"></i> '.outtext($row -> text, 1, 1, 1).'</div>';			
}
if ($k_page > 1) navigation(URL.'/_news?', $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'])){				

$view = isset($_POST['view']) ? filter_var($_POST['view'], FILTER_SANITIZE_NUMBER_INT) : '0';
$name = isset($_POST['name']) ? filter_var($_POST['name'], FILTER_SANITIZE_STRING) : false;
$text = isset($_POST['text']) ? filter_var($_POST['text'], FILTER_SANITIZE_STRING) : false;

if (empty($name)){
          $error.= 'Введите название новости!<br/>';
} elseif (mb_strlen($name, 'UTF-8') < 5 or mb_strlen($name, 'UTF-8') > 100){
          $error.= 'Название должно содержать от 5 до 100 символов!<br/>';
}

if (empty($text)){
          $error.= 'Новость не должна быть пуста!<br/>';
} elseif (mb_strlen($text, 'UTF-8') < 5 or mb_strlen($text, 'UTF-8') > 1000){
          $error.= 'Новость должна содержать от 5 до 1000 символов!<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 `news` (`date`, `name`, `view`, `author`, `text`) values (?, ?, ?, ?, ?)", array(TIME, $name, $view, $ulogin, $text))){

$news = DB :: run() -> lastInsertId();

$sql = DB :: run() -> query("select * from `users`");		
		
if (DB :: run() -> querySingle("select * from `users`")){
while ($row = $sql -> fetch(PDO::FETCH_OBJ)){
DB :: run() -> query("insert into `notice` (`to`, `date`, `status`, `tema`, `text`) values (?, ?, ?, ?, ?)", array($row -> login, TIME, 1, 'Системное', 'Добавлена свежая [url='.URL.'/feed_review'.$news.']новость[/url]!'));
}
}

$_SESSION['success'] = 'Новость успешно добавлена!';
header('Location: '.URL.'/_news');

} else {
$_SESSION['fail'] = 'Новость не добавлена!';
header('Location: '.URL.'/_news');
}
}
}				
echo '<div class="menu"><form name="form" action="'.URL.'/_news-add" method="post">
* <b>Название:</b><br/><input type="text" name="name" maxlength="500"/><br/>
* <b>Текст новости:</b><br/><textarea name="text" rows="4" cols="40"></textarea><br/>
* <b>Выводить на главной:</b> <input type="checkbox" name="view" value="1"'.check(1, $_POST['view']).'"/><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.'/_control">Админ-Панель</a></div>';			

break;
################################################################################
case 'edit':
echo '<div class="title"><b>'.razd.' Админ-Панель | Изменить новость</b></div>';

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

$sql = DB :: run() -> query("select * from `news` where `id` = ?", array($id));

if (DB :: run() -> querySingle("select count(`id`) from `news` where `id` = ?", array($id))){

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

$view = isset($_POST['view']) ? filter_var($_POST['view'], FILTER_SANITIZE_NUMBER_INT) : '0';
$name = isset($_POST['name']) ? filter_var($_POST['name'], FILTER_SANITIZE_STRING) : false;
$text = isset($_POST['text']) ? filter_var($_POST['text'], FILTER_SANITIZE_STRING) : false;

if (empty($name)){
          $error.= 'Введите название новости!<br/>';
} elseif (mb_strlen($name, 'UTF-8') < 5 or mb_strlen($name, 'UTF-8') > 100){
          $error.= 'Название должно содержать от 5 до 100 символов!<br/>';
}

if (empty($text)){
          $error.= 'Новость не должна быть пуста!<br/>';
} elseif (mb_strlen($text, 'UTF-8') < 5 or mb_strlen($text, 'UTF-8') > 1000){
          $error.= 'Новость должна содержать от 5 до 1000 символов!<br/>';
}


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

} else {

if (DB :: run() -> query("update `news` set `name` = ?, `view` = ?, `author` = ?, `text` = ? where `id` = ?", array($name, $view, $ulogin, $text, $id))){

header('Location: '.URL.'/_news');
$_SESSION['success'] = 'Новость успешно cохранена!';
} else {
echo '<div class="post"><center><i class="fa fa-close fa-fw"></i> Ошибка при сохранении новости!</center></div>';
}
}
}

$row = $sql -> fetch(PDO::FETCH_OBJ);

echo '<div class="menu"><form name="form" action="'.URL.'/_news-edit'.((int) $row -> id).'" method="post">
* <b>Название:</b><br/><input type="text" name="name" maxlength="500" value="'.checkout($row -> name).'"/><br/>
* <b>Текст новости:</b><br/><textarea cols="40" rows="4" name="text">'.checkout($row -> text).'</textarea><br/>
* <b>Выводить на главной:</b> <input type="checkbox" name="view" value="1"'.check(1, $row -> view).'"/><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.'/_control">Админ-Панель</a></div>';

} else {
header('Location: '.URL.'/_news');
}
break;
################################################################################
case 'delete':

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 `news` where `id` = ?", array($id))){
DB :: run() -> query("delete from `news` where `id` = ? limit 1", array($id)) &&
DB :: run() -> query("delete from `comment` where `pid` = ?", array($id));
DB :: run() -> query("delete from `views` where `news` = ?", array($id)) &&
DB :: run() -> query("delete from `like` where `news` = ?", array($id));

header('Location: '.URL.'/_news');

$_SESSION['success'] = 'Новость успешно удалена!';
} else {
header('Location: '.URL.'/_news');
$_SESSION['fail'] = 'Новость не удалена!';
}
} else {
header('Location: '.URL.'/_news');
$_SESSION['fail'] = 'Действие запрещено!';
}

break;
################################################################################
}
} else {
echo '<div class="title"><b>'.razd.' Проверка прав доступа</b></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');
?>