Перевод панели доведён до конца, скриншоты всех разделов, английское описание главным
Перевод
* Полный обход исходников скриптом, повторяющим логику подстановки: было
видно 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:
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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; ?>
|
||||
|
||||
@@ -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; ?>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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'] ?>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 ?>
|
||||
@@ -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 ?>
|
||||
@@ -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 ?>
|
||||
@@ -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="Перейти" >
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user