Перевод панели доведён до конца, скриншоты всех разделов, английское описание главным

Перевод
* Полный обход исходников скриптом, повторяющим логику подстановки: было
  видно 681 строку, которая осталась бы русской. Переведены все — словарь
  вырос с 640 до 1304 записей.
* Покрыты разделы, которых раньше не было в проверке: консоль сервера с
  описанием всех RCON-команд, планировщик задач, файрвол, базы MySQL, FTP,
  автоустановка модов, совладельцы, статистика сервера, страница аккаунта,
  сообщения планировщика и все письма.
* Убран ключ-предлог 'в' => 'at': он подменялся ВНУТРИ ещё не переведённых
  предложений и давал «at поле имя пользователя». Служебные слова переводятся
  только вместе с фразой.
* Формат даты 'd.m.Y в H:i' содержал русское «в» между датой и временем —
  теперь проходит через t() (31 вызов date() в 20 файлах), в английском
  режиме получается 30.07.2026 14:22.
* Абзацы FAQ разбиты по строкам вёрстки, атрибуты placeholder и tooltip
  добавлены отдельными ключами — раньше они не попадали в разбор.
* Живой обход 45 страниц в английском режиме: русскими остались 4 места, и
  все намеренно — подпись «Русский» у переключателя, коды языков игрового
  сервера в FAQ и регулярное выражение проверки имени.

Скриншоты
* docs/screenshots/{ru,en} — по 38 кадров: вход, регистрация, восстановление
  пароля, кабинет, заказ сервера, новости, статус, тикеты, FAQ, веб-хостинг и
  вся админка вместе со скрытыми вкладками настроек и переключателем капчи.
* docs/screenshots/README.md и README.ru.md — галереи, где каждый раздел
  показан на двух языках рядом.

Документация
* README.md теперь английский (главное описание), русский переехал в
  README.ru.md; в начале каждого — кнопка на другой язык.
* Добавлен раздел о доступных играх: 11 игр каталога с кодами,
  query-протоколами, диапазонами слотов и портов, плюс список ядер, которые
  клиент переключает в один клик.
* Добавлен раздел планов: больше игр по просьбам людей и современные
  платёжные системы — PayPal, Stripe, Lava.

Поддерживается и развивается с помощью REDL.IO.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 03:48:33 +00:00
co-authored by Claude Fable 5
parent e0b96d3501
commit 2e0eacbcea
106 changed files with 1876 additions and 878 deletions
+1 -1
View File
@@ -51,7 +51,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
Оплачен
<?php endif; ?>
</td>
<td class="text-right pt-7"><?php echo date("d.m.Y в H:i", strtotime($item['invoice_date_add'])) ?></td>
<td class="text-right pt-7"><?php echo date(t("d.m.Y в H:i"), strtotime($item['invoice_date_add'])) ?></td>
<td class="text-right pt-7"><?php echo $item['invoice_ammount'] ?> RUB.</td>
<td class="text-primary pr-0 pt-7 text-right"><?php echo $item['system'] ?></td>
</tr>
+46 -46
View File
@@ -1,47 +1,47 @@
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
*/
?>
<?php echo $header ?>
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
<div class="d-flex flex-column-fluid">
<div class="container">
<div class="row">
<?php foreach($waste as $item): ?>
<div class="col-xl-6">
<div class="card card-custom mb-3">
<div class="card-header border-0">
<h3 class="card-title"><?php echo $item['waste_usluga'] ?></h3>
<div class="card-toolbar">
<?php if($item['waste_status'] == 1): ?>
<span class="badge badge-danger" data-toggle="kt-tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>" style="margin-right: .25rem">- <?php echo $item['waste_ammount'] ?> руб</span>
<?php endif; ?>
<?php if($item['waste_status'] == 0): ?>
<span class="badge badge-success" data-toggle="kt-tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>" style="margin-right: .25rem">+ <?php echo $item['waste_ammount'] ?> руб</span>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php echo $pagination ?>
<?php if(empty($waste)): ?>
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
<div class="alert-icon">
<i class="flaticon-exclamation"></i>
</div>
<div class="alert-text">На данный момент у вас нет операций со счетом.</div>
<div class="alert-close">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true"><i class="ki ki-close"></i></span>
</button>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
*/
?>
<?php echo $header ?>
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
<div class="d-flex flex-column-fluid">
<div class="container">
<div class="row">
<?php foreach($waste as $item): ?>
<div class="col-xl-6">
<div class="card card-custom mb-3">
<div class="card-header border-0">
<h3 class="card-title"><?php echo $item['waste_usluga'] ?></h3>
<div class="card-toolbar">
<?php if($item['waste_status'] == 1): ?>
<span class="badge badge-danger" data-toggle="kt-tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['waste_date_add'])) ?>" style="margin-right: .25rem">- <?php echo $item['waste_ammount'] ?> руб</span>
<?php endif; ?>
<?php if($item['waste_status'] == 0): ?>
<span class="badge badge-success" data-toggle="kt-tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['waste_date_add'])) ?>" style="margin-right: .25rem">+ <?php echo $item['waste_ammount'] ?> руб</span>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php echo $pagination ?>
<?php if(empty($waste)): ?>
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
<div class="alert-icon">
<i class="flaticon-exclamation"></i>
</div>
<div class="alert-text">На данный момент у вас нет операций со счетом.</div>
<div class="alert-close">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true"><i class="ki ki-close"></i></span>
</button>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php echo $footer ?>
@@ -21,9 +21,9 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<div class="card-toolbar">
<span class="badge badge-primary mr-2" data-toggle="tooltip" data-placement="right" title="" data-original-title="Платежная система"><?php echo $item['system'] ?></span>
<?php if($item['invoice_status'] == 0): ?>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['invoice_date_add'])) ?>">Не оплачен</span>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['invoice_date_add'])) ?>">Не оплачен</span>
<?php elseif($item['invoice_status'] == 1): ?>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['invoice_date_add'])) ?>">Оплачен</span>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['invoice_date_add'])) ?>">Оплачен</span>
<?php endif; ?>
</div>
</div>
@@ -65,7 +65,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<?php elseif($item['ticket_status'] == 2): ?>
<i class="fa fa-user text-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Ответ от администрации"></i>
<?php endif; ?>
</span><?php echo $item['ticket_name'] ?><small class="text-muted font-size-sm ml-2"><?php echo date("d.m.Y в H:i", strtotime($item['ticket_date_add'])) ?></small>
</span><?php echo $item['ticket_name'] ?><small class="text-muted font-size-sm ml-2"><?php echo date(t("d.m.Y в H:i"), strtotime($item['ticket_date_add'])) ?></small>
</h3>
<div class="card-toolbar">
<a href="/admin/tickets/view/index/<?php echo $item['ticket_id'] ?>" class="btn btn-icon btn-primary mr-2" style="height: 24px;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Перейти" >
@@ -58,7 +58,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<span class="navi-icon mr-4">
<i class="flaticon-calendar icon-lg"></i>
</span>
<span class="navi-text"><?php echo date("d.m.Y в H:i", strtotime($ticket['ticket_date_add'])) ?></span>
<span class="navi-text"><?php echo date(t("d.m.Y в H:i"), strtotime($ticket['ticket_date_add'])) ?></span>
</a>
<a href="javascript:;" class="navi-link" data-toggle="tooltip" data-placement="right" title="" data-original-title="Статус запроса">
<span class="navi-icon mr-4">
+1 -1
View File
@@ -179,7 +179,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<tr>
<td><?php echo $item['city'] ?></td>
<td><?php echo $item['country'] ?>(<?php echo $item['code'] ?>)</td>
<td><?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?></td>
<td><?php echo date(t("d.m.Y в H:i"), strtotime($item['datetime'])) ?></td>
<td><?php echo $item['ip'] ?></td>
<td><?php if($item['status'] == 0): ?>
Ошибка входа (пароль <?php echo $item['password'] ?>)
@@ -16,9 +16,9 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<h3 class="card-title"><a href="/admin/users/edit/index/<?php echo $item['user_id'] ?>" class="text-dark"><?php echo $item['user_firstname'] ?> <?php echo $item['user_lastname'] ?></a><small class="text-muted font-size-sm ml-2"><?php echo $item['waste_usluga'] ?></small></h3>
<div class="card-toolbar">
<?php if($item['waste_status'] == 1): ?>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>">- <?php echo $item['waste_ammount'] ?> RUB.</span>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['waste_date_add'])) ?>">- <?php echo $item['waste_ammount'] ?> RUB.</span>
<?php elseif($item['waste_status'] == 0): ?>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>">+ <?php echo $item['waste_ammount'] ?> RUB.</span>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['waste_date_add'])) ?>">+ <?php echo $item['waste_ammount'] ?> RUB.</span>
<?php endif; ?>
</div>
</div>
+12 -12
View File
@@ -189,17 +189,17 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
</div>
</div>
<div class="topbar">
<?php $__lang = Lang::instance(); if($__lang): ?>
<div class="topbar-item mr-1 mr-lg-3">
<div class="btn-group btn-group-sm" role="group" aria-label="Language">
<?php foreach($__lang->available() as $__c): ?>
<a href="<?php echo htmlspecialchars($__lang->switchUrl($__c), ENT_QUOTES, 'UTF-8') ?>"
class="btn btn-sm font-weight-bolder text-uppercase <?php echo $__c === $__lang->code() ? 'btn-primary' : 'btn-light-primary' ?>"
title="<?php echo htmlspecialchars($__lang->name($__c), ENT_QUOTES, 'UTF-8') ?>"><?php echo $__c ?></a>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<?php $__lang = Lang::instance(); if($__lang): ?>
<div class="topbar-item mr-1 mr-lg-3">
<div class="btn-group btn-group-sm" role="group" aria-label="Language">
<?php foreach($__lang->available() as $__c): ?>
<a href="<?php echo htmlspecialchars($__lang->switchUrl($__c), ENT_QUOTES, 'UTF-8') ?>"
class="btn btn-sm font-weight-bolder text-uppercase <?php echo $__c === $__lang->code() ? 'btn-primary' : 'btn-light-primary' ?>"
title="<?php echo htmlspecialchars($__lang->name($__c), ENT_QUOTES, 'UTF-8') ?>"><?php echo $__c ?></a>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<div class="topbar-item mr-1 mr-lg-3">
<a <?if($oplata_status == 1):?> data-toggle="modal" data-target="#hostin" <? else:?>onClick="redirect('/account/pay')"<?endif;?> class="btn btn-fixed-height btn-light-primary font-weight-bolder font-size-sm px-5 my-1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="svg-icon svg-icon-md">
@@ -507,7 +507,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<?php elseif($item['status'] == 2): ?>
Выход с аккаунта -
<?php endif; ?>
<?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?></span>
<?php echo date(t("d.m.Y в H:i"), strtotime($item['datetime'])) ?></span>
</div>
</div>
<?php endforeach; ?>
+12 -12
View File
@@ -189,17 +189,17 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
</div>
</div>
<div class="topbar">
<?php $__lang = Lang::instance(); if($__lang): ?>
<div class="topbar-item mr-1 mr-lg-3">
<div class="btn-group btn-group-sm" role="group" aria-label="Language">
<?php foreach($__lang->available() as $__c): ?>
<a href="<?php echo htmlspecialchars($__lang->switchUrl($__c), ENT_QUOTES, 'UTF-8') ?>"
class="btn btn-sm font-weight-bolder text-uppercase <?php echo $__c === $__lang->code() ? 'btn-primary' : 'btn-light-primary' ?>"
title="<?php echo htmlspecialchars($__lang->name($__c), ENT_QUOTES, 'UTF-8') ?>"><?php echo $__c ?></a>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<?php $__lang = Lang::instance(); if($__lang): ?>
<div class="topbar-item mr-1 mr-lg-3">
<div class="btn-group btn-group-sm" role="group" aria-label="Language">
<?php foreach($__lang->available() as $__c): ?>
<a href="<?php echo htmlspecialchars($__lang->switchUrl($__c), ENT_QUOTES, 'UTF-8') ?>"
class="btn btn-sm font-weight-bolder text-uppercase <?php echo $__c === $__lang->code() ? 'btn-primary' : 'btn-light-primary' ?>"
title="<?php echo htmlspecialchars($__lang->name($__c), ENT_QUOTES, 'UTF-8') ?>"><?php echo $__c ?></a>
<?php endforeach; ?>
</div>
</div>
<?php endif; ?>
<div class="topbar-item mr-1 mr-lg-3">
<a <?if($oplata_status == 1):?> data-toggle="modal" data-target="#hostin" <? else:?>onClick="redirect('/account/pay')"<?endif;?> class="btn btn-fixed-height btn-light-primary font-weight-bolder font-size-sm px-5 my-1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="svg-icon svg-icon-md">
@@ -483,7 +483,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<?php elseif($item['status'] == 2): ?>
Выход с аккаунта -
<?php endif; ?>
<?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?></span>
<?php echo date(t("d.m.Y в H:i"), strtotime($item['datetime'])) ?></span>
</div>
</div>
<?php endforeach; ?>
+7 -7
View File
@@ -214,9 +214,9 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<h3 class="card-title"><?php echo $item['waste_usluga'] ?></h3>
<div class="card-toolbar">
<?php if($item['waste_status'] == 1): ?>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>">- <?php echo $item['waste_ammount'] ?> руб</span>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['waste_date_add'])) ?>">- <?php echo $item['waste_ammount'] ?> руб</span>
<?php elseif($item['waste_status'] == 0): ?>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>">+ <?php echo $item['waste_ammount'] ?> руб</span>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['waste_date_add'])) ?>">+ <?php echo $item['waste_ammount'] ?> руб</span>
<?php endif; ?>
</div>
</div>
@@ -245,11 +245,11 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<h3 class="card-title"><?php echo $item['country'] ?>(<?php echo $item['code'] ?>) <?php echo $item['city'] ?><small class="text-muted font-size-sm ml-2"><?php echo $item['ip'] ?></small></h3>
<div class="card-toolbar">
<?php if($item['status'] == 0): ?>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?>">Ошибка входа (пароль <?php echo $item['password'] ?>)</span>
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['datetime'])) ?>">Ошибка входа (пароль <?php echo $item['password'] ?>)</span>
<?php elseif($item['status'] == 1): ?>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?>">Вход в систему</span>
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['datetime'])) ?>">Вход в систему</span>
<?php elseif($item['status'] == 2): ?>
<span class="badge badge-warning" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?>">Выход из системы</span>
<span class="badge badge-warning" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date(t("d.m.Y в H:i"), strtotime($item['datetime'])) ?>">Выход из системы</span>
<?php endif; ?>
</div>
</div>
@@ -266,8 +266,8 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
</a></span><?php if($item['auth_key'] == @$_COOKIE['uid']): ?>Текущий<?php else: ?>Активный<?php endif; ?><small class="text-muted font-size-sm ml-2"><?php echo $item['user_ip'] ?></small>
</h3>
<div class="card-toolbar">
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата создания" style="margin-right: .25rem"><?php echo date("d.m.Y в H:i", strtotime($item['auth_date_add'])) ?></span>
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Последняя активность" style="margin-right: .25rem"><?php echo date("d.m.Y в H:i", strtotime($item['user_last_activity'])) ?></span>
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата создания" style="margin-right: .25rem"><?php echo date(t("d.m.Y в H:i"), strtotime($item['auth_date_add'])) ?></span>
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Последняя активность" style="margin-right: .25rem"><?php echo date(t("d.m.Y в H:i"), strtotime($item['user_last_activity'])) ?></span>
<a href="javascript:;" onClick="sendAction('closeSession',<?php echo $item['auth_id'] ?>)" class="btn btn-icon btn-light-danger btn-xs" data-toggle="tooltip" data-placement="right" title="" data-original-title="Завершить сеанс">
<i class="fa fa-times"></i>
</a>
+1 -1
View File
@@ -64,7 +64,7 @@ Developed by Samir Shelenko (https://vk.com/id00v)
<div class="bg-primary"></div>
</div>
<div class="timeline-label text-primary">
<span class="text-primary font-weight-bold"><?php echo date("d.m.Y в H:i", strtotime($item['news_date_add'])) ?></span>
<span class="text-primary font-weight-bold"><?php echo date(t("d.m.Y в H:i"), strtotime($item['news_date_add'])) ?></span>
</div>
<div class="timeline-content">
<?php echo $item['news_title'] ?>
+1 -1
View File
@@ -42,7 +42,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
</g>
</svg>
</span>
<span class="text-muted font-weight-bold"><?php echo date("d.m.Y в H:i", strtotime($item['news_date_add'])) ?></span>
<span class="text-muted font-weight-bold"><?php echo date(t("d.m.Y в H:i"), strtotime($item['news_date_add'])) ?></span>
</div>
<div class="d-flex align-items-center" data-toggle="tooltip" title="" data-placement="right" data-original-title="Просмотров">
<span class="svg-icon svg-icon-md svg-icon-primary pr-1">
+149 -149
View File
@@ -1,150 +1,150 @@
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
*/
?>
<?php echo $header ?>
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
<div class="d-flex flex-column-fluid">
<div class="container">
<div class="row">
<div class="col-xl-12">
<div class="card card-custom mb-4">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="symbol symbol-45 symbol-light mr-5">
<span class="symbol-label">
<span class="svg-icon svg-icon-lg svg-icon-primary">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path d="M8,3 L8,3.5 C8,4.32842712 8.67157288,5 9.5,5 L14.5,5 C15.3284271,5 16,4.32842712 16,3.5 L16,3 L18,3 C19.1045695,3 20,3.8954305 20,5 L20,21 C20,22.1045695 19.1045695,23 18,23 L6,23 C4.8954305,23 4,22.1045695 4,21 L4,5 C4,3.8954305 4.8954305,3 6,3 L8,3 Z" fill="#000000" opacity="0.3"></path>
<path d="M11,2 C11,1.44771525 11.4477153,1 12,1 C12.5522847,1 13,1.44771525 13,2 L14.5,2 C14.7761424,2 15,2.22385763 15,2.5 L15,3.5 C15,3.77614237 14.7761424,4 14.5,4 L9.5,4 C9.22385763,4 9,3.77614237 9,3.5 L9,2.5 C9,2.22385763 9.22385763,2 9.5,2 L11,2 Z" fill="#000000"></path>
<rect fill="#000000" opacity="0.3" x="7" y="10" width="5" height="2" rx="1"></rect>
<rect fill="#000000" opacity="0.3" x="7" y="14" width="9" height="2" rx="1"></rect>
</g>
</svg>
</span>
</span>
</div>
<div class="d-flex flex-column flex-grow-1">
<a href="javascript:;" class="text-dark-75 text-hover-primary mb-1 font-size-lg font-weight-bolder"><?echo $new['news_title']?></a>
<div class="d-flex">
<div class="d-flex align-items-center pr-5" data-toggle="tooltip" title="" data-placement="right" data-original-title="Дата публикации">
<span class="svg-icon svg-icon-md svg-icon-primary pr-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path d="M12,22 C7.02943725,22 3,17.9705627 3,13 C3,8.02943725 7.02943725,4 12,4 C16.9705627,4 21,8.02943725 21,13 C21,17.9705627 16.9705627,22 12,22 Z" fill="#000000" opacity="0.3"></path>
<path d="M11.9630156,7.5 L12.0475062,7.5 C12.3043819,7.5 12.5194647,7.69464724 12.5450248,7.95024814 L13,12.5 L16.2480695,14.3560397 C16.403857,14.4450611 16.5,14.6107328 16.5,14.7901613 L16.5,15 C16.5,15.2109164 16.3290185,15.3818979 16.1181021,15.3818979 C16.0841582,15.3818979 16.0503659,15.3773725 16.0176181,15.3684413 L11.3986612,14.1087258 C11.1672824,14.0456225 11.0132986,13.8271186 11.0316926,13.5879956 L11.4644883,7.96165175 C11.4845267,7.70115317 11.7017474,7.5 11.9630156,7.5 Z" fill="#000000"></path>
</g>
</svg>
</span>
<span class="text-muted font-weight-bold"><?echo $new['news_date_add']?></span>
</div>
<div class="d-flex align-items-center" data-toggle="tooltip" title="" data-placement="right" data-original-title="Просмотров">
<span class="svg-icon svg-icon-md svg-icon-primary pr-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path d="M5.5,4 L9.5,4 C10.3284271,4 11,4.67157288 11,5.5 L11,6.5 C11,7.32842712 10.3284271,8 9.5,8 L5.5,8 C4.67157288,8 4,7.32842712 4,6.5 L4,5.5 C4,4.67157288 4.67157288,4 5.5,4 Z M14.5,16 L18.5,16 C19.3284271,16 20,16.6715729 20,17.5 L20,18.5 C20,19.3284271 19.3284271,20 18.5,20 L14.5,20 C13.6715729,20 13,19.3284271 13,18.5 L13,17.5 C13,16.6715729 13.6715729,16 14.5,16 Z" fill="#000000"></path>
<path d="M5.5,10 L9.5,10 C10.3284271,10 11,10.6715729 11,11.5 L11,18.5 C11,19.3284271 10.3284271,20 9.5,20 L5.5,20 C4.67157288,20 4,19.3284271 4,18.5 L4,11.5 C4,10.6715729 4.67157288,10 5.5,10 Z M14.5,4 L18.5,4 C19.3284271,4 20,4.67157288 20,5.5 L20,12.5 C20,13.3284271 19.3284271,14 18.5,14 L14.5,14 C13.6715729,14 13,13.3284271 13,12.5 L13,5.5 C13,4.67157288 13.6715729,4 14.5,4 Z" fill="#000000" opacity="0.3"></path>
</g>
</svg>
</span>
<span class="text-muted font-weight-bold"><?echo $new['look']?></span>
</div>
</div>
</div>
</div>
<div class="pt-3">
<p class="text-dark-75 font-size-lg font-weight-normal pt-5 mb-2"><?echo nl2br($new['news_text'])?></p>
</div>
</div>
</div>
<form id="sendForm" action="" method="POST">
<div class="card card-custom mb-4">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="symbol symbol-40 mr-5">
<span class="symbol-label">
<img src="<?php echo $url ?><?if($item['user_img']) {echo $item['user_img'];}else{ echo '/application/public/img/user.png';}?>" class="h-75" alt="">
</span>
</div>
<span class="text-muted font-weight-bold font-size-lg">Хочешь оставить свой комментарий?</span>
</div>
<hr>
<div class="input-group">
<input type="text" class="form-control" type="text" id="text" name="text" placeholder="Ваш комментарий...">
<div class="input-group-append">
<button class="btn btn-primary btn-icon" type="submit"><i class="flaticon2-paper-plane"></i></button>
</div>
</div>
</div>
</div>
<?php foreach($messages as $item): ?>
<div class="card card-custom mb-4">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="symbol symbol-50 mr-5">
<span class="symbol-label">
<img src="<?php echo $url ?><?if($item['user_img']) {echo $item['user_img'];}else{ echo '/application/public/img/user.png';}?>" class="h-75" alt="">
</span>
</div>
<div class="d-flex flex-column flex-grow-1">
<a href="javascript:;" class="text-dark-75 text-hover-primary mb-1 font-size-lg font-weight-bolder"><?php if($item['user_firstname']){echo $item['user_firstname'];} else {echo 'Гость';} ?> <?php echo $item['user_lastname'] ?></a>
<span class="text-muted font-weight-bold"><?php echo nl2br($item['news_message']) ?></span>
</div>
<span class="text-muted font-weight-normal font-size-sm"><?php echo date("d.m.Y в H:i", strtotime($item['news_message_date_add'])) ?></span>
</div>
</div>
</div>
<?php endforeach; ?>
<?php if(empty($messages)): ?>
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
<div class="alert-icon">
<i class="flaticon-exclamation"></i>
</div>
<div class="alert-text">К сожалению, на данный момент нет комментариев.</div>
<div class="alert-close">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">
<i class="ki ki-close"></i>
</span>
</button>
</div>
</div>
<?php endif; ?>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
$('#sendForm').ajaxForm({
url: '/news/view/ajax/<?php echo $new['news_id'] ?>',
dataType: 'text',
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
$('#text').val('');
setTimeout("reload()", 1500);
ajax_url("/news/view/"+data);
break;
}
},
beforeSubmit: function(arr, $form, options) {
$('button[type=submit]').prop('disabled', true);
}
});
</script>
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
*/
?>
<?php echo $header ?>
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
<div class="d-flex flex-column-fluid">
<div class="container">
<div class="row">
<div class="col-xl-12">
<div class="card card-custom mb-4">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="symbol symbol-45 symbol-light mr-5">
<span class="symbol-label">
<span class="svg-icon svg-icon-lg svg-icon-primary">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path d="M8,3 L8,3.5 C8,4.32842712 8.67157288,5 9.5,5 L14.5,5 C15.3284271,5 16,4.32842712 16,3.5 L16,3 L18,3 C19.1045695,3 20,3.8954305 20,5 L20,21 C20,22.1045695 19.1045695,23 18,23 L6,23 C4.8954305,23 4,22.1045695 4,21 L4,5 C4,3.8954305 4.8954305,3 6,3 L8,3 Z" fill="#000000" opacity="0.3"></path>
<path d="M11,2 C11,1.44771525 11.4477153,1 12,1 C12.5522847,1 13,1.44771525 13,2 L14.5,2 C14.7761424,2 15,2.22385763 15,2.5 L15,3.5 C15,3.77614237 14.7761424,4 14.5,4 L9.5,4 C9.22385763,4 9,3.77614237 9,3.5 L9,2.5 C9,2.22385763 9.22385763,2 9.5,2 L11,2 Z" fill="#000000"></path>
<rect fill="#000000" opacity="0.3" x="7" y="10" width="5" height="2" rx="1"></rect>
<rect fill="#000000" opacity="0.3" x="7" y="14" width="9" height="2" rx="1"></rect>
</g>
</svg>
</span>
</span>
</div>
<div class="d-flex flex-column flex-grow-1">
<a href="javascript:;" class="text-dark-75 text-hover-primary mb-1 font-size-lg font-weight-bolder"><?echo $new['news_title']?></a>
<div class="d-flex">
<div class="d-flex align-items-center pr-5" data-toggle="tooltip" title="" data-placement="right" data-original-title="Дата публикации">
<span class="svg-icon svg-icon-md svg-icon-primary pr-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path d="M12,22 C7.02943725,22 3,17.9705627 3,13 C3,8.02943725 7.02943725,4 12,4 C16.9705627,4 21,8.02943725 21,13 C21,17.9705627 16.9705627,22 12,22 Z" fill="#000000" opacity="0.3"></path>
<path d="M11.9630156,7.5 L12.0475062,7.5 C12.3043819,7.5 12.5194647,7.69464724 12.5450248,7.95024814 L13,12.5 L16.2480695,14.3560397 C16.403857,14.4450611 16.5,14.6107328 16.5,14.7901613 L16.5,15 C16.5,15.2109164 16.3290185,15.3818979 16.1181021,15.3818979 C16.0841582,15.3818979 16.0503659,15.3773725 16.0176181,15.3684413 L11.3986612,14.1087258 C11.1672824,14.0456225 11.0132986,13.8271186 11.0316926,13.5879956 L11.4644883,7.96165175 C11.4845267,7.70115317 11.7017474,7.5 11.9630156,7.5 Z" fill="#000000"></path>
</g>
</svg>
</span>
<span class="text-muted font-weight-bold"><?echo $new['news_date_add']?></span>
</div>
<div class="d-flex align-items-center" data-toggle="tooltip" title="" data-placement="right" data-original-title="Просмотров">
<span class="svg-icon svg-icon-md svg-icon-primary pr-1">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<rect x="0" y="0" width="24" height="24"></rect>
<path d="M5.5,4 L9.5,4 C10.3284271,4 11,4.67157288 11,5.5 L11,6.5 C11,7.32842712 10.3284271,8 9.5,8 L5.5,8 C4.67157288,8 4,7.32842712 4,6.5 L4,5.5 C4,4.67157288 4.67157288,4 5.5,4 Z M14.5,16 L18.5,16 C19.3284271,16 20,16.6715729 20,17.5 L20,18.5 C20,19.3284271 19.3284271,20 18.5,20 L14.5,20 C13.6715729,20 13,19.3284271 13,18.5 L13,17.5 C13,16.6715729 13.6715729,16 14.5,16 Z" fill="#000000"></path>
<path d="M5.5,10 L9.5,10 C10.3284271,10 11,10.6715729 11,11.5 L11,18.5 C11,19.3284271 10.3284271,20 9.5,20 L5.5,20 C4.67157288,20 4,19.3284271 4,18.5 L4,11.5 C4,10.6715729 4.67157288,10 5.5,10 Z M14.5,4 L18.5,4 C19.3284271,4 20,4.67157288 20,5.5 L20,12.5 C20,13.3284271 19.3284271,14 18.5,14 L14.5,14 C13.6715729,14 13,13.3284271 13,12.5 L13,5.5 C13,4.67157288 13.6715729,4 14.5,4 Z" fill="#000000" opacity="0.3"></path>
</g>
</svg>
</span>
<span class="text-muted font-weight-bold"><?echo $new['look']?></span>
</div>
</div>
</div>
</div>
<div class="pt-3">
<p class="text-dark-75 font-size-lg font-weight-normal pt-5 mb-2"><?echo nl2br($new['news_text'])?></p>
</div>
</div>
</div>
<form id="sendForm" action="" method="POST">
<div class="card card-custom mb-4">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="symbol symbol-40 mr-5">
<span class="symbol-label">
<img src="<?php echo $url ?><?if($item['user_img']) {echo $item['user_img'];}else{ echo '/application/public/img/user.png';}?>" class="h-75" alt="">
</span>
</div>
<span class="text-muted font-weight-bold font-size-lg">Хочешь оставить свой комментарий?</span>
</div>
<hr>
<div class="input-group">
<input type="text" class="form-control" type="text" id="text" name="text" placeholder="Ваш комментарий...">
<div class="input-group-append">
<button class="btn btn-primary btn-icon" type="submit"><i class="flaticon2-paper-plane"></i></button>
</div>
</div>
</div>
</div>
<?php foreach($messages as $item): ?>
<div class="card card-custom mb-4">
<div class="card-body">
<div class="d-flex align-items-center">
<div class="symbol symbol-50 mr-5">
<span class="symbol-label">
<img src="<?php echo $url ?><?if($item['user_img']) {echo $item['user_img'];}else{ echo '/application/public/img/user.png';}?>" class="h-75" alt="">
</span>
</div>
<div class="d-flex flex-column flex-grow-1">
<a href="javascript:;" class="text-dark-75 text-hover-primary mb-1 font-size-lg font-weight-bolder"><?php if($item['user_firstname']){echo $item['user_firstname'];} else {echo 'Гость';} ?> <?php echo $item['user_lastname'] ?></a>
<span class="text-muted font-weight-bold"><?php echo nl2br($item['news_message']) ?></span>
</div>
<span class="text-muted font-weight-normal font-size-sm"><?php echo date(t("d.m.Y в H:i"), strtotime($item['news_message_date_add'])) ?></span>
</div>
</div>
</div>
<?php endforeach; ?>
<?php if(empty($messages)): ?>
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
<div class="alert-icon">
<i class="flaticon-exclamation"></i>
</div>
<div class="alert-text">К сожалению, на данный момент нет комментариев.</div>
<div class="alert-close">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">
<i class="ki ki-close"></i>
</span>
</button>
</div>
</div>
<?php endif; ?>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
$('#sendForm').ajaxForm({
url: '/news/view/ajax/<?php echo $new['news_id'] ?>',
dataType: 'text',
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
$('#text').val('');
setTimeout("reload()", 1500);
ajax_url("/news/view/"+data);
break;
}
},
beforeSubmit: function(arr, $form, options) {
$('button[type=submit]').prop('disabled', true);
}
});
</script>
<?php echo $footer ?>
+152 -152
View File
@@ -1,153 +1,153 @@
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko (https://vk.com/id00v)
*/
?>
<?php echo $header ?>
<div class="kt-container kt-container--fluid kt-grid__item kt-grid__item--fluid" style="margin: 15px 0;">
<div class="kt-portlet">
<div class="kt-portlet__head">
<div class="kt-portlet__head-label">
<h3 class="kt-portlet__head-title">
<?echo $new['news_title']?>
<small><?echo $new['look']?> Просмотров.</small>
</h3>
</div>
<div class="kt-portlet__head-toolbar">
<?echo $new['news_date_add']?>
</div>
</div>
<div class="kt-portlet__body">
<div class="kt-portlet__content">
<p>
<?echo nl2br($new['news_text'])?>
</p>
</div>
</div>
</div>
<form id="sendForm" action="" method="POST">
<div class="kt-portlet">
<div class="kt-portlet__head">
<div class="kt-portlet__head-label">
<h3 class="kt-portlet__head-title">
Оставить комментарий
</h3>
</div>
</div>
<div class="kt-portlet__body">
<div class="media-body">
<textarea class="form-control todo-taskbody-taskdesc" rows="4" name="text" id="text"></textarea>
</div>
<hr>
<button type="submit" class="btn btn-brand m-btn m-btn--air btn-outline btn-block sbold uppercase">Оставить комментарий</button>
</div>
</div>
<div class="kt-portlet kt-portlet--height-fluid">
<div class="kt-portlet__head">
<div class="kt-portlet__head-label">
<h3 class="kt-portlet__head-title">Комментарии</h3>
</div>
</div>
<div class="kt-portlet__body">
<div class="kt-widget3">
<?php foreach($messages as $item): ?>
<div class="kt-widget3__item">
<div class="kt-widget3__header">
<div class="kt-widget3__user-img">
<img class="kt-widget3__img" src="<?php echo $url ?><?if($item['user_img']) {echo $item['user_img'];}else{ echo '/application/public/img/user.png';}?>" alt="">
</div>
<div class="kt-widget3__info">
<a href="#" class="kt-widget3__username">
<?php if($item['user_firstname']){echo $item['user_firstname'];} else {echo 'Гость';} ?> <?php echo $item['user_lastname'] ?>
</a><br>
<span class="kt-widget3__time"><?php echo date("d.m.Y в H:i", strtotime($item['news_message_date_add'])) ?></span>
</div>
<span class="kt-widget3__status kt-font-info">
<?php if($item['user_access_level'] == 1): ?>
Пользователь
<?php endif; ?>
<?php if($item['user_access_level'] == 2): ?>
Тех.поддержка
<?php endif; ?>
<?php if($item['user_access_level'] == 3): ?>
Администратор
<?php endif; ?>
</span>
</div>
<div class="kt-widget3__body">
<p class="kt-widget3__text"><?php echo nl2br($item['news_message']) ?></p>
</div>
</div>
<?php endforeach; ?>
<?php if(empty($messages)): ?>
<div class="alert alert-danger">
На данный момент нет коментариев.
</div>
<?php endif; ?>
</div>
</div>
</div>
</form>
</div>
<script>
$('#sendForm').ajaxForm({
url: '/news/view/ajax/<?php echo $new['news_id'] ?>',
dataType: 'text',
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
$('#text').val('');
setTimeout("reload()", 1500);
ajax_url("/news/view/"+data);
break;
}
},
beforeSubmit: function(arr, $form, options) {
$('button[type=submit]').prop('disabled', true);
}
});</script>
<script type="text/javascript">
$(function(){
$('#form_pr').submit(function(e){
//отменяем стандартное действие при отправке формы
e.preventDefault();
//берем из формы метод передачи данных
var m_method=$(this).attr('method');
//получаем данные, введенные пользователем в формате input1=value1&input2=value2...,то есть в стандартном формате передачи данных формы
var m_data=$(this).serialize();
$.ajax({
type: m_method,
url: '/news/view/ajax/<?php echo $new['news_id'] ?>',
data: m_data,
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
$('#text').val('');
setTimeout("reload()", 1500);
break;
}
},
beforeSubmit: function(arr, $form, options) {
$('button[type=submit]').prop('disabled', true);
}
});
});
});
</script>
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko (https://vk.com/id00v)
*/
?>
<?php echo $header ?>
<div class="kt-container kt-container--fluid kt-grid__item kt-grid__item--fluid" style="margin: 15px 0;">
<div class="kt-portlet">
<div class="kt-portlet__head">
<div class="kt-portlet__head-label">
<h3 class="kt-portlet__head-title">
<?echo $new['news_title']?>
<small><?echo $new['look']?> Просмотров.</small>
</h3>
</div>
<div class="kt-portlet__head-toolbar">
<?echo $new['news_date_add']?>
</div>
</div>
<div class="kt-portlet__body">
<div class="kt-portlet__content">
<p>
<?echo nl2br($new['news_text'])?>
</p>
</div>
</div>
</div>
<form id="sendForm" action="" method="POST">
<div class="kt-portlet">
<div class="kt-portlet__head">
<div class="kt-portlet__head-label">
<h3 class="kt-portlet__head-title">
Оставить комментарий
</h3>
</div>
</div>
<div class="kt-portlet__body">
<div class="media-body">
<textarea class="form-control todo-taskbody-taskdesc" rows="4" name="text" id="text"></textarea>
</div>
<hr>
<button type="submit" class="btn btn-brand m-btn m-btn--air btn-outline btn-block sbold uppercase">Оставить комментарий</button>
</div>
</div>
<div class="kt-portlet kt-portlet--height-fluid">
<div class="kt-portlet__head">
<div class="kt-portlet__head-label">
<h3 class="kt-portlet__head-title">Комментарии</h3>
</div>
</div>
<div class="kt-portlet__body">
<div class="kt-widget3">
<?php foreach($messages as $item): ?>
<div class="kt-widget3__item">
<div class="kt-widget3__header">
<div class="kt-widget3__user-img">
<img class="kt-widget3__img" src="<?php echo $url ?><?if($item['user_img']) {echo $item['user_img'];}else{ echo '/application/public/img/user.png';}?>" alt="">
</div>
<div class="kt-widget3__info">
<a href="#" class="kt-widget3__username">
<?php if($item['user_firstname']){echo $item['user_firstname'];} else {echo 'Гость';} ?> <?php echo $item['user_lastname'] ?>
</a><br>
<span class="kt-widget3__time"><?php echo date(t("d.m.Y в H:i"), strtotime($item['news_message_date_add'])) ?></span>
</div>
<span class="kt-widget3__status kt-font-info">
<?php if($item['user_access_level'] == 1): ?>
Пользователь
<?php endif; ?>
<?php if($item['user_access_level'] == 2): ?>
Тех.поддержка
<?php endif; ?>
<?php if($item['user_access_level'] == 3): ?>
Администратор
<?php endif; ?>
</span>
</div>
<div class="kt-widget3__body">
<p class="kt-widget3__text"><?php echo nl2br($item['news_message']) ?></p>
</div>
</div>
<?php endforeach; ?>
<?php if(empty($messages)): ?>
<div class="alert alert-danger">
На данный момент нет коментариев.
</div>
<?php endif; ?>
</div>
</div>
</div>
</form>
</div>
<script>
$('#sendForm').ajaxForm({
url: '/news/view/ajax/<?php echo $new['news_id'] ?>',
dataType: 'text',
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
$('#text').val('');
setTimeout("reload()", 1500);
ajax_url("/news/view/"+data);
break;
}
},
beforeSubmit: function(arr, $form, options) {
$('button[type=submit]').prop('disabled', true);
}
});</script>
<script type="text/javascript">
$(function(){
$('#form_pr').submit(function(e){
//отменяем стандартное действие при отправке формы
e.preventDefault();
//берем из формы метод передачи данных
var m_method=$(this).attr('method');
//получаем данные, введенные пользователем в формате input1=value1&input2=value2...,то есть в стандартном формате передачи данных формы
var m_data=$(this).serialize();
$.ajax({
type: m_method,
url: '/news/view/ajax/<?php echo $new['news_id'] ?>',
data: m_data,
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
$('#text').val('');
setTimeout("reload()", 1500);
break;
}
},
beforeSubmit: function(arr, $form, options) {
$('button[type=submit]').prop('disabled', true);
}
});
});
});
</script>
<?php echo $footer ?>
+218 -218
View File
@@ -1,219 +1,219 @@
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
*/
?>
<?php echo $header?>
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
<div class="d-flex flex-column-fluid">
<div class="container">
<div class="row">
<div class="col-xl-12">
<?php include 'application/views/common/menuserver.php';?>
</div>
<div class="col-xl-3">
<div class="card card-custom mb-3 pt-5">
<div class="card-body">
<div class="text-center">
<div class="symbol symbol-60 symbol-circle symbol-xl-90">
<div class="symbol-label">
<i class="fas fa-clock icon-5x text-primary"></i>
</div>
</div>
<h4 class="font-weight-bolder my-2">Планировщик задач</h4>
<div class="text-muted font-weight-bold mb-2">Выполнение команд по расписанию</div>
</div>
</div>
</div>
<div class="card card-custom mb-3">
<div class="card-body px-1" style="padding: 0.3rem 2.25rem;">
<div class="navi navi-hover navi-active navi-link-rounded navi-bold navi-icon-center navi-light-icon">
<div class="navi-item my-2">
<a href="javascript:;" data-toggle="modal" data-target="#tasksinfo" class="navi-link">
<span class="navi-icon mr-3">
<span class="svg-icon svg-icon-lg">
<i class="fa fa-exclamation-circle"></i>
</span>
</span>
<span class="navi-text font-weight-bolder font-size-lg">Информация</span>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-9">
<div class="row">
<div class="col-xl-12">
<div class="card card-custom gutter-b">
<div class="card-body">
<div class="form-group form-md-line-input">
<label>Задача</label>
<select class="form-control" id="task" name="task" onChange="editNewTask()">
<option value="enable" <?php if($server['server_status'] != 1): ?>disabled <?php endif; ?>>Включение</option>
<option value="disable" <?php if($server['server_status'] != 2): ?>disabled <?php endif; ?>>Выключение</option>
<option value="restart" <?php if($server['server_status'] != 2): ?>disabled <?php endif; ?>>Перезагрузка</option>
</select>
</div>
<div class="form-group form-md-line-input">
<label>Тип задачи</label>
<select class="form-control" id="type" name="type">
<option value="single">Одноразовая</option>
</select>
</div>
<div class="form-group form-md-line-input">
<label>Время выполнения</label>
<select class="form-control" id="time" name="time">
<option value="15min">15 Минут</option>
<option value="30min">30 Минут</option>
<option value="1hour">1 Час</option>
<option value="12hours">12 Часов</option>
<option value="24hours">24 Часа</option>
</select>
</div>
<button id="createTask" class="btn btn-primary">Создать задачу</button>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-12">
<div class="card card-custom gutter-b">
<div class="card-header">
<div class="card-title">
<h3 class="card-label">Список задач</h3>
</div>
</div>
<div class="card-body">
<?php foreach($tasks as $item): ?>
<div class="card card-custom bg-gray-100 mb-4" id="task-<?php echo $item['task_id'] ?>">
<div class="card-header border-0" style="min-height: 0;padding-top: 0.5rem;padding-bottom: 0.5rem;">
<h3 class="card-title"><span class="card-icon">
<a href="javascript:;" class="btn btn-icon btn-light-primary btn-sm" data-toggle="tooltip" data-placement="right" title="" data-original-title="Тип задачи: <?php echo str_replace("single", "Одноразовая", str_replace("repeating", "Повторяющаяся", $item['task_type'])) ?>">
<i class="fa fa-info-circle"></i>
</a></span><?php echo str_replace("restart", "Перезагрузка", str_replace("enable", "Включение", str_replace("disable", "Выключение", $item['task_name']))) ?><small class="text-muted font-size-sm ml-2"><?php echo str_replace("15min", "15 минут", str_replace("30min", "30 минут", str_replace("1hour", "1 час", str_replace("12hours", "12 часов", str_replace("24hours", "24 часа", $item['task_time']))))) ?></small>
</h3>
<div class="card-toolbar">
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Будет выполнена в" style="margin-right: .25rem"><?php echo date("d.m.Y в H:i", strtotime($item['task_lead_time'])) ?></span>
<a href="javascript:;" onClick="sendAction('deleteTask',<?php echo $item['task_id'] ?>)" class="btn btn-icon btn-light-danger btn-xs" data-toggle="tooltip" data-placement="right" title="" data-original-title="Удалить задачу">
<i class="fa fa-times"></i>
</a>
</div>
</div>
</div>
<?php endforeach; ?>
<?php if(empty($tasks)): ?>
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
<div class="alert-icon">
<i class="flaticon-exclamation"></i>
</div>
<div class="alert-text">На данный момент нет задач.</div>
<div class="alert-close">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true"><i class="ki ki-close"></i></span>
</button>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--begin::Modal-->
<div class="modal fade" id="tasksinfo" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Информация</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<i aria-hidden="true" class="ki ki-close"></i>
</button>
</div>
<div class="modal-body">
<p>
Система планировщик задач - это система, позволяет автоматически выполнять определенные действия на сервере (запуск, рестарт, выключение и т.д.), с заданным временем или периодичностью.
</p>
</div>
</div>
</div>
</div>
<!--end::Modal-->
<script>
function editNewTask() {
setTimeout(function() {
var task = $('#task option:selected').val();
if (task == 'enable' || task == 'disable') {
$("#type option[value='repeating']").remove();
} else {
$("#type").append('<option value="repeating">Повторяющаяся</option>');
}
}, 100);
}
$(document).ready(function() {
editNewTask();
});
$('#createTask').on('click', function() {
$.ajax({
url: '/servers/tasks/createTask/<?php echo $server['server_id'] ?>',
type: 'POST',
data: {
'task': $("#task option:selected").val(),
'type': $("#type option:selected").val(),
'time': $("#time option:selected").val()
},
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
setTimeout("reload()", 1500);
break;
}
$('#createTask').removeClass('loading');
},
beforeSubmit: function(arr, $form, options) {
$('#createTask').addClass('loading');
}
});
});
function sendAction(action, task_id) {
switch(action) {
case "deleteTask":
{
if(!confirm("Вы действительно хотите удалить задачу ID-"+task_id+"?")) return;
break;
}
}
$.ajax({
url: '/servers/tasks/deleteTask/<?php echo $server['server_id'] ?>',
type: "POST",
data: {task_id: task_id},
dataType: 'text',
success: function(data) {
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
break;
case 'success':
toastr.success(data.success);
setTimeout("reload()", 1500);
break;
}
}
});
}
</script>
<?php
/*
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
*/
?>
<?php echo $header?>
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
<div class="d-flex flex-column-fluid">
<div class="container">
<div class="row">
<div class="col-xl-12">
<?php include 'application/views/common/menuserver.php';?>
</div>
<div class="col-xl-3">
<div class="card card-custom mb-3 pt-5">
<div class="card-body">
<div class="text-center">
<div class="symbol symbol-60 symbol-circle symbol-xl-90">
<div class="symbol-label">
<i class="fas fa-clock icon-5x text-primary"></i>
</div>
</div>
<h4 class="font-weight-bolder my-2">Планировщик задач</h4>
<div class="text-muted font-weight-bold mb-2">Выполнение команд по расписанию</div>
</div>
</div>
</div>
<div class="card card-custom mb-3">
<div class="card-body px-1" style="padding: 0.3rem 2.25rem;">
<div class="navi navi-hover navi-active navi-link-rounded navi-bold navi-icon-center navi-light-icon">
<div class="navi-item my-2">
<a href="javascript:;" data-toggle="modal" data-target="#tasksinfo" class="navi-link">
<span class="navi-icon mr-3">
<span class="svg-icon svg-icon-lg">
<i class="fa fa-exclamation-circle"></i>
</span>
</span>
<span class="navi-text font-weight-bolder font-size-lg">Информация</span>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-9">
<div class="row">
<div class="col-xl-12">
<div class="card card-custom gutter-b">
<div class="card-body">
<div class="form-group form-md-line-input">
<label>Задача</label>
<select class="form-control" id="task" name="task" onChange="editNewTask()">
<option value="enable" <?php if($server['server_status'] != 1): ?>disabled <?php endif; ?>>Включение</option>
<option value="disable" <?php if($server['server_status'] != 2): ?>disabled <?php endif; ?>>Выключение</option>
<option value="restart" <?php if($server['server_status'] != 2): ?>disabled <?php endif; ?>>Перезагрузка</option>
</select>
</div>
<div class="form-group form-md-line-input">
<label>Тип задачи</label>
<select class="form-control" id="type" name="type">
<option value="single">Одноразовая</option>
</select>
</div>
<div class="form-group form-md-line-input">
<label>Время выполнения</label>
<select class="form-control" id="time" name="time">
<option value="15min">15 Минут</option>
<option value="30min">30 Минут</option>
<option value="1hour">1 Час</option>
<option value="12hours">12 Часов</option>
<option value="24hours">24 Часа</option>
</select>
</div>
<button id="createTask" class="btn btn-primary">Создать задачу</button>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-12">
<div class="card card-custom gutter-b">
<div class="card-header">
<div class="card-title">
<h3 class="card-label">Список задач</h3>
</div>
</div>
<div class="card-body">
<?php foreach($tasks as $item): ?>
<div class="card card-custom bg-gray-100 mb-4" id="task-<?php echo $item['task_id'] ?>">
<div class="card-header border-0" style="min-height: 0;padding-top: 0.5rem;padding-bottom: 0.5rem;">
<h3 class="card-title"><span class="card-icon">
<a href="javascript:;" class="btn btn-icon btn-light-primary btn-sm" data-toggle="tooltip" data-placement="right" title="" data-original-title="Тип задачи: <?php echo str_replace("single", "Одноразовая", str_replace("repeating", "Повторяющаяся", $item['task_type'])) ?>">
<i class="fa fa-info-circle"></i>
</a></span><?php echo str_replace("restart", "Перезагрузка", str_replace("enable", "Включение", str_replace("disable", "Выключение", $item['task_name']))) ?><small class="text-muted font-size-sm ml-2"><?php echo str_replace("15min", "15 минут", str_replace("30min", "30 минут", str_replace("1hour", "1 час", str_replace("12hours", "12 часов", str_replace("24hours", "24 часа", $item['task_time']))))) ?></small>
</h3>
<div class="card-toolbar">
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Будет выполнена в" style="margin-right: .25rem"><?php echo date(t("d.m.Y в H:i"), strtotime($item['task_lead_time'])) ?></span>
<a href="javascript:;" onClick="sendAction('deleteTask',<?php echo $item['task_id'] ?>)" class="btn btn-icon btn-light-danger btn-xs" data-toggle="tooltip" data-placement="right" title="" data-original-title="Удалить задачу">
<i class="fa fa-times"></i>
</a>
</div>
</div>
</div>
<?php endforeach; ?>
<?php if(empty($tasks)): ?>
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
<div class="alert-icon">
<i class="flaticon-exclamation"></i>
</div>
<div class="alert-text">На данный момент нет задач.</div>
<div class="alert-close">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true"><i class="ki ki-close"></i></span>
</button>
</div>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--begin::Modal-->
<div class="modal fade" id="tasksinfo" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Информация</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<i aria-hidden="true" class="ki ki-close"></i>
</button>
</div>
<div class="modal-body">
<p>
Система планировщик задач - это система, позволяет автоматически выполнять определенные действия на сервере (запуск, рестарт, выключение и т.д.), с заданным временем или периодичностью.
</p>
</div>
</div>
</div>
</div>
<!--end::Modal-->
<script>
function editNewTask() {
setTimeout(function() {
var task = $('#task option:selected').val();
if (task == 'enable' || task == 'disable') {
$("#type option[value='repeating']").remove();
} else {
$("#type").append('<option value="repeating">Повторяющаяся</option>');
}
}, 100);
}
$(document).ready(function() {
editNewTask();
});
$('#createTask').on('click', function() {
$.ajax({
url: '/servers/tasks/createTask/<?php echo $server['server_id'] ?>',
type: 'POST',
data: {
'task': $("#task option:selected").val(),
'type': $("#type option:selected").val(),
'time': $("#time option:selected").val()
},
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
toastr.success(data.success);
setTimeout("reload()", 1500);
break;
}
$('#createTask').removeClass('loading');
},
beforeSubmit: function(arr, $form, options) {
$('#createTask').addClass('loading');
}
});
});
function sendAction(action, task_id) {
switch(action) {
case "deleteTask":
{
if(!confirm("Вы действительно хотите удалить задачу ID-"+task_id+"?")) return;
break;
}
}
$.ajax({
url: '/servers/tasks/deleteTask/<?php echo $server['server_id'] ?>',
type: "POST",
data: {task_id: task_id},
dataType: 'text',
success: function(data) {
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
break;
case 'success':
toastr.success(data.success);
setTimeout("reload()", 1500);
break;
}
}
});
}
</script>
<?php echo $footer ?>
+1 -1
View File
@@ -48,7 +48,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<?php elseif($item['ticket_status'] == 2): ?>
<i class="fa fa-user text-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Ответ от администрации"></i>
<?php endif; ?>
</span><?php echo $item['ticket_name'] ?><small class="text-muted font-size-sm ml-2"><?php echo date("d.m.Y в H:i", strtotime($item['ticket_date_add'])) ?></small>
</span><?php echo $item['ticket_name'] ?><small class="text-muted font-size-sm ml-2"><?php echo date(t("d.m.Y в H:i"), strtotime($item['ticket_date_add'])) ?></small>
</h3>
<div class="card-toolbar">
<a href="/tickets/view/index/<?php echo $item['ticket_id'] ?>" class="btn btn-icon btn-primary mr-2" style="height: 24px;" data-toggle="tooltip" data-placement="right" title="" data-original-title="Перейти" >
+1 -1
View File
@@ -44,7 +44,7 @@ Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / htt
<span class="navi-icon mr-4">
<i class="flaticon-calendar icon-lg"></i>
</span>
<span class="navi-text"><?php echo date("d.m.Y в H:i", strtotime($ticket['ticket_date_add'])) ?></span>
<span class="navi-text"><?php echo date(t("d.m.Y в H:i"), strtotime($ticket['ticket_date_add'])) ?></span>
</a>
<a href="javascript:;" class="navi-link" data-toggle="tooltip" data-placement="right" title="" data-original-title="Статус запроса">
<span class="navi-icon mr-4">