Файл: Arhmobi_esdcms/support/tiket.php
Строк: 84
<?php
/*
* Модуль: Поддержака сайта(Тикеты)
* Автор: LeXoN
* Моя анкета: http://dcms.su/profile.view.php?id=2843
* Сайт: DcmsTema.ru
*/
include_once '../sys/inc/start.php';
$doc = new document(1);
$doc->title = __('Просмотр тикета');
//Проверка на передачу ИД
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
header('Refresh: 1; url=./');
$doc->err(__('Ошибка выбора тикета'));
exit;
}
//Присвоение ИД к пременой ** $id_tiket
$id_tiket = (int) $_GET['id'];
//Проверка на существования тикита с таким ИД
$q = $db->prepare("SELECT * FROM `tiket` WHERE `id` = ? LIMIT 1");
$q->execute(Array($id_tiket));
if (!$tiket = $q->fetch()) {
if (isset($_GET['return']))
header('Refresh: 1; url=' . $_GET['return']);
else
header('Refresh: 1; url=./');
$doc->err(__('Тикет не существует'));
exit;
}
$autor = new user($tiket['id_user']);//Автор тикета
//Страничка только для автора и администрации
if (($autor->id == $user->id)||($user->group >= 3)){}else{
header('Refresh: 1; url=./');
$doc->err(__('Доступ запрещен'));
exit;
}
if (isset($_POST['send']) && isset($_POST['message']) && isset($_POST['token']) && $user->group) {
$message = (string)$_POST['message'];
$message = text::input_text($message);
if (!antiflood::useToken($_POST['token'], 'tiket')) {
// нет токена (обычно, повторная отправка формы)
} elseif ($dcms->censure && $mat = is_valid::mat($message)) {
$doc->err(__('Обнаружен мат: %s', $mat));
} elseif ($message) {
$res = $db->prepare("INSERT INTO `tiket_kom` (`id_list`, `id_user`, `msg`, `time`, `otv`) VALUES (?,?, ?, ?, ?)");
$res->execute(Array($tiket['id'],$user->id,$message,TIME,$user->id==$autor->id ? '0':'1'));
header('Refresh: 1; url=?id='.$tiket['id'].'&' . passgen() . '&' . SID);
$doc->ret(__('Вернуться'), '?id='.$tiket['id'].'&' . passgen());
$doc->msg(__('Сообщение успешно отправлено'));
if($user->id != $autor->id){
$autor->mess("[user]{$user->id}[/user] ответил" . ($user->sex ? '' : 'а') . " Вам в тикете [url=/support/tiket.php?id={$tiket['id']}]".text::toValue($tiket['name'])."[/url] :: [url=/support/tiket.php?id={$tiket['id']}]Перейти[/url]");
}else{
$users = groups::getAdmins();
foreach ($users AS $ank) {
$ank->mess("Новое сообщение в тикете [url=/support/tiket.php?id={$tiket['id']}]".text::toValue($tiket['name'])."[/url] :: [url=/support/tiket.php?id={$tiket['id']}]Перейти[/url]");
}
}
exit;
} else {
$doc->err(__('Сообщение пусто'));
}
}
$doc->title .= ': '.text::toValue($tiket['name']);
$listing = new listing();
$post = $listing->post();
$post->hightlight = true;
$post->icon("tiket.{$tiket['down']}");
$post->title = __('Вопрос').':';
$post->time = misc::when($tiket['time']);
$post->content = text::toOutput($tiket['msg']).'<br />';
$post->content .= text::toOutput('[b]'. __('Статус').':[/b]').'<br />';
if ($tiket['down'])
$post->content .= text::toOutput('[green]'. __('Открыт').'[/green]').'<br />';
else
$post->content .= text::toOutput('[red]'. __('Закрыт').'[/red]').'<br />';
if($autor->id !== $user->id)
$post->bottom = __('Добавил' . ($autor->sex? '':'а').': %s',$autor->show());
$listing->display();
$pages = new pages($db->query("SELECT COUNT(*) FROM `tiket_kom` WHERE `id_list` = '$tiket[id]'")->fetchColumn());
if ($pages->this_page == 1 && $tiket['down']==1) {
$form = new form('?id='.$tiket['id'].'&' . passgen());
$form->refresh_url('?id='.$tiket['id'].'&' . passgen());
$form->hidden('token', antiflood::getToken('tiket'));
$form->textarea('message', ($autor->id == $user->id ? __('Сообщение'):__('Ответ на тикет')));
$form->button(__('Отправить'), 'send', false);
$form->display();
}
$listing = new listing();
$q = $db->query("SELECT * FROM `tiket_kom` WHERE `id_list` = '$tiket[id]' ORDER BY `time` DESC LIMIT ".$pages->limit);
if ($arr = $q->fetchAll()) {
foreach ($arr AS $kom) {
$ank = new user($kom['id_user']);
$post = $listing->post();
$post->image = $ank->ava();
$post->time = misc::when($kom['time']);
if($ank->id == $autor->id)
$post->title = __('Сообщение (%s)',$ank->nick).':';
else
$post->title = __('Ответ (%s)',$ank->nick).':';
$post->post = text::toOutput($kom['msg']);
if ($user->group >= 3){
$post->action('edit', 'kom.action.php?id='.$tiket['id'].'&id_kom='.$kom['id'].'&act=edit'); // редактирование
$post->action("delete", 'kom.action.php?id='.$tiket['id'].'&id_kom='.$kom['id'].'&act=delete');
}elseif ($user->id == $ank->id && TIME < $kom['time'] + 600) {
// автору сообщения разрешается его редактировать в течении 10 минут
$post->action('edit', 'kom.action.php?id='.$tiket['id'].'&id_kom='.$kom['id'].'&act=edit'); // редактирование
}
}}
$listing->display(__('Ответы отсутствуют'));
$pages->display('?id='.$tiket['id'].'&'); // вывод страниц
if (($user->group >= 3 || $user->id==$autor->id)&& $tiket['down']==1)
$doc->act(__('Закрыть тикет'), 'act.php?id='.$tiket['id'].'&act=clous');
if (($user->group >= 3)&& $tiket['down']==0)
$doc->act(__('Открыть тикет'), 'act.php?id='.$tiket['id'].'&act=clous');
if ($user->group >= 3)
$doc->act(__('Удалить тикет'), 'act.php?id='.$tiket['id'].'&act=delete');
if ($user->group >= 3 ){
$doc->ret(__('Все тикеты (Админка) '), '/dpanel/adm.tiket.php');
$doc->ret(__('Тикеты %s',$autor->nick), 'index.php?id='.$autor->id);
}
$doc->ret(__('Мои тикеты'), '/support/');