3
* EngineGP (https://enginegp.ru or https://enginegp.com)
5
* @copyright Copyright (c) 2018-present Solovev Sergei <inbox@seansolovev.ru>
7
* @link https://github.com/EngineGPDev/EngineGP for the canonical source repository
9
* @license https://github.com/EngineGPDev/EngineGP/blob/main/LICENSE MIT License
13
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
16
// Отправка сообщения / Удаление сообщения
17
if (isset($url['action']) and in_array($url['action'], ['reply', 'remove', 'read', 'write'])) {
18
include(SEC . 'help/action/' . $url['action'] . '.php');
22
sys::back($cfg['http'] . 'help/section/open');
25
if (in_array($user['group'], ['admin', 'support'])) {
26
$sql->query('SELECT `type`, `service`, `status`, `date`, `close` FROM `help` WHERE `id`="' . $id . '" LIMIT 1');
28
$sql->query('SELECT `type`, `service`, `status`, `date`, `close` FROM `help` WHERE `id`="' . $id . '" AND `user`="' . $user['id'] . '" LIMIT 1');
32
sys::back($cfg['http'] . 'help/section/open');
37
// Смена статуса вопроса на "Прочитан"
38
if ($user['group'] == 'user' and !$help['status']) {
39
$sql->query('UPDATE `help` set `status`="2", `notice`="1" WHERE `id`="' . $id . '" LIMIT 1');
44
'admin' => 'Администратор',
45
'support' => 'Техническая поддержка',
49
include(LIB . 'help.php');
50
include(LIB . 'users.php');
54
$dialogs = $sql->query('SELECT `id`, `user`, `text`, `img`, `time` FROM `help_dialogs` WHERE `help`="' . $id . '" ORDER BY `id` DESC LIMIT 50');
55
while ($dialog = $sql->get($dialogs)) {
56
unset($html->arr['attachment']);
58
$images = sys::b64djs($dialog['img']);
60
if (is_array($images)) {
61
foreach ($images as $img) {
62
$html->get('attachment', 'sections/help/dialog');
64
$html->set('img', $img);
65
$html->set('home', $cfg['http']);
67
$html->pack('attachment');
71
$html->get('msg', 'sections/help/dialog');
73
if ($user['id'] != $dialog['user']) {
74
if (!$dialog['user']) {
75
$html->set('sender', 'Автоматическое сообщение');
77
if (isset($aSender[$dialog['user']])) {
78
$html->set('sender', $aSender[$dialog['user']]);
82
$sql->query('SELECT `name`, `group`, `support_info` FROM `users` WHERE `id`="' . $dialog['user'] . '" LIMIT 1');
85
if ($us['support_info'] != '') {
86
$aSender[$dialog['user']] = $us['name'] . ' (' . $us['support_info'] . ')';
88
$aSender[$dialog['user']] = $us['name'] . ' (' . $aGroup[$us['group']] . ')';
93
$sql->query('SELECT `login`, `group`, `support_info` FROM `users` WHERE `id`="' . $dialog['user'] . '" LIMIT 1');
96
if ($us['support_info'] != '') {
97
$aSender[$dialog['user']] = $us['login'] . ' (' . $us['support_info'] . ')';
99
$aSender[$dialog['user']] = $us['login'] . ' (' . $aGroup[$us['group']] . ')';
104
$sql->query('SELECT `mail`, `group`, `support_info` FROM `users` WHERE `id`="' . $dialog['user'] . '" LIMIT 1');
107
if ($us['support_info'] != '') {
108
$aSender[$dialog['user']] = $us['mail'] . ' (' . $us['support_info'] . ')';
110
$aSender[$dialog['user']] = $us['mail'] . ' (' . $aGroup[$us['group']] . ')';
115
$sql->query('SELECT `name`, `patronymic`, `group`, `support_info` FROM `users` WHERE `id`="' . $dialog['user'] . '" LIMIT 1');
118
if ($us['support_info'] != '') {
119
$aSender[$dialog['user']] = $us['name'] . ' ' . $us['patronymic'] . ' (' . $us['support_info'] . ')';
121
$aSender[$dialog['user']] = $us['name'] . ' ' . $us['patronymic'] . ' (' . $aGroup[$us['group']] . ')';
125
$html->set('sender', $aSender[$dialog['user']]);
129
$html->set('sender', 'Я');
132
$html->set('id', $dialog['id']);
133
$html->set('uid', $dialog['user']);
134
$html->set('help', $id);
135
$html->set('home', $cfg['http']);
136
$html->set('ava', users::ava($dialog['user']));
137
$html->set('text', $dialog['text']);
140
$html->set('time', $dialog['time'] < ($start_point - 600) ? sys::today($dialog['time']) : help::ago($dialog['time']));
142
$html->set('time', sys::today($dialog['time']) . ' ' . help::ago($dialog['time'], true));
145
if (isset($html->arr['attachment'])) {
146
$html->set('img', $html->arr['attachment']);
147
$html->unit('img', 1);
152
if ($user['group'] == 'admin') {
153
$html->unit('admin', 1);
155
$html->unit('admin');
158
$html->pack('dialog');
161
// Массив статусов вопроса
164
1 => 'Ожидается ответ',
168
if (isset($url['ajax'])) {
169
sys::outjs(['dialog' => ($html->arr['dialog'] ?? ''), 'status' => ($help['close'] ? 'Вопрос решен' : $status[$help['status']])]);
172
// Краткая информация вопроса
173
switch ($help['type']) {
175
$sql->query('SELECT `address` FROM `servers` WHERE `id`="' . $help['service'] . '" LIMIT 1');
177
$service = 'Игровой сервер: #' . $help['service'] . ' (не найден)';
180
$service = '<a href="' . $cfg['http'] . 'servers/id/' . $help['service'] . '" target="_blank"><u>Игровой сервер: #' . $help['service'] . ' ' . $ser['address'] . '</u></a>';
186
$service = '<a href="' . $cfg['http'] . 'hosting/id/' . $help['service'] . '" target="_blank"><u>Виртуальных хостинг: #' . $help['service'] . '</u></a>';
191
$service = 'Вопрос без определенной услуги';
194
$html->get('dialog', 'sections/help');
196
$html->set('id', $id);
197
$html->set('date', sys::today($help['date']));
198
$html->set('status', $help['close'] ? 'Вопрос решен' : $status[$help['status']]);
199
$html->set('service', $service);
200
$html->set('dialog', $html->arr['dialog'] ?? '');
202
if ($user['group'] == 'user') {
203
$html->unit('!user');
204
$html->unit('user', 1);
206
$html->unit('!user', 1);
212
$html->unit('close', 1);
214
$html->unit('open', 1);
215
$html->unit('close');