Файл: moduls/tikets/info.php
Строк: 77
<?php
require ($_SERVER['DOCUMENT_ROOT'].'/core/sys.php');
$id = intval($_GET['id']);
$mb = $db->prepare('SELECT * FROM `tikets` WHERE `id` = ?');
$mb -> execute([$id]);
$mb = $mb -> fetch(PDO::FETCH_LAZY);
$title = 'Просмотр тикета '.$mb->name;
require ($_SERVER['DOCUMENT_ROOT'].'/core/head.php');
/*Тут проверяем полномочия юзера к тикету*/
if(!isset($user)){
header('Location: /');
exit;
}
if($mb == 0) $msg = ('Такого тикета не существует !');
if($mb->us != $user['id'] && $user['id'] != 1) $msg = ('Вам данный тикет не доступен!');
/*Выполняем всякие задания внутри тикета*/
if (isset($_GET['close'])) {
if($mb->open == 0){
$sql = $db->prepare('UPDATE `tikets` SET `open` = ?,`stat` = ? WHERE `id` = ?');
$sql -> execute([1,0,$id]);
$msg = ('Вы закрыли тикет!');
}else{
$sql = $db->prepare('UPDATE `tikets` SET `open` = ?,`stat` = ? WHERE `id` = ?');
$sql -> execute([0,2,$id]);
$msg = ('Вы открыли тикет!');
}
}
if (isset($_GET['acept'])) {
if($user['id'] != 1 and $user['id'] == $mb->us){
$msg = ('Ошибка!');
}
if($mb->ved != 0 ){
$msg = ('Ошибка!');
}
$sql = $db->prepare('UPDATE `tikets` SET `ved` = ? WHERE `id` = ?');
$sql -> execute([$user['id'],$id]);
exit(header('Location: /my/tikets/info_'.$id.'.aspx'));
}
if(isset($msg)){
$_SESSION['message'] = $msg;
exit(header('Location: /my/tikets.aspx'));
}
/*END*/
/*Задаем в переменных всю важную информацию на вывод*/
$users = nick($mb->us);
$times = vremja($mb->time);
if($mb->text) $texts = bb($mb->text); else $texts = '<blockquote><font color="red">Данный тикет был создан администрацией сайта '.$_SERVER['HTTP_HOST'].'!</font><br />Просим вас не оставлять без ответа данный тикет!</blockquote>';
$rv = array('1'=>'Низкая','2'=>'Средняя','3'=>'Высокая');
$Importance = $rv[$mb->vazh];
if($mb->ved == 0) $ved = 'Вся администрация'; else $ved = nick($mb->ved);
/*End*/
echo '
<div class="row">
<div class="col-md-3 mt-4">';
echo "
<div class='panel panel-info'>
<div style='padding:15px;' class='panel-heading'><h4 class='panel-title'>$title</h4></div>
<div class='panel-body'>
<a class='list-group-item'>$users <span class='right'>{$times}</span></a>
<a class='list-group-item'>{$texts}</a>
</div>
<div style='padding:15px;' class='footer'><h4 class='panel-title'> Отвественный за тему : {$ved}<br />Важность вопроса : {$Importance}</h4></div>
</div>
";
if($user['id'] == 1){
echo '<div style="text-align: center;">
<button type="button" data-toggle="dropdown" class="btn btn-success my-2 my-sm-0" >Управление</button>
<ul class="dropdown-menu">
<li><a href="/my/tikets/info_'.$id.'.aspx?close">
';
if($mb->open == 0)
echo 'Закрыть тикет';
else
echo 'Открыть тикет';
echo '</a></li>';
if($user['id'] == 1 and $user['id'] != $mb->us and $mb->ved == 0){
echo '<li><a href="/my/tikets/info_'.$id.'.aspx?acept">';
echo 'Принять тикет';
}
echo '</a>
</li></ul>
</div>';
}
echo '</div>
<div class="col-md-9 mt-4"><div class="card">';
/*Comments*/
$k_post = $db->prepare("SELECT * FROM `tikets_msg` WHERE `id_tik` = ?");
$k_post -> execute([$id]);
$k_post = $k_post -> rowCount();
if($k_post == 0){
?><div class="box"><center>Ответов на данное обращение пока нет! </center></div><?
}
$max = 10;
$k_page = k_page($k_post,$max);
$page = page($k_page);
$start = $max*$page-$max;
$all = $db->prepare("SELECT * FROM `tikets_msg` WHERE `id_tik` = ? ORDER BY `id` ASC LIMIT $start, $max");
$all -> execute([$id]);
$all = $all -> fetchAll();
foreach($all as $a){
/*Всякие переменные*/
$us_log = nick($a['us']);
$times = vremja($a['time']);
$text = nl2br($a['text']);
/*END*/
echo "<div class='card-body'><a class='list-group-item'>{$us_log} <span class='right'>{$times}</span></a>
<a class='list-group-item'>{$text}</a></div>";
}
echo '</div>';
if($k_page >1){
echo str('/my/tikets/info_'.$id.'.aspx',$k_page,$page);
}
/*Comments new*/
if (isset($_REQUEST['submit'])) {
if ( isset( $_SESSION['csrf_token'] ) && $_SESSION['csrf_token'] == @$_POST['csrf_token'] )
{
if($mb->open != 0) $msg = ('Тикет был закрыт вы не можете отвечать на него !');
$text = htmlspecialchars(trim($_POST['text']));
if (empty($text)) $msg = ('Текст сообщения не заполнен!');
if (mb_strlen($text) > 99999 or mb_strlen($text) < 5) $msg = ('Введите текст сообщения от 5 до 99999 символов!');
if($user['id'] != 1){
$sql = $db->prepare('UPDATE `tikets` SET `stat` = ?, `time` = ? WHERE `id` = ?');
$sql -> execute([2,time(),$mb->id]);
}else{
$sql = $db->prepare('UPDATE `tikets` SET `stat` = ?, `time` = ? WHERE `id` = ?');
$sql -> execute([1,time(),$mb->id]);
}
if(isset($msg)){
$_SESSION['message'] = $msg;
}else{
$sql = $db->prepare('INSERT INTO `tikets_msg` SET `us` = ?,`text` = ?,`time` = ?,`id_tik` = ?');
$sql -> execute([$user['id'],$text,time(),$id]);
}
exit(header('Location: /my/tikets/info_'.$id.'.aspx'));
}
}
if($mb->open == 0)
echo '
<div class="col-md-6 mt-4"><h3>Новое сообщение</h3></div>
<div class="col-md-6 mt-4"></div>
<div class="card">
<div class="card-body">
<form action="" method="POST">
<input name="csrf_token" type="hidden" value="'.generate_form_token( ).'" />
Текст :<br /><textarea class="form-control" name="text"></textarea><br />
<input type="submit" name="submit" class="btn--default hover" value="Отправить">
</form>
</div></div>';
echo '</div>';
require ($_SERVER['DOCUMENT_ROOT'].'/core/foot.php');