<?php
/* DCMS Special
* Дата последнего редактирования 03.10.2016
* Модифицировал densnet
*/
foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'user') as $inc) {
require_once "../sys/inc/$inc.php";
}
only_reg();
$set['title'] = lang('Тикеты');
include_once H . 'sys/inc/thead.php';
aut();
if (isset($_GET['help'])) {
$support = $db->super_query("SELECT COUNT(*) as count FROM `support` WHERE `id` = '" . intval($_GET['help']) . "'");
if ($support['count']) {
$help = $db->get_row($db->query("SELECT * FROM `support` WHERE `id` = '" . intval($_GET['help']) . "' LIMIT 1"));
}
if (isset($_GET['close']) && $help['read'] != 2) {
$db->query("UPDATE `support` SET `read` = '2' WHERE `id` = '$help[id]';");
header("Location: ?help=$help[id]" . SID);
} elseif (isset($_GET['open']) && $help['read'] == 2) {
$db->query("UPDATE `support` SET `read` = '1' WHERE `id` = '$help[id]';");
header("Location: ?help=$help[id]" . SID);
}
if (isset($_POST['msg'])) {
$msg = $_POST['msg'];
$mat = antimat($msg);
if ($mat) {
$err[] = lang("В тексте сообщения обнаружен мат") . ": $mat";
}
if (utf8_strlen($msg) > 1024) {
$err = lang('Сообщение слишком длинное');
} elseif (utf8_strlen($msg) < 2) {
$err = lang('Короткое сообщение');
}
$k = $db->super_query("SELECT COUNT(*) as count FROM `support_msg` WHERE `id_t` = '" . intval($_GET['help']) . "' AND `id_user` = '$user[id]' AND `msg` = '" . $db->safesql($msg) . "' LIMIT 1");
if ($k['count'] != 0) {
$err = lang('Ваше сообщение повторяет предыдущее');
}
if (!isset($err)) {
$db->query("INSERT INTO `support_msg` (`id_user`, `time`, `msg`, `id_t`) values('$user[id]', '$time', '" . $db->safesql($msg) . "', '" . intval($_GET['help']) . "')");
$db->query("UPDATE `support` SET `read` = '0' WHERE `id` = '$help[id]';");
$_SESSION['message'] = lang('Сообщение успешно добавлено');
header("Location: /user/help.php?help=$help[id]");
exit;
}
}
err();
#Навигация
echo "<div class='list-group-item-null list-group-item-grey'><small>";
echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/?umenu'>" . lang('Кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/user/help.php'>" . lang('Тикеты') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo toOutput($help['name']);
echo "</small></div><br />";
echo '<div class="list-group-item-null list-group-item-grey">';
echo "<i class='fa fa-support fa-fw'></i> " . toOutput($help['name']);
echo " <small style='color: grey;'>" . date::times($help['time']) . "</small>\n";
echo "</div>";
echo '<div class="list-group-item-null">';
echo toOutput($help['msg']) . '<hr>';
$avtor = $db->get_row($db->query("SELECT * FROM `user` WHERE `id` = '$help[id_user]' LIMIT 1"));
echo lang('Автор') . ": ";
user($avtor['id']) . "<br />";
echo "<span style='float: right;'>";
if ($help['read'] != 2) {
echo "<a href='?help=$help[id]&close'><i class='fa fa-lock fa-fw'></i> " . lang('Закрыть') . "</a>";
} elseif ($help['read'] == 2) {
echo "<a href='?help=$help[id]&open'><i class='fa fa-unlock fa-fw'></i> " . lang('Открыть') . "</a>";
}
echo "</span>";
echo "</div>";
if ($help['read'] == 2) {
echo '<div class="list-group-item-null list-group-item-warning"><i class="fa fa-lock fa-fw"></i> ' . lang('Тикет закрыт') . '</div>';
}
echo "<div class='list-group-item-null list-group-item-grey'><i class='fa fa-comments-o fa-fw'></i> " . lang('Обсуждения') . "</div>";
$k_post = $db->super_query("SELECT COUNT(*) as count FROM `support_msg` WHERE `id_t` = '" . intval($_GET['help']) . "'");
$k_post = $k_post['count'];
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
$q = $db->query("SELECT * FROM `support_msg` WHERE `id_t` = '" . intval($_GET['help']) . "' ORDER BY `id` ASC LIMIT $start, $set[p_str]");
if ($k_post == 0) {
$doc->NoResult();
}
while ($post = $db->get_row($q)) {
$ank = get_user($post['id_user']);
echo "<table class='list-group-item-null'><tr><td class='icon14'>";
if ($help['id_user'] == $post['id_user']) {
echo avatar($ank['id'], '40', 'border-radius: 1px;');
} else {
echo "<img src='/style/icons/support.png' style='width: 40px;height: 40px;border-radius: 1px;' class='avatar'/>";
}
echo "</td><td class='null'>";
echo "<span style = 'float:right;color: grey;'><small class='hint--left' data-hint='" . date::time($post['time']) . "'>" . date::timek($post['time']) . "</small></span>";
if ($help['id_user'] == $post['id_user']) {
echo user($ank['id']) . " <br /> ";
} else {
echo "<b style='color: green;'><i class='fa fa-support fa-fw'></i> " . lang('Техническая поддержка') . "</b> <br /> ";
}
echo toOutput($post['msg']);
echo "</div>";
echo "</td></tr></table><div class='hr'></div>";
}
if ($k_page > 1) {
str("?help=" . intval($_GET['help']) . '&', $k_page, $page);
} // Вывод страниц
if ($help['read'] != 2) {
echo "<form method=\"post\" name='message' class='list-group-item-null' action=\"?help=" . intval($_GET['help']) . "&page=$page\">\n";
echo "" . lang('Сообщение') . ":<br />\n<textarea name=\"msg\" class='form-control'></textarea><br />\n";
$doc->Button('btn btn-success btn-sm', null, 'check', 'Отправить');
echo "</form>\n";
}
include_once H . 'sys/inc/tfoot.php';
exit;
}
if (isset($_GET['act']) && $_GET['act'] == 'add') {
if (isset($_POST['msg'])) {
$msg = $_POST['msg'];
$name = $db->safesql($_POST['name']);
$razdel = intval($_POST['razdel']);
if (utf8_strlen($name) > 50) {
$err[] = lang('Название превышает 50 символов');
}
if (utf8_strlen($name) < 2) {
$err[] = lang('Слишком короткое название');
}
if (utf8_strlen($msg) > 1024) {
$err[] = lang('Сообщение превышает 1024 символа');
}
if (utf8_strlen($msg) < 10) {
$err[] = lang('Слишком короткое обращение');
}
if (!isset($err)) {
$k = $db->super_query("SELECT COUNT(*) as count FROM `support` WHERE `id_user` = '$user[id]' AND`time` > '" . ($time - 360) . "' AND `msg` = '" . $db->safesql($msg) . "'");
if ($k['count'] == 0) {
$db->query("INSERT INTO `support` (`name`, `id_user`, `msg`, `razdel`, `time`) values('$name' , '$user[id]', '" . $db->safesql($msg) . "', '$razdel' , '$time')");
$_SESSION['message'] = lang('Ваше обращение отправлено');
header("Location: /user/help.php");
exit;
}
}
}
err();
#Навигация
echo "<div class='list-group-item-null list-group-item-grey'><small>";
echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/?umenu'>" . lang('Кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/user/help.php'>" . lang('Тикеты') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo lang('Новый тикет');
echo "</small></div><br />";
echo "<form method='post' name='message' enctype='multipart/form-data' action='?act=add&$passgen' class='list-group-item-null'>\n";
$doc->Input('name', 'Название тикета', 50, null, 'form-control', 'text', 'required');
echo lang('Раздел') . ":<br />\n<select name='razdel' class='custom-select'>\n";
echo "<option value='6'>" . lang('Другое') . "</option>\n";
echo "<option value='5'>" . lang('Прошу обратить внимание') . "</option>\n";
echo "<option value='4'>" . lang('Выложены запрещенные файлы') . "</option>\n";
echo "<option value='3'>" . lang('Меня оскорбляют') . "</option>\n";
echo "<option value='2'>" . lang('Не работает') . "...</option>\n";
echo "<option value='1'>" . lang('Не могу разобраться') . "</option>\n";
echo "<option value='0'>" . lang('Ошибка или уязвимость на сайте') . "</option>\n";
echo "</select><br />\n";
$doc->Textarea('msg', 'Описание обращения');
echo "<br />";
$doc->Button('btn btn-success btn-sm', null, 'save', 'Сохранить и отправить');
echo "</form>";
include_once H . 'sys/inc/tfoot.php';
exit;
}
#Навигация
echo "<div class='list-group-item-null list-group-item-grey'><small>";
echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/?umenu'>" . lang('Кабинет') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo lang('Тикеты');
echo "</small></div><br />";
$k_post = $db->super_query("SELECT COUNT(*) as count FROM `support` WHERE `id_user` = '$user[id]'");
$k_post = $k_post['count'];
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
if ($k_post == 0) {
$doc->NoResult();
}
$q = $db->query("SELECT * FROM `support` WHERE `id_user` = '$user[id]' ORDER BY id DESC LIMIT $start, $set[p_str]");
while ($post = $db->get_array($q)) {
echo "<div class='list-group-item-null'>\n";
echo "<span style='float: right;color: grey;'>" . date::timek($post['time']) . "</span>\n";
echo "<a href='?help=$post[id]'><i class='fa fa-support fa-fw'></i> " . toOutput($post['name']) . "</a><br />\n";
if ($post['read'] == 0) {
echo "<small style='color: red;'><i class='fa fa-unlock fa-fw'></i> " . lang('обрабатывается') . "</small>";
} elseif ($post['read'] == 1) {
echo "<small style='color: green;'><i class='fa fa-lock fa-fw'></i> " . lang('обработан') . "</small>";
} else {
echo "<small style='color: grey;'><i class='fa fa-lock fa-fw'></i> " . lang('закрыт') . "</small>";
}
echo "</div>\n";
echo "<div class='hr'></div>";
}
if ($k_page > 1) {
str("?", $k_page, $page);
}
echo "<a href='?act=add' class='list-group-item-null list-group-item-grey'><i class='fa fa-plus fa-fw'></i> " . lang('Добавить тикет') . "</a><br />\n";
include_once H . 'sys/inc/tfoot.php';
?>