View file user/help.php

File size: 11.4Kb
<?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]&amp;close'><i class='fa fa-lock fa-fw'></i> " . lang('Закрыть') . "</a>";
    } elseif ($help['read'] == 2) {
        echo "<a href='?help=$help[id]&amp;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']) . '&amp;', $k_page, $page);
    } // Вывод страниц

    if ($help['read'] != 2) {
        echo "<form method=\"post\" name='message' class='list-group-item-null' action=\"?help=" . intval($_GET['help']) . "&amp;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';
?>