Delete the broken mobile version of "megp"
Task: https://bugs.enginegp.com/view.php?id=40
This commit is contained in:
parent
b9c11c2447
commit
1b1ad0d68e
18
index.php
18
index.php
|
@ -20,7 +20,6 @@ DEFINE('LIB', SYS . 'library/');
|
|||
DEFINE('ENG', SYS . 'engine/');
|
||||
DEFINE('SEC', SYS . 'sections/');
|
||||
|
||||
$device = isset($_COOKIE['egp_device']) ? $_COOKIE['egp_device'] : '!mobile';
|
||||
$start_point = $_SERVER['REQUEST_TIME'];
|
||||
|
||||
$mcache = new Memcache;
|
||||
|
@ -45,23 +44,8 @@ include(LIB . 'system.php');
|
|||
|
||||
$uip = sys::ip();
|
||||
|
||||
/* if(!isset($_COOKIE['egp_device']))
|
||||
{
|
||||
include(LIB.'megp.php');
|
||||
|
||||
$device = $megp->isMobile() ? 'mobile' : '!mobile';
|
||||
|
||||
sys::cookie('egp_device', $device, 14);
|
||||
|
||||
if($device == 'mobile')
|
||||
sys::back();
|
||||
} */
|
||||
|
||||
// Распределитель
|
||||
if ($device == '!mobile')
|
||||
include(SYS . 'distributor.php');
|
||||
/* else
|
||||
include(SYS.'mdistributor.php'); */
|
||||
include(SYS . 'distributor.php');
|
||||
|
||||
// Выхлоп
|
||||
echo $html->arr['all'];
|
||||
|
|
|
@ -17,8 +17,6 @@ $loggingInFile->loggerOnly(true);
|
|||
$loggingInFile->setLogger((new \Monolog\Logger('EngineGP', [(new \Monolog\Handler\StreamHandler(ROOT . '/logs/enginegp.log'))->setFormatter((new \Monolog\Formatter\LineFormatter(null, null, true)))])));
|
||||
$whoops->pushHandler($loggingInFile);
|
||||
|
||||
$device = '!mobile';
|
||||
|
||||
// Парсинг адреса
|
||||
$url = is_array(sys::url()) ? sys::url() : array();
|
||||
$route = sys::url(false);
|
||||
|
|
|
@ -29,19 +29,6 @@ $aRoute = array(
|
|||
'partners',
|
||||
);
|
||||
|
||||
// Массив главных разделов megp
|
||||
$amRoute = array(
|
||||
'index',
|
||||
'servers',
|
||||
'services',
|
||||
'replenish',
|
||||
'help',
|
||||
'news',
|
||||
'auth',
|
||||
'quit',
|
||||
'recovery'
|
||||
);
|
||||
|
||||
// Массив регулярных выражений
|
||||
$aValid = array(
|
||||
'login' => '/^[A-Za-z0-9_]{4,16}$/',
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
include(SEC . 'user/auth.php');
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
// Проверка на авторизацию
|
||||
sys::noauth();
|
||||
|
||||
$sql->query('SELECT `id` FROM `users` WHERE `id`="' . $user['id'] . '" AND `help`="0" LIMIT 1');
|
||||
if (!$sql->num()) {
|
||||
$html->get('noaccess', 'sections/help');
|
||||
$html->pack('main');
|
||||
} else {
|
||||
// Подключение раздела
|
||||
if (!in_array($section, array('create', 'dialog', 'open', 'close', 'notice', 'upload')))
|
||||
include(ENG . '404.php');
|
||||
|
||||
$aNav = array(
|
||||
'help' => 'Техническая поддержка',
|
||||
'create' => 'Создание вопроса',
|
||||
'dialog' => 'Решение вопроса',
|
||||
'open' => 'Список открытых вопросов',
|
||||
'close' => 'Список закрытых вопросов'
|
||||
);
|
||||
|
||||
$title = isset($aNav[$section]) ? $aNav[$section] : $section;
|
||||
|
||||
include(SEC . 'help/' . $section . '.php');
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
sys::noauth();
|
||||
|
||||
$title = 'Главная страница';
|
||||
|
||||
$qLog = $sql->query('SELECT `text`, `date` FROM `logs` WHERE `user`="' . $user['id'] . '" ORDER BY `id` DESC LIMIT 5');
|
||||
while ($aLog = $sql->get($qLog)) {
|
||||
$html->get('list', 'logs');
|
||||
$html->set('text', $aLog['text']);
|
||||
$html->set('date', sys::today($aLog['date'], true));
|
||||
$html->pack('logs');
|
||||
}
|
||||
|
||||
$html->get('index');
|
||||
$html->set('ip', $uip);
|
||||
$html->set('login', $user['login']);
|
||||
$html->set('balance', round($user['balance'], 2));
|
||||
$html->set('cur', $cfg['currency']);
|
||||
$html->set('logs', isset($html->arr['main']) ? $html->arr['main'] : '');
|
||||
$html->pack('main');
|
|
@ -1,39 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($id) {
|
||||
$sql->query('SELECT `id`, `name`, `full_text`, `views`, `tags`, `date` FROM `news` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (!$sql->num())
|
||||
include(ENG . '404.php');
|
||||
|
||||
$news = $sql->get();
|
||||
|
||||
$title = $news['name'];
|
||||
|
||||
$sql->query('UPDATE `news` set `views`="' . ($news['views'] + 1) . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
$html->get('news', 'sections/news');
|
||||
$html->set('id', $news['id']);
|
||||
$html->set('name', htmlspecialchars_decode($news['name']));
|
||||
$html->set('text', htmlspecialchars_decode($news['full_text']));
|
||||
$html->set('date', sys::today($news['date']));
|
||||
$html->pack('main');
|
||||
} else {
|
||||
$title = 'Последние новости';
|
||||
|
||||
$sql->query('SELECT `id`, `name`, `text`, `views`, `tags`, `date` FROM `news` ORDER BY `id` DESC LIMIT 5');
|
||||
while ($news = $sql->get()) {
|
||||
$html->get('list', 'sections/news');
|
||||
$html->set('id', $news['id']);
|
||||
$html->set('name', htmlspecialchars_decode($news['name']));
|
||||
$html->set('text', htmlspecialchars_decode($news['text']));
|
||||
$html->set('date', sys::today($news['date']));
|
||||
$html->pack('news');
|
||||
}
|
||||
|
||||
$html->get('index', 'sections/news');
|
||||
$html->set('list', isset($html->arr['news']) ? $html->arr['news'] : '');
|
||||
$html->pack('main');
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
include(SEC . 'user/quit.php');
|
|
@ -1,5 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
include(SEC . 'user/recovery.php');
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
// Проверка на авторизацию
|
||||
sys::noauth();
|
||||
|
||||
if (isset($url['key']) && isset($url['sum']))
|
||||
sys::out(md5($cfg['freekassa_id'] . ':' . intval($url['sum']) . ':' . $cfg['freekassa_key_1'] . ':1'));
|
||||
|
||||
// Генерация списка операций
|
||||
$qLog = $sql->query('SELECT `text`, `date` FROM `logs` WHERE `user`="' . $user['id'] . '" AND `type`="replenish" ORDER BY `id` DESC LIMIT 5');
|
||||
while ($aLog = $sql->get($qLog)) {
|
||||
$html->get('list', 'sections/user/replenish');
|
||||
$html->set('text', $aLog['text']);
|
||||
$html->set('date', sys::today($aLog['date'], true));
|
||||
$html->pack('logs');
|
||||
}
|
||||
|
||||
$html->get('replenish', 'sections/user');
|
||||
$html->set('id', $user['id']);
|
||||
$html->set('wmr', $cfg['webmoney_wmr']);
|
||||
$html->set('freekassa', $cfg['freekassa_id']);
|
||||
$html->set('unitpay', $cfg['unitpay_pubkey']);
|
||||
$html->set('balance', round($user['balance'], 2));
|
||||
$html->set('cur', $cfg['currency']);
|
||||
$html->set('logs', isset($html->arr['logs']) ? $html->arr['logs'] : '');
|
||||
$html->pack('main');
|
|
@ -1,71 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
// Проверка на авторизацию
|
||||
sys::noauth();
|
||||
|
||||
if (!$id and $user['group'] == 'user') {
|
||||
$servers = $sql->query('SELECT `id` FROM `servers` WHERE `user`="' . $user['id'] . '" LIMIT 1');
|
||||
$owners = $sql->query('SELECT `id` FROM `owners` WHERE `user`="' . $user['id'] . '" LIMIT 1');
|
||||
|
||||
if (!$sql->num($servers) and !$sql->num($owners))
|
||||
sys::back($cfg['http'] . 'services'); // Если нет игровых серверов отправить на страницу аренды
|
||||
}
|
||||
|
||||
if ($id and !$section)
|
||||
$section = 'index';
|
||||
|
||||
$title = 'Управление игровыми серверами';
|
||||
|
||||
// Подключение раздела
|
||||
if (in_array($section, array('action', 'scan', 'index', 'console', 'settings', 'tarif', 'boost'))) {
|
||||
if (!$id)
|
||||
sys::back($cfg['http'] . 'servers');
|
||||
|
||||
$sql->query('SELECT `id` FROM `servers` WHERE `id`="' . $id . '" AND `user`="' . $user['id'] . '" LIMIT 1');
|
||||
if (!$sql->num()) {
|
||||
$sql->query('SELECT `rights` FROM `owners` WHERE `server`="' . $id . '" AND `user`="' . $user['id'] . '" LIMIT 1');
|
||||
if (!$sql->num())
|
||||
sys::back($cfg['http'] . 'servers');
|
||||
|
||||
$owner = $sql->get();
|
||||
|
||||
$rights = sys::b64djs($owner['rights']);
|
||||
|
||||
if ($section == 'action') {
|
||||
if (!isset($rights[$url['action']]) || !$rights[$url['action']])
|
||||
sys::outjs(array('e' => sys::text('error', 'ser_owner')));
|
||||
} else {
|
||||
if (!in_array($section, array('index', 'scan')) and (!isset($rights[$section]) || !$rights[$section]))
|
||||
sys::back($cfg['http'] . 'servers/id/' . $owner['server']);
|
||||
}
|
||||
|
||||
$sql->query('SELECT `id` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
}
|
||||
|
||||
if (!$sql->num())
|
||||
sys::back($cfg['http'] . 'servers'); // Если нет игрового сервера отправить на страницу списка
|
||||
|
||||
$file_section = file_exists(SEC . 'megp/servers/' . $section . '.php');
|
||||
if ($file_section)
|
||||
include(SEC . 'megp/servers/' . $section . '.php');
|
||||
else
|
||||
sys::back($cfg['http'] . 'servers/id/' . $id);
|
||||
|
||||
} else {
|
||||
if ($user['group'] == 'user' and $mcache->get('servers_' . $user['id']) != '')
|
||||
$html->arr['main'] = $mcache->get('servers_' . $user['id']);
|
||||
else {
|
||||
include(SEC . 'megp/servers/list.php');
|
||||
include(SEC . 'megp/servers/owners_list.php');
|
||||
|
||||
$html->get('servers', 'sections/servers');
|
||||
$html->set('list', isset($html->arr['list']) ? $html->arr['list'] : 'У вас нет игровых серверов', true);
|
||||
$html->set('wait_servers', $wait_servers);
|
||||
$html->set('updates_servers', $updates_servers);
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('servers_' . $user['id'], $html->arr['main'], false, 4);
|
||||
}
|
||||
}
|
|
@ -215,7 +215,7 @@ class ctrl
|
|||
|
||||
public static function route($server, $inc, $go)
|
||||
{
|
||||
global $device, $start_point;
|
||||
global $start_point;
|
||||
|
||||
if (in_array($server['status'], array('install', 'reinstall', 'update', 'recovery'))) {
|
||||
if ($go)
|
||||
|
@ -232,7 +232,7 @@ class ctrl
|
|||
|
||||
public static function cpulist($unit, $core, $count = false)
|
||||
{
|
||||
global $device, $start_point;
|
||||
global $start_point;
|
||||
|
||||
include(LIB . 'ssh.php');
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@ $whoops->pushHandler($loggingInFile);
|
|||
if (!file_exists(CRON . $task . '.php'))
|
||||
exit('Invalid cron method');
|
||||
|
||||
$device = '!mobile';
|
||||
$user = array('id' => 0, 'group' => 'admin');
|
||||
|
||||
class cron
|
||||
|
|
|
@ -54,11 +54,7 @@ class html
|
|||
|
||||
public function get($name, $path = '')
|
||||
{
|
||||
global $device, $cfg;
|
||||
|
||||
$path_root = $device == '!mobile' ? '' : 'megp/';
|
||||
|
||||
$path = $path_root . $path;
|
||||
global $cfg;
|
||||
|
||||
if ($path != '')
|
||||
$name = str_replace('//', '/', $path . '/' . $name);
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -84,14 +84,10 @@ class sys
|
|||
$html->set('home', $cfg['http']);
|
||||
|
||||
if (is_array($notice)) {
|
||||
global $device;
|
||||
|
||||
if ($device == '!mobile')
|
||||
$html->set('notice', '<div class="informer ' . $notice['color'] . ' topifon">' . $notice['text'] . '</div><div class="space"></div>');
|
||||
else
|
||||
$html->set('notice', '<div class="heading-style-1 container"><div class="smaller-text color-' . $notice['color'] . '-light">' . $notice['text'] . '</div><div class="heading-decoration bg-' . $notice['color'] . '-light" style="margin-top: 0px"></div></div>');
|
||||
} else
|
||||
$html->set('notice', '<div class="informer ' . $notice['color'] . ' topifon">' . $notice['text'] . '</div><div class="space"></div>');
|
||||
} else {
|
||||
$html->set('notice', '');
|
||||
}
|
||||
|
||||
if ($server['console_use']) $html->unit('console_use', 1); else $html->unit('console_use');
|
||||
if ($server['plugins_use']) $html->unit('plugins_use', 1); else $html->unit('plugins_use');
|
||||
|
@ -127,9 +123,9 @@ class sys
|
|||
|
||||
public static function route($server, $inc, $go, $all = false)
|
||||
{
|
||||
global $device, $start_point;
|
||||
global $start_point;
|
||||
|
||||
$dir = $device == '!mobile' ? '' : 'megp/';
|
||||
$dir = '';
|
||||
$use = true;
|
||||
|
||||
if (in_array($inc, array('plugins', 'ftp', 'console', 'graph', 'copy', 'web'))) {
|
||||
|
@ -208,12 +204,12 @@ class sys
|
|||
|
||||
public static function outhtml($text, $time = 3, $url = false, $cache = false)
|
||||
{
|
||||
global $device, $mcache, $html, $cfg;
|
||||
global $mcache, $html, $cfg;
|
||||
|
||||
if ($cache)
|
||||
$mcache->delete($cache);
|
||||
|
||||
$tpl = $device == '!mobile' ? '' : '/megp';
|
||||
$tpl = '';
|
||||
|
||||
$html->get('out');
|
||||
|
||||
|
@ -435,9 +431,7 @@ class sys
|
|||
if ($go)
|
||||
sys::outjs(array('e' => sys::text('output', 'auth')));
|
||||
|
||||
global $device;
|
||||
|
||||
$link = $device == '!mobile' ? 'user/section/lk' : '';
|
||||
$link = 'user/section/lk';
|
||||
|
||||
exit(header('Refresh: 0; URL=' . $cfg['http'] . $link));
|
||||
}
|
||||
|
@ -453,9 +447,7 @@ class sys
|
|||
if ($go)
|
||||
sys::outjs(array('e' => sys::text('output', 'noauth')));
|
||||
|
||||
global $device;
|
||||
|
||||
$link = $device == '!mobile' ? 'user/section/auth' : 'auth';
|
||||
$link = 'user/section/auth';
|
||||
|
||||
exit(header('Refresh: 0; URL=' . $cfg['http'] . $link));
|
||||
}
|
||||
|
|
|
@ -1,114 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
// Парсинг адреса
|
||||
$url = is_array(sys::url()) ? sys::url() : array();
|
||||
$route = sys::url(false);
|
||||
$section = isset($url['section']) ? $url['section'] : false;
|
||||
|
||||
$id = array_key_exists('id', $url) ? sys::int($url['id']) : false;
|
||||
$go = array_key_exists('go', $url);
|
||||
$page = array_key_exists('page', $url) ? sys::int($url['page']) : 1;
|
||||
$route = $route == '' ? 'index' : $route;
|
||||
|
||||
$auth = false;
|
||||
|
||||
// Проверка cookie на авторизацию
|
||||
$aAuth = array();
|
||||
|
||||
$aAuth['login'] = isset($_COOKIE['egp_login']) ? $_COOKIE['egp_login'] : '';
|
||||
$aAuth['passwd'] = isset($_COOKIE['egp_passwd']) ? $_COOKIE['egp_passwd'] : '';
|
||||
$aAuth['authkeycheck'] = isset($_COOKIE['egp_authkeycheck']) ? $_COOKIE['egp_authkeycheck'] : '';
|
||||
|
||||
$authkey = md5($aAuth['login'] . $uip . $aAuth['passwd']);
|
||||
$userkey = md5($aAuth['login'] . $authkey . $aAuth['passwd']);
|
||||
|
||||
if (!in_array('', $aAuth) && $authkey == $aAuth['authkeycheck']) {
|
||||
$users = $mcache->get('users_auth');
|
||||
|
||||
$user = isset($users[$userkey]) ? $users[$userkey] : 0;
|
||||
|
||||
if (!$user) {
|
||||
if ((!sys::valid($aAuth['login'], 'other', $aValid['login'])) && !sys::valid($aAuth['passwd'], 'md5')) {
|
||||
$sql->query('SELECT `id` FROM `users` WHERE `login`="' . $aAuth['login'] . '" AND `passwd`="' . $aAuth['passwd'] . '" LIMIT 1');
|
||||
if ($sql->num()) {
|
||||
$sql->query('SELECT `id`, `login`, `passwd`, `balance`, `group`, `level`, `time` FROM `users` WHERE `login`="' . $aAuth['login'] . '" AND `passwd`="' . $aAuth['passwd'] . '" LIMIT 1');
|
||||
$user = array_merge(array('authkey' => $authkey), $sql->get());
|
||||
|
||||
$auth = 1;
|
||||
|
||||
sys::users($users, $user, $authkey);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$auth) {
|
||||
sys::cookie('egp_login', 'quit', -1);
|
||||
sys::cookie('egp_passwd', 'quit', -1);
|
||||
sys::cookie('egp_authkeycheck', 'quit', -1);
|
||||
}
|
||||
} else {
|
||||
$sql->query('SELECT `balance`, `time` FROM `users` WHERE `id`="' . $user['id'] . '" LIMIT 1');
|
||||
$user = array_merge($user, $sql->get());
|
||||
|
||||
sys::user($user);
|
||||
|
||||
$auth = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Заголовок
|
||||
$title = '';
|
||||
|
||||
// Подключение файла
|
||||
if (in_array($route, $amRoute))
|
||||
include(ENG . 'megp/' . $route . '.php');
|
||||
else
|
||||
include(ENG . 'megp/index.php');
|
||||
|
||||
// Обновление ссылок
|
||||
if (isset($html->arr['main'])) {
|
||||
$html->upd(
|
||||
array(
|
||||
'[home]',
|
||||
'[js]',
|
||||
'[css]',
|
||||
'[img]'
|
||||
),
|
||||
|
||||
array(
|
||||
$cfg['http'],
|
||||
$cfg['http'] . 'template/megp/js/',
|
||||
$cfg['http'] . 'template/megp/css/',
|
||||
$cfg['http'] . 'template/megp/images/'
|
||||
),
|
||||
'main'
|
||||
);
|
||||
}
|
||||
|
||||
// Заготовка выхлопа
|
||||
$html->get('all');
|
||||
$html->set('title', $title . ' | ' . $cfg['name']);
|
||||
$html->set('home', $cfg['http']);
|
||||
$html->set('js', $cfg['http'] . 'template/megp/js/');
|
||||
$html->set('css', $cfg['http'] . 'template/megp/css/');
|
||||
$html->set('img', $cfg['http'] . 'template/megp/images/');
|
||||
|
||||
if ($auth)
|
||||
$html->set('server_menu', isset($html->arr['vmenu']) ? $html->arr['vmenu'] : '');
|
||||
else
|
||||
$html->set('server_menu', '');
|
||||
|
||||
$html->set('main', isset($html->arr['main']) ? $html->arr['main'] : '', true);
|
||||
$html->pack('all');
|
||||
|
||||
// Блоки
|
||||
if ($auth) {
|
||||
// Проверка наличия игрового сервера
|
||||
$servers = $sql->query('(SELECT `id` FROM `servers` WHERE `user`="' . $user['id'] . '" LIMIT 1) UNION (SELECT `id` FROM `owners` WHERE `user`="' . $user['id'] . '" LIMIT 1)');
|
||||
|
||||
if ($sql->num())
|
||||
$html->unitall('all', 'servers', 1, 1);
|
||||
else
|
||||
$html->unitall('all', 'servers', 0, 1);
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `id` FROM `news`');
|
||||
|
||||
$aPage = sys::page($page, $sql->num(), $cfg['news_page']);
|
||||
|
||||
sys::page_gen($aPage['ceil'], $page, $aPage['page'], 'news');
|
||||
|
||||
$sql->query('SELECT `id`, `name`, `text`, `views`, `tags`, `date` FROM `news` ORDER BY `id` DESC LIMIT ' . $aPage['num'] . ', ' . $cfg['news_page']);
|
||||
while ($news = $sql->get()) {
|
||||
$html->get('list', 'sections/news');
|
||||
$html->set('id', $news['id']);
|
||||
$html->set('name', htmlspecialchars_decode($news['name']));
|
||||
$html->set('text', htmlspecialchars_decode($news['text']));
|
||||
$html->set('views', $news['views']);
|
||||
$html->set('tags', sys::tags($news['tags']));
|
||||
$html->set('date', sys::today($news['date']));
|
||||
$html->pack('news');
|
||||
}
|
||||
|
||||
$html->get('all', 'sections/news');
|
||||
$html->set('list', isset($html->arr['news']) ? $html->arr['news'] : '');
|
||||
$html->set('pages', isset($html->arr['pages']) ? $html->arr['pages'] : '');
|
||||
$html->pack('main');
|
|
@ -1,31 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `id`, `name`, `full_text`, `views`, `tags`, `date` FROM `news` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (!$sql->num())
|
||||
include(ENG . '404.php');
|
||||
|
||||
$news = $sql->get();
|
||||
|
||||
$sql->query('UPDATE `news` set `views`="' . ($news['views'] + 1) . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
$text = htmlspecialchars_decode($news['full_text']);
|
||||
|
||||
$title = $news['name'];
|
||||
$description = $text;
|
||||
$keywords = $news['tags'];
|
||||
|
||||
$html->nav($news['name']);
|
||||
|
||||
$html->get('news', 'sections/news');
|
||||
|
||||
$html->set('id', $news['id']);
|
||||
$html->set('name', htmlspecialchars_decode($news['name']));
|
||||
$html->set('text', $text);
|
||||
$html->set('views', $news['views']);
|
||||
$html->set('tags', sys::tags($news['tags']));
|
||||
$html->set('date', sys::today($news['date']));
|
||||
|
||||
$html->pack('main');
|
|
@ -1,5 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
include(SEC . 'servers/action.php');
|
|
@ -1,10 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `address`, `game`, `status`, `plugins_use`, `ftp_use`, `console_use`, `stats_use`, `copy_use`, `web_use`, `time` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = $sql->get();
|
||||
|
||||
sys::nav($server, $id, 'boost');
|
||||
|
||||
include(sys::route($server, 'boost', $go));
|
|
@ -1,10 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `address`, `game`, `status`, `plugins_use`, `ftp_use`, `console_use`, `stats_use`, `copy_use`, `web_use`, `time` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = $sql->get();
|
||||
|
||||
sys::nav($server, $id, 'console');
|
||||
|
||||
include(sys::route($server, 'console', $go));
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go)
|
||||
include(SEC . 'servers/' . $server['game'] . '/console.php');
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `time_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$html->get('console', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->pack('main');
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `tarif`, `slots_start`, `online`, `players`, `name`, `pack`, `map`, `time`, `date`, `overdue` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$btn = sys::buttons($id, $server['status'], $server['game']);
|
||||
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('index', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('unit', $unit['name']);
|
||||
$html->set('tarif', $tarif['name']);
|
||||
$tarif['packs'] = sys::b64djs($tarif['packs']);
|
||||
$html->set('pack', $tarif['packs'][$server['pack']]);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
$html->set('time', sys::today($server['time']));
|
||||
$html->set('date', sys::today($server['date']));
|
||||
$html->set('btn', $btn);
|
||||
$html->pack('main');
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `pack`, `ddos` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$aSub = array('start', 'pack');
|
||||
|
||||
// Если выбран подраздел
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
if ($go)
|
||||
$nmch = sys::rep_act('server_settings_go_' . $id, 10);
|
||||
|
||||
$dir = $url['subsection'] == 'start' ? 'megp/' : '';
|
||||
|
||||
if (in_array($url['subsection'], $aRouteSub['settings']))
|
||||
include(SEC . 'servers/games/settings/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . $dir . 'servers/' . $server['game'] . '/settings/' . $url['subsection'] . '.php');
|
||||
} else {
|
||||
if ($mcache->get('server_settings_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_settings_' . $id);
|
||||
else {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Построение списка доступных сборок
|
||||
$aPacks = sys::b64djs($tarif['packs']);
|
||||
|
||||
$packs = '<option value="' . $server['pack'] . '">' . $aPacks[$server['pack']] . '</option>';
|
||||
unset($aPacks[$server['pack']]);
|
||||
|
||||
foreach ($aPacks as $pack => $desc)
|
||||
$packs .= '<option value="' . $pack . '">' . $desc . '</option>';
|
||||
|
||||
$html->get('settings', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('packs', $packs);
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_settings_' . $id, $html->arr['main'], false, 20);
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `slots`, `slots_start`, `autorestart` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
|
||||
// Сохранение
|
||||
if ($go and $url['save']) {
|
||||
$value = isset($url['value']) ? sys::int($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
switch ($url['save']) {
|
||||
case 'slots':
|
||||
$slots = $value > $server['slots'] ? $server['slots'] : $value;
|
||||
$slots = $value < 2 ? 2 : $slots;
|
||||
|
||||
if ($slots != $server['slots_start'])
|
||||
$sql->query('UPDATE `servers` set `slots_start`="' . $slots . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// Генерация списка слот
|
||||
$slots = '';
|
||||
|
||||
for ($slot = 2; $slot <= $server['slots']; $slot += 1)
|
||||
$slots .= '<option value="' . $slot . '">' . $slot . ' шт.</option>';
|
||||
|
||||
// Авторестарт при зависании
|
||||
$autorestart = $server['autorestart'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
$html->get('start', 'sections/servers/' . $server['game'] . '/settings');
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('autorestart', $autorestart);
|
||||
$html->set('slots', str_replace('"' . $server['slots_start'] . '"', '"' . $server['slots_start'] . '" selected="select"', $slots));
|
||||
|
||||
$html->pack('main');
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `name`, `slots_min`, `slots_max`, `install`, `timext`, `discount`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Подразделы
|
||||
$aSub = array('extend', 'slots');
|
||||
|
||||
include(SEC . 'megp/servers/games/tarif.php');
|
|
@ -1,46 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$aData = array();
|
||||
|
||||
// Если не расчетный период
|
||||
if (!$cfg['settlement_period']) {
|
||||
$aData['time'] = isset($_POST['time']) ? sys::int($_POST['time']) : sys::outjs(array('e' => 'Переданы не все данные'), $nmch);
|
||||
|
||||
// Проверка периода
|
||||
if (!in_array($aData['time'], explode(':', $tarif['timext'])))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
}
|
||||
|
||||
$aData['promo'] = isset($_POST['promo']) ? $_POST['promo'] : '';
|
||||
$aData['address'] = isset($_POST['address']) ? $_POST['address'] : false;
|
||||
$aData['server'] = $id;
|
||||
$aData['user'] = $server['user'];
|
||||
$aData['tarif'] = $server['tarif'];
|
||||
$aData['slots'] = $server['slots'];
|
||||
|
||||
// Цена за выделенный адрес
|
||||
$add_sum = tarifs::address_add_sum($aData['address'], $server);
|
||||
|
||||
// Цена за 30 дней 1 слота
|
||||
$price = $tarif['price'];
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = $server['time'];
|
||||
|
||||
// Цена аренды
|
||||
$sum = games::define_sum($tarif['discount'], $price, $server['slots'], $aData['time'], 'extend') + $add_sum;
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = games::define_period('extend', params::$aDayMonth, $server['time']);
|
||||
|
||||
$days = params::$aDayMonth[date('n', $server['time'])] == $aData['time'] ? 'месяц' : games::parse_day($aData['time'], true);
|
||||
|
||||
include(SEC . 'servers/games/tarif/extend.php');
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
// Если фикс. значение слот
|
||||
if ($tarif['slots_min'] == $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'На данном тарифе нельзя изменить количество слот.'), $nmch);
|
||||
|
||||
$slots = isset($url['slots']) ? sys::int($url['slots']) : sys::outjs(array('e' => 'Переданы не все данные.'), $nmch);
|
||||
|
||||
$overdue = $server['time'] < $start_point;
|
||||
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Цена за 1 день
|
||||
$price = $tarif['price'] / 30;
|
||||
|
||||
// Цена аренды за остаток дней (с текущим кол-вом слот)
|
||||
$price_old = ($server['time'] - $start_point) / 86400 * $price * $server['slots'];
|
||||
}
|
||||
|
||||
$max = $tarif['slots_max'] - $server['slots'];
|
||||
|
||||
// Сумма за добавляемые слоты
|
||||
$sum = round(($server['time'] - $start_point) / 86400 * ($tarif['price'] / 30) * $slots, 2);
|
||||
|
||||
include(SEC . 'servers/games/tarif/slots.php');
|
|
@ -1,66 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go) {
|
||||
$aData = array();
|
||||
|
||||
$aData['site'] = isset($url['site']) ? $url['site'] : sys::outjs(array('e' => 'Необходимо указать сервис.'));
|
||||
$aData['service'] = isset($url['service']) ? sys::int($url['service']) : sys::outjs(array('e' => 'Необходимо указать номер услуги.'));
|
||||
|
||||
include(DATA . 'boost.php');
|
||||
|
||||
// Проверка сервиса
|
||||
if (!array_key_exists($aData['site'], $aBoost[$server['game']]))
|
||||
sys::outjs(array('e' => 'Указанный сервис по раскрутке не найден.'));
|
||||
|
||||
// Проверка номера услуги
|
||||
if (!in_array($aData['service'], $aBoost[$server['game']][$aData['site']]['services']))
|
||||
sys::outjs(array('e' => 'Неправильно указан номер услуги.'));
|
||||
|
||||
// Определение суммы
|
||||
$sum = $aBoost[$server['game']][$aData['site']]['price'][$aData['service']];
|
||||
|
||||
// Проверка баланса
|
||||
if ($user['balance'] < $sum)
|
||||
sys::outjs(array('e' => 'У вас не хватает ' . (round($sum - $user['balance'], 2)) . ' ' . $cfg['currency']), $name_mcache);
|
||||
|
||||
include(LIB . 'games/boost.php');
|
||||
|
||||
$boost = new boost($aBoost[$server['game']][$aData['site']]['key'], $aBoost[$server['game']][$aData['site']]['api']);
|
||||
|
||||
$buy = $boost->$aBoost[$server['game']][$aData['site']]['type'](array('period' => $aData['service'], 'address' => $server['address']));
|
||||
|
||||
if (is_array($buy))
|
||||
sys::outjs(array('e' => $buy['error']));
|
||||
|
||||
// Списание средств с баланса пользователя
|
||||
$sql->query('UPDATE `users` set `balance`="' . ($user['balance'] - $sum) . '" WHERE `id`="' . $user['id'] . '" LIMIT 1');
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
|
||||
// Реф. система
|
||||
games::part($user['id'], $sum);
|
||||
|
||||
$sql->query('INSERT INTO `logs` set `user`="' . $user['id'] . '", `text`="' . sys::updtext(sys::text('logs', 'buy_boost'),
|
||||
array('circles' => $aBoost[$server['game']][$aData['site']]['circles'][$aData['service']],
|
||||
'money' => $sum, 'site' => $aBoost[$server['game']][$aData['site']]['site'], 'id' => $id)) . '", `date`="' . $start_point . '", `type`="boost", `money`="' . $sum . '"');
|
||||
|
||||
$sql->query('INSERT INTO `boost` set `user`="' . $user['id'] . '", `server`="' . $id . '", `site`="' . $aData['site'] . '", `circles`="' . $aBoost[$server['game']][$aData['site']]['circles'][$aData['service']] . '", `money`="' . $sum . '", `date`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $name_mcache);
|
||||
}
|
||||
|
||||
if ($mcache->get('server_boost_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_boost_' . $id);
|
||||
else {
|
||||
$html->get('boost', 'sections/servers/' . $server['game']);
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('cur', $cfg['currency']);
|
||||
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_boost_' . $id, $html->arr['main'], false, 4);
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go)
|
||||
include(SEC . 'servers/' . $server['game'] . '/console.php');
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `time_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$html->get('console', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->pack('main');
|
|
@ -1,40 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `tarif`, `slots_start`, `online`, `players`, `name`, `pack`, `fps`, `map`, `time`, `date`, `overdue` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$btn = sys::buttons($id, $server['status']);
|
||||
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('index', 'sections/servers/' . $server['game']);
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('unit', $unit['name']);
|
||||
$html->set('tarif', $tarif['name'] . ' / ' . $server['fps'] . ' FPS');
|
||||
|
||||
$tarif['packs'] = sys::b64djs($tarif['packs']);
|
||||
|
||||
$html->set('pack', $tarif['packs'][$server['pack']]);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('players', base64_decode($server['players']));
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
$html->set('time', sys::today($server['time']));
|
||||
$html->set('date', sys::today($server['date']));
|
||||
|
||||
$html->set('btn', $btn);
|
||||
|
||||
$html->pack('main');
|
|
@ -1,49 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `pack`, `ddos` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$aSub = array('start', 'pack', 'antiddos');
|
||||
|
||||
// Если выбран подраздел
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
if ($go)
|
||||
$nmch = sys::rep_act('server_settings_go_' . $id, 10);
|
||||
|
||||
$dir = $url['subsection'] == 'start' ? 'megp/' : '';
|
||||
|
||||
if (in_array($url['subsection'], $aRouteSub['settings']))
|
||||
include(SEC . 'servers/games/settings/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . $dir . 'servers/' . $server['game'] . '/settings/' . $url['subsection'] . '.php');
|
||||
} else {
|
||||
if ($mcache->get('server_settings_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_settings_' . $id);
|
||||
else {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Построение списка доступных сборок
|
||||
$aPacks = sys::b64djs($tarif['packs']);
|
||||
|
||||
$packs = '<option value="' . $server['pack'] . '">' . $aPacks[$server['pack']] . '</option>';
|
||||
unset($aPacks[$server['pack']]);
|
||||
|
||||
foreach ($aPacks as $pack => $desc)
|
||||
$packs .= '<option value="' . $pack . '">' . $desc . '</option>';
|
||||
|
||||
$antiddos = '<option value="0">Индивидуальная защита отключена</option>'
|
||||
. '<option value="1">Индивидуальная защита (Заблокировать всех кроме: RU, UA)</option>'
|
||||
. '<option value="2">Индивидуальная защита (Заблокировать всех кроме: AM, BY, UA, RU, KZ)</option>';
|
||||
|
||||
$html->get('settings', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('packs', $packs);
|
||||
$html->set('antiddos', str_replace($server['ddos'], $server['ddos'] . '" selected="select', $antiddos));
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_settings_' . $id, $html->arr['main'], false, 20);
|
||||
}
|
||||
}
|
|
@ -1,152 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `slots`, `slots_start`, `map_start`, `vac`, `fps`, `fastdl`, `autorestart`, `pingboost` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `address`, `passwd` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `install`, `fps`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
include(LIB . 'games/tarifs.php');
|
||||
include(LIB . 'games/' . $server['game'] . '/tarif.php');
|
||||
|
||||
// Вывод списка карт
|
||||
if (isset($url['maps']))
|
||||
games::maplist($id, $unit, $tarif['install'] . $server['uid'] . '/cstrike/maps', $server['map_start'], false);
|
||||
|
||||
// Сохранение
|
||||
if ($go and $url['save']) {
|
||||
$value = isset($url['value']) ? sys::int($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
switch ($url['save']) {
|
||||
case 'map':
|
||||
$map = isset($url['value']) ? trim($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
if ($map != $server['map_start'])
|
||||
games::maplist($id, $unit, $tarif['install'] . $server['uid'] . '/cstrike/maps', $map, true, $nmch);
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'vac':
|
||||
if ($value != $server['vac'])
|
||||
$sql->query('UPDATE `servers` set `vac`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'slots':
|
||||
$slots = $value > $server['slots'] ? $server['slots'] : $value;
|
||||
$slots = $value < 2 ? 2 : $slots;
|
||||
|
||||
if ($slots != $server['slots_start'])
|
||||
$sql->query('UPDATE `servers` set `slots_start`="' . $slots . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'autorestart':
|
||||
if ($value != $server['autorestart'])
|
||||
$sql->query('UPDATE `servers` set `autorestart`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'fps':
|
||||
if (!tarif::price($tarif['price']) and in_array($value, explode(':', $tarif['fps'])))
|
||||
$sql->query('UPDATE `servers` set `fps`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'pingboost':
|
||||
if ($cfg['change_pingboost'] and in_array($value, array(1, 2, 3)))
|
||||
$sql->query('UPDATE `servers` set `pingboost`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'fastdl':
|
||||
include(LIB . 'ssh.php');
|
||||
|
||||
if (!$ssh->auth($unit['passwd'], $unit['address']))
|
||||
sys::outjs(array('e' => sys::text('error', 'ssh')), $nmch);
|
||||
|
||||
if ($value) {
|
||||
$fastdl = 'sv_downloadurl "http://' . sys::first(explode(':', $unit['address'])) . ':8080/fast_' . $server['uid'] . '"' . PHP_EOL
|
||||
. 'sv_consistency 1' . PHP_EOL
|
||||
. 'sv_allowupload 1' . PHP_EOL
|
||||
. 'sv_allowdownload 1';
|
||||
|
||||
// Временый файл
|
||||
$temp = sys::temp($fastdl);
|
||||
|
||||
$ssh->setfile($temp, $tarif['install'] . $server['uid'] . '/cstrike/fastdl.cfg', 0644);
|
||||
|
||||
$ssh->set('chown server' . $server['uid'] . ':servers ' . $tarif['install'] . $server['uid'] . '/cstrike/fastdl.cfg;'
|
||||
. 'ln -s ' . $tarif['install'] . $server['uid'] . '/cstrike /var/nginx/fast_' . $server['uid'] . ';'
|
||||
. 'sed -i ' . "'s/exec fastdl.cfg//g'" . ' ' . $tarif['install'] . $server['uid'] . '/cstrike/server.cfg;'
|
||||
. 'echo "exec fastdl.cfg" >> ' . $tarif['install'] . $server['uid'] . '/cstrike/server.cfg');
|
||||
|
||||
unlink($temp);
|
||||
} else
|
||||
$ssh->set('sed -i ' . "'s/exec fastdl.cfg//g'" . ' ' . $tarif['install'] . $server['uid'] . '/cstrike/server.cfg;'
|
||||
. 'rm ' . $tarif['install'] . $server['uid'] . '/cstrike/fastdl.cfg; rm /var/nginx/fast_' . $server['uid']);
|
||||
|
||||
$sql->query('UPDATE `servers` set `fastdl`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// Генерация списка слот
|
||||
$slots = '';
|
||||
|
||||
for ($slot = 2; $slot <= $server['slots']; $slot += 1)
|
||||
$slots .= '<option value="' . $slot . '">' . $slot . ' шт.</option>';
|
||||
|
||||
// Античит VAC
|
||||
$vac = $server['vac'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
// Быстрая скачака
|
||||
$fastdl = $server['fastdl'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
// Авторестарт при зависании
|
||||
$autorestart = $server['autorestart'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
$fps = '<option value="' . $server['fps'] . '">' . $server['fps'] . ' FPS</option>';
|
||||
|
||||
if (!tarif::price($tarif['price'])) {
|
||||
$aFps = explode(':', $tarif['fps']);
|
||||
|
||||
unset($aFps[array_search($server['fps'], $aFps)]);
|
||||
|
||||
if (count($aFps))
|
||||
foreach ($aFps as $value)
|
||||
$fps .= '<option value="' . $value . '">' . $value . ' FPS</option>';
|
||||
}
|
||||
|
||||
if ($cfg['change_pingboost'])
|
||||
$pingboost = str_replace($server['pingboost'] . '"', $server['pingboost'] . '" selected="select"', '<option value="1">PINGBOOST 1</option><option value="2">PINGBOOST 2</option><option value="3">PINGBOOST 3</option>');
|
||||
|
||||
$html->get('start', 'sections/servers/' . $server['game'] . '/settings');
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('map', $server['map_start']);
|
||||
$html->set('vac', $vac);
|
||||
$html->set('fastdl', $fastdl);
|
||||
$html->set('autorestart', $autorestart);
|
||||
$html->set('slots', str_replace('"' . $server['slots_start'] . '"', '"' . $server['slots_start'] . '" selected="select"', $slots));
|
||||
|
||||
if ($cfg['change_pingboost']) {
|
||||
$html->unit('pingboost', true);
|
||||
$html->set('pingboost', $pingboost);
|
||||
} else
|
||||
$html->unit('pingboost');
|
||||
|
||||
if (!tarif::price($tarif['price'])) {
|
||||
$html->unit('fps', true);
|
||||
$html->set('fps', $fps);
|
||||
} else
|
||||
$html->unit('fps');
|
||||
|
||||
$html->pack('main');
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `name`, `slots_min`, `slots_max`, `install`, `fps`, `timext`, `discount`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Подразделы
|
||||
$aSub = array('extend', 'plan', 'slots');
|
||||
|
||||
include(SEC . 'megp/servers/games/tarif.php');
|
|
@ -1,50 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$aData = array();
|
||||
|
||||
// Если не расчетный период
|
||||
if (!$cfg['settlement_period']) {
|
||||
$aData['time'] = isset($_POST['time']) ? sys::int($_POST['time']) : sys::outjs(array('e' => 'Переданы не все данные'), $nmch);
|
||||
|
||||
// Проверка периода
|
||||
if (!in_array($aData['time'], explode(':', $tarif['timext'])))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
}
|
||||
|
||||
$aData['promo'] = isset($_POST['promo']) ? $_POST['promo'] : '';
|
||||
$aData['address'] = isset($_POST['address']) ? $_POST['address'] : false;
|
||||
$aData['server'] = $id;
|
||||
$aData['user'] = $server['user'];
|
||||
$aData['tarif'] = $server['tarif'];
|
||||
$aData['fps'] = $server['fps'];
|
||||
$aData['slots'] = $server['slots'];
|
||||
|
||||
// Цена за выделенный адрес
|
||||
$add_sum = tarifs::address_add_sum($aData['address'], $server);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
$aFPS = explode(':', $tarif['fps']);
|
||||
|
||||
// Цена за 30 дней 1 слота
|
||||
$price = $aPrice[array_search($server['fps'], $aFPS)];
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = $server['time'];
|
||||
|
||||
// Цена аренды
|
||||
$sum = games::define_sum($tarif['discount'], $price, $server['slots'], $aData['time'], 'extend') + $add_sum;
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = games::define_period('extend', params::$aDayMonth, $server['time']);
|
||||
|
||||
$days = params::$aDayMonth[date('n', $server['time'])] == $aData['time'] ? 'месяц' : games::parse_day($aData['time'], true);
|
||||
|
||||
include(SEC . 'servers/games/tarif/extend.php');
|
|
@ -1,61 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$plan = isset($url['plan']) ? sys::int($url['plan']) : sys::outjs(array('e' => 'Переданые не все данные'), $nmch);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
$aFPS = explode(':', $tarif['fps']);
|
||||
|
||||
// Проверка плана
|
||||
if (array_search($plan, $aFPS) === FALSE)
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
if ($plan == $server['fps'])
|
||||
sys::outjs(array('e' => 'Смысла в этой операции нет'), $nmch);
|
||||
|
||||
if (!tarif::price($tarif['price']))
|
||||
sys::outjs(array('e' => 'Чтобы изменить тариф, перейдите в настройки запуска'), $nmch);
|
||||
|
||||
if ($server['time'] < $start_point + 86400)
|
||||
$time = $server['time'];
|
||||
else {
|
||||
// Цена за 1 день аренды (по новому тарифному плану)
|
||||
$price = $aPrice[array_search($plan, $aFPS)] / 30 * $server['slots'];
|
||||
|
||||
// Цена за 1 день аренды (по старому тарифному плану)
|
||||
$price_old = $aPrice[array_search($server['fps'], $aFPS)] / 30 * $server['slots'];
|
||||
|
||||
// Остаток дней аренды
|
||||
$days = ($server['time'] - $start_point) / 86400;
|
||||
|
||||
$time = date('H:i:s', $server['time']);
|
||||
$date = date('d.m.Y', round($start_point + $days * $price_old / $price * 86400 - 86400));
|
||||
|
||||
$aDate = explode('.', $date);
|
||||
$aTime = explode(':', $time);
|
||||
|
||||
$time = mktime($aTime[0], $aTime[1], $aTime[2], $aDate[1], $aDate[0], $aDate[2]);
|
||||
}
|
||||
|
||||
// Выполнение смена тарифного плана
|
||||
if ($go) {
|
||||
$sql->query('UPDATE `servers` set `time`="' . $time . '", `fps`="' . $plan . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart', 'change'))) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_plan') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => date('d.m.Y - H:i', $time) . ' (' . sys::date('min', $time) . ')'), $nmch);
|
|
@ -1,32 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
// Если фикс. значение слот
|
||||
if ($tarif['slots_min'] == $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'На данном тарифе нельзя изменить количество слот.'), $nmch);
|
||||
|
||||
$slots = isset($url['slots']) ? sys::int($url['slots']) : sys::outjs(array('e' => 'Переданы не все данные.'), $nmch);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
$aFPS = explode(':', $tarif['fps']);
|
||||
|
||||
$overdue = $server['time'] < $start_point;
|
||||
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Цена за 1 день 1 слота
|
||||
$price = $aPrice[array_search($server['fps'], $aFPS)] / 30;
|
||||
|
||||
// Цена аренды за остаток дней (с текущим кол-вом слот)
|
||||
$price_old = ($server['time'] - $start_point) / 86400 * $price * $server['slots'];
|
||||
}
|
||||
|
||||
$max = $tarif['slots_max'] - $server['slots'];
|
||||
|
||||
// Сумма за добавляемые слоты
|
||||
$sum = round(($server['time'] - $start_point) / 86400 * ($aPrice[array_search($server['fps'], $aFPS)] / 30) * $slots, 2);
|
||||
|
||||
include(SEC . 'servers/games/tarif/slots.php');
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go)
|
||||
include(SEC . 'servers/' . $server['game'] . '/console.php');
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `time_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$html->get('console', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->pack('main');
|
|
@ -1,40 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `tarif`, `slots_start`, `online`, `players`, `name`, `pack`, `fps`, `map`, `time`, `date`, `overdue` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$btn = sys::buttons($id, $server['status']);
|
||||
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('index', 'sections/servers/' . $server['game']);
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('unit', $unit['name']);
|
||||
$html->set('tarif', $tarif['name'] . ' / ' . $server['fps'] . ' FPS');
|
||||
|
||||
$tarif['packs'] = sys::b64djs($tarif['packs']);
|
||||
|
||||
$html->set('pack', $tarif['packs'][$server['pack']]);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('players', base64_decode($server['players']));
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
$html->set('time', sys::today($server['time']));
|
||||
$html->set('date', sys::today($server['date']));
|
||||
|
||||
$html->set('btn', $btn);
|
||||
|
||||
$html->pack('main');
|
|
@ -1,49 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `pack`, `ddos` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$aSub = array('start', 'pack', 'antiddos');
|
||||
|
||||
// Если выбран подраздел
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
if ($go)
|
||||
$nmch = sys::rep_act('server_settings_go_' . $id, 10);
|
||||
|
||||
$dir = $url['subsection'] == 'start' ? 'megp/' : '';
|
||||
|
||||
if (in_array($url['subsection'], $aRouteSub['settings']))
|
||||
include(SEC . 'servers/games/settings/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . $dir . 'servers/' . $server['game'] . '/settings/' . $url['subsection'] . '.php');
|
||||
} else {
|
||||
if ($mcache->get('server_settings_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_settings_' . $id);
|
||||
else {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Построение списка доступных сборок
|
||||
$aPacks = sys::b64djs($tarif['packs']);
|
||||
|
||||
$packs = '<option value="' . $server['pack'] . '">' . $aPacks[$server['pack']] . '</option>';
|
||||
unset($aPacks[$server['pack']]);
|
||||
|
||||
foreach ($aPacks as $pack => $desc)
|
||||
$packs .= '<option value="' . $pack . '">' . $desc . '</option>';
|
||||
|
||||
$antiddos = '<option value="0">Индивидуальная защита отключена</option>'
|
||||
. '<option value="1">Индивидуальная защита (Заблокировать всех кроме: RU, UA)</option>'
|
||||
. '<option value="2">Индивидуальная защита (Заблокировать всех кроме: AM, BY, UA, RU, KZ)</option>';
|
||||
|
||||
$html->get('settings', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('packs', $packs);
|
||||
$html->set('antiddos', str_replace($server['ddos'], $server['ddos'] . '" selected="select', $antiddos));
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_settings_' . $id, $html->arr['main'], false, 20);
|
||||
}
|
||||
}
|
|
@ -1,137 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `slots`, `slots_start`, `map_start`, `vac`, `fastdl`, `autorestart`, `fps`, `tickrate` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `address`, `passwd` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `install`, `tickrate`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
include(LIB . 'games/tarifs.php');
|
||||
include(LIB . 'games/' . $server['game'] . '/tarif.php');
|
||||
|
||||
// Вывод списка карт
|
||||
if (isset($url['maps']))
|
||||
games::maplist($id, $unit, $tarif['install'] . $server['uid'] . '/csgo/maps', $server['map_start'], false);
|
||||
|
||||
// Сохранение
|
||||
if ($go and $url['save']) {
|
||||
$value = isset($url['value']) ? sys::int($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
switch ($url['save']) {
|
||||
case 'map':
|
||||
$map = isset($url['value']) ? trim($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
if ($map != $server['map_start'])
|
||||
games::maplist($id, $unit, $tarif['install'] . $server['uid'] . '/csgo/maps', $map, true, $nmch);
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'vac':
|
||||
if ($value != $server['vac'])
|
||||
$sql->query('UPDATE `servers` set `vac`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'slots':
|
||||
$slots = $value > $server['slots'] ? $server['slots'] : $value;
|
||||
$slots = $value < 2 ? 2 : $slots;
|
||||
|
||||
if ($slots != $server['slots_start'])
|
||||
$sql->query('UPDATE `servers` set `slots_start`="' . $slots . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'autorestart':
|
||||
if ($value != $server['autorestart'])
|
||||
$sql->query('UPDATE `servers` set `autorestart`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'tickrate':
|
||||
if (!tarif::price($tarif['price']) and in_array($value, explode(':', $tarif['tickrate'])))
|
||||
$sql->query('UPDATE `servers` set `tickrate`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'fastdl':
|
||||
include(LIB . 'ssh.php');
|
||||
|
||||
if (!$ssh->auth($unit['passwd'], $unit['address']))
|
||||
sys::outjs(array('e' => sys::text('error', 'ssh')), $nmch);
|
||||
|
||||
if ($value) {
|
||||
$fastdl = 'sv_downloadurl "http://' . sys::first(explode(':', $unit['address'])) . ':8080/fast_' . $server['uid'] . '"' . PHP_EOL
|
||||
. 'sv_consistency 1' . PHP_EOL
|
||||
. 'sv_allowupload 1' . PHP_EOL
|
||||
. 'sv_allowdownload 1';
|
||||
|
||||
// Временый файл
|
||||
$temp = sys::temp($fastdl);
|
||||
|
||||
$ssh->setfile($temp, $tarif['install'] . $server['uid'] . '/csgo/cfg/fastdl.cfg', 0644);
|
||||
|
||||
$ssh->set('chown server' . $server['uid'] . ':servers ' . $tarif['install'] . $server['uid'] . '/csgo/cfg/fastdl.cfg;'
|
||||
. 'ln -s ' . $tarif['install'] . $server['uid'] . '/csgo /var/nginx/fast_' . $server['uid'] . ';'
|
||||
. 'sed -i ' . "'s/exec fastdl.cfg//g'" . ' ' . $tarif['install'] . $server['uid'] . '/csgo/cfg/server.cfg;'
|
||||
. 'echo "exec fastdl.cfg" >> ' . $tarif['install'] . $server['uid'] . '/csgo/cfg/server.cfg');
|
||||
|
||||
unlink($temp);
|
||||
} else
|
||||
$ssh->set('sed -i ' . "'s/exec fastdl.cfg//g'" . ' ' . $tarif['install'] . $server['uid'] . '/csgo/cfg/server.cfg;'
|
||||
. 'rm ' . $tarif['install'] . $server['uid'] . '/csgo/cfg/fastdl.cfg; rm /var/nginx/fast_' . $server['uid']);
|
||||
|
||||
$sql->query('UPDATE `servers` set `fastdl`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// Генерация списка слот
|
||||
$slots = '';
|
||||
|
||||
for ($slot = 2; $slot <= $server['slots']; $slot += 1)
|
||||
$slots .= '<option value="' . $slot . '">' . $slot . ' шт.</option>';
|
||||
|
||||
// Античит VAC
|
||||
$vac = $server['vac'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
// Быстрая скачака
|
||||
$fastdl = $server['fastdl'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
// Авторестарт при зависании
|
||||
$autorestart = $server['autorestart'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
$tickrate = '<option value="' . $server['tickrate'] . '">' . $server['tickrate'] . ' TickRate</option>';
|
||||
|
||||
if (!tarif::price($tarif['price'])) {
|
||||
$aTick = explode(':', $tarif['tickrate']);
|
||||
|
||||
unset($aTick[array_search($server['tickrate'], $aTick)]);
|
||||
|
||||
if (count($aTick))
|
||||
foreach ($aTick as $value)
|
||||
$tickrate .= '<option value="' . $value . '">' . $value . ' TickRate</option>';
|
||||
}
|
||||
|
||||
$html->get('start', 'sections/servers/' . $server['game'] . '/settings');
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('map', $server['map_start']);
|
||||
$html->set('vac', $vac);
|
||||
$html->set('fastdl', $fastdl);
|
||||
$html->set('autorestart', $autorestart);
|
||||
$html->set('slots', str_replace('"' . $server['slots_start'] . '"', '"' . $server['slots_start'] . '" selected="select"', $slots));
|
||||
|
||||
if (!tarif::price($tarif['price'])) {
|
||||
$html->unit('tickrate', true);
|
||||
$html->set('tickrate', $tickrate);
|
||||
} else
|
||||
$html->unit('tickrate');
|
||||
|
||||
$html->pack('main');
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `name`, `slots_min`, `slots_max`, `install`, `fps`, `timext`, `discount`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Подразделы
|
||||
$aSub = array('extend', 'plan', 'slots');
|
||||
|
||||
include(SEC . 'megp/servers/games/tarif.php');
|
|
@ -1,49 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$aData = array();
|
||||
|
||||
// Если не расчетный период
|
||||
if (!$cfg['settlement_period']) {
|
||||
$aData['time'] = isset($_POST['time']) ? sys::int($_POST['time']) : sys::outjs(array('e' => 'Переданы не все данные'), $nmch);
|
||||
|
||||
// Проверка периода
|
||||
if (!in_array($aData['time'], explode(':', $tarif['timext'])))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
}
|
||||
|
||||
$aData['promo'] = isset($_POST['promo']) ? $_POST['promo'] : '';
|
||||
$aData['address'] = isset($_POST['address']) ? $_POST['address'] : false;
|
||||
$aData['server'] = $id;
|
||||
$aData['user'] = $server['user'];
|
||||
$aData['tarif'] = $server['tarif'];
|
||||
$aData['tickrate'] = $server['tickrate'];
|
||||
$aData['slots'] = $server['slots'];
|
||||
|
||||
// Цена за выделенный адрес
|
||||
$add_sum = tarifs::address_add_sum($aData['address'], $server);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
|
||||
// Цена за 30 дней 1 слота
|
||||
$price = $aPrice[array_search($server['tickrate'], explode(':', $tarif['tickrate']))];
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = $server['time'];
|
||||
|
||||
// Цена аренды
|
||||
$sum = games::define_sum($tarif['discount'], $price, $server['slots'], $aData['time'], 'extend') + $add_sum;
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = games::define_period('extend', params::$aDayMonth, $server['time']);
|
||||
|
||||
$days = params::$aDayMonth[date('n', $server['time'])] == $aData['time'] ? 'месяц' : games::parse_day($aData['time'], true);
|
||||
|
||||
include(SEC . 'servers/games/tarif/extend.php');
|
|
@ -1,61 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$plan = isset($url['plan']) ? sys::int($url['plan']) : sys::outjs(array('e' => 'Переданые не все данные'), $nmch);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
$aTICK = explode(':', $tarif['tickrate']);
|
||||
|
||||
// Проверка плана
|
||||
if (array_search($plan, $aTICK) === FALSE)
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
if ($plan == $server['tickrate'])
|
||||
sys::outjs(array('e' => 'Смысла в этой операции нет'), $nmch);
|
||||
|
||||
if (!tarif::price($tarif['price']))
|
||||
sys::outjs(array('e' => 'Чтобы изменить тариф, перейдите в настройки запуска'), $nmch);
|
||||
|
||||
if ($server['time'] < $start_point + 86400)
|
||||
$time = $server['time'];
|
||||
else {
|
||||
// Цена за 1 день аренды (по новому тарифному плану)
|
||||
$price = $aPrice[array_search($plan, $aTICK)] / 30 * $server['slots'];
|
||||
|
||||
// Цена за 1 день аренды (по старому тарифному плану)
|
||||
$price_old = $aPrice[array_search($server['tickrate'], $aTICK)] / 30 * $server['slots'];
|
||||
|
||||
// Остаток дней аренды
|
||||
$days = ($server['time'] - $start_point) / 86400;
|
||||
|
||||
$time = date('H:i:s', $server['time']);
|
||||
$date = date('d.m.Y', round($start_point + $days * $price_old / $price * 86400 - 86400));
|
||||
|
||||
$aDate = explode('.', $date);
|
||||
$aTime = explode(':', $time);
|
||||
|
||||
$time = mktime($aTime[0], $aTime[1], $aTime[2], $aDate[1], $aDate[0], $aDate[2]);
|
||||
}
|
||||
|
||||
// Выполнение смена тарифного плана
|
||||
if ($go) {
|
||||
$sql->query('UPDATE `servers` set `time`="' . $time . '", `tickrate`="' . $plan . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart', 'change'))) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_plan') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => date('d.m.Y - H:i', $time) . ' (' . sys::date('min', $time) . ')'), $nmch);
|
|
@ -1,32 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
// Если фикс. значение слот
|
||||
if ($tarif['slots_min'] == $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'На данном тарифе нельзя изменить количество слот.'), $nmch);
|
||||
|
||||
$slots = isset($url['slots']) ? sys::int($url['slots']) : sys::outjs(array('e' => 'Переданы не все данные.'), $nmch);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
$aTICK = explode(':', $tarif['tickrate']);
|
||||
|
||||
$overdue = $server['time'] < $start_point;
|
||||
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Цена за 1 день
|
||||
$price = $aPrice[array_search($server['tickrate'], $aTICK)] / 30;
|
||||
|
||||
// Цена аренды за остаток дней (с текущим кол-вом слот)
|
||||
$price_old = ($server['time'] - $start_point) / 86400 * $price * $server['slots'];
|
||||
}
|
||||
|
||||
$max = $tarif['slots_max'] - $server['slots'];
|
||||
|
||||
// Сумма за добавляемые слоты
|
||||
$sum = round(($server['time'] - $start_point) / 86400 * ($aPrice[array_search($server['tickrate'], $aTICK)] / 30) * $slots, 2);
|
||||
|
||||
include(SEC . 'servers/games/tarif/slots.php');
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go)
|
||||
include(SEC . 'servers/' . $server['game'] . '/console.php');
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `time_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$html->get('console', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->pack('main');
|
|
@ -1,40 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `tarif`, `slots_start`, `online`, `players`, `name`, `pack`, `fps`, `tickrate`, `map`, `time`, `date`, `overdue` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$btn = sys::buttons($id, $server['status']);
|
||||
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('index', 'sections/servers/' . $server['game']);
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('unit', $unit['name']);
|
||||
$html->set('tarif', $tarif['name'] . ' / ' . $server['fps'] . ' FPS / ' . $server['tickrate'] . ' TickRate');
|
||||
|
||||
$tarif['packs'] = sys::b64djs($tarif['packs']);
|
||||
|
||||
$html->set('pack', $tarif['packs'][$server['pack']]);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('players', base64_decode($server['players']));
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
$html->set('time', sys::today($server['time']));
|
||||
$html->set('date', sys::today($server['date']));
|
||||
|
||||
$html->set('btn', $btn);
|
||||
|
||||
$html->pack('main');
|
|
@ -1,49 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `pack`, `ddos` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$aSub = array('start', 'pack', 'antiddos');
|
||||
|
||||
// Если выбран подраздел
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
if ($go)
|
||||
$nmch = sys::rep_act('server_settings_go_' . $id, 10);
|
||||
|
||||
$dir = $url['subsection'] == 'start' ? 'megp/' : '';
|
||||
|
||||
if (in_array($url['subsection'], $aRouteSub['settings']))
|
||||
include(SEC . 'servers/games/settings/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . $dir . 'servers/' . $server['game'] . '/settings/' . $url['subsection'] . '.php');
|
||||
} else {
|
||||
if ($mcache->get('server_settings_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_settings_' . $id);
|
||||
else {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Построение списка доступных сборок
|
||||
$aPacks = sys::b64djs($tarif['packs']);
|
||||
|
||||
$packs = '<option value="' . $server['pack'] . '">' . $aPacks[$server['pack']] . '</option>';
|
||||
unset($aPacks[$server['pack']]);
|
||||
|
||||
foreach ($aPacks as $pack => $desc)
|
||||
$packs .= '<option value="' . $pack . '">' . $desc . '</option>';
|
||||
|
||||
$antiddos = '<option value="0">Индивидуальная защита отключена</option>'
|
||||
. '<option value="1">Индивидуальная защита (Заблокировать всех кроме: RU, UA)</option>'
|
||||
. '<option value="2">Индивидуальная защита (Заблокировать всех кроме: AM, BY, UA, RU, KZ)</option>';
|
||||
|
||||
$html->get('settings', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('packs', $packs);
|
||||
$html->set('antiddos', str_replace($server['ddos'], $server['ddos'] . '" selected="select', $antiddos));
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_settings_' . $id, $html->arr['main'], false, 20);
|
||||
}
|
||||
}
|
|
@ -1,157 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `slots`, `slots_start`, `map_start`, `vac`, `fastdl`, `autorestart`, `fps`, `tickrate` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `address`, `passwd` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `install`, `fps`, `tickrate`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
include(LIB . 'games/tarifs.php');
|
||||
include(LIB . 'games/' . $server['game'] . '/tarif.php');
|
||||
|
||||
// Вывод списка карт
|
||||
if (isset($url['maps']))
|
||||
games::maplist($id, $unit, $tarif['install'] . $server['uid'] . '/cstrike/maps', $server['map_start'], false);
|
||||
|
||||
// Сохранение
|
||||
if ($go and $url['save']) {
|
||||
$value = isset($url['value']) ? sys::int($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
switch ($url['save']) {
|
||||
case 'map':
|
||||
$map = isset($url['value']) ? trim($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
if ($map != $server['map_start'])
|
||||
games::maplist($id, $unit, $tarif['install'] . $server['uid'] . '/cstrike/maps', $map, true, $nmch);
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'vac':
|
||||
if ($value != $server['vac'])
|
||||
$sql->query('UPDATE `servers` set `vac`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'slots':
|
||||
$slots = $value > $server['slots'] ? $server['slots'] : $value;
|
||||
$slots = $value < 2 ? 2 : $slots;
|
||||
|
||||
if ($slots != $server['slots_start'])
|
||||
$sql->query('UPDATE `servers` set `slots_start`="' . $slots . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'autorestart':
|
||||
if ($value != $server['autorestart'])
|
||||
$sql->query('UPDATE `servers` set `autorestart`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'fps':
|
||||
if (!tarif::price($tarif['price']) and in_array($value, explode(':', $tarif['fps'])))
|
||||
$sql->query('UPDATE `servers` set `fps`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'tickrate':
|
||||
if (!tarif::price($tarif['price']) and in_array($value, explode(':', $tarif['tickrate'])))
|
||||
$sql->query('UPDATE `servers` set `tickrate`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'fastdl':
|
||||
include(LIB . 'ssh.php');
|
||||
|
||||
if (!$ssh->auth($unit['passwd'], $unit['address']))
|
||||
sys::outjs(array('e' => sys::text('error', 'ssh')), $nmch);
|
||||
|
||||
if ($value) {
|
||||
$fastdl = 'sv_downloadurl "http://' . sys::first(explode(':', $unit['address'])) . ':8080/fast_' . $server['uid'] . '"' . PHP_EOL
|
||||
. 'sv_consistency 1' . PHP_EOL
|
||||
. 'sv_allowupload 1' . PHP_EOL
|
||||
. 'sv_allowdownload 1';
|
||||
|
||||
// Временый файл
|
||||
$temp = sys::temp($fastdl);
|
||||
|
||||
$ssh->setfile($temp, $tarif['install'] . $server['uid'] . '/cstrike/cfg/fastdl.cfg', 0644);
|
||||
|
||||
$ssh->set('chown server' . $server['uid'] . ':servers ' . $tarif['install'] . $server['uid'] . '/cstrike/cfg/fastdl.cfg;'
|
||||
. 'ln -s ' . $tarif['install'] . $server['uid'] . '/cstrike /var/nginx/fast_' . $server['uid'] . ';'
|
||||
. 'sed -i ' . "'s/exec fastdl.cfg//g'" . ' ' . $tarif['install'] . $server['uid'] . '/cstrike/cfg/server.cfg;'
|
||||
. 'echo "exec fastdl.cfg" >> ' . $tarif['install'] . $server['uid'] . '/cstrike/cfg/server.cfg');
|
||||
|
||||
unlink($temp);
|
||||
} else
|
||||
$ssh->set('sed -i ' . "'s/exec fastdl.cfg//g'" . ' ' . $tarif['install'] . $server['uid'] . '/cstrike/cfg/server.cfg;'
|
||||
. 'rm ' . $tarif['install'] . $server['uid'] . '/cstrike/cfg/fastdl.cfg; rm /var/nginx/fast_' . $server['uid']);
|
||||
|
||||
$sql->query('UPDATE `servers` set `fastdl`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// Генерация списка слот
|
||||
$slots = '';
|
||||
|
||||
for ($slot = 2; $slot <= $server['slots']; $slot += 1)
|
||||
$slots .= '<option value="' . $slot . '">' . $slot . ' шт.</option>';
|
||||
|
||||
// Античит VAC
|
||||
$vac = $server['vac'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
// Быстрая скачака
|
||||
$fastdl = $server['fastdl'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
// Авторестарт при зависании
|
||||
$autorestart = $server['autorestart'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
$fps = '<option value="' . $server['fps'] . '">' . $server['fps'] . ' FPS</option>';
|
||||
$tickrate = '<option value="' . $server['tickrate'] . '">' . $server['tickrate'] . ' TickRate</option>';
|
||||
|
||||
if (!tarif::price($tarif['price'])) {
|
||||
$aFps = explode(':', $tarif['fps']);
|
||||
|
||||
unset($aFps[array_search($server['fps'], $aFps)]);
|
||||
|
||||
if (count($aFps))
|
||||
foreach ($aFps as $value)
|
||||
$fps .= '<option value="' . $value . '">' . $value . ' FPS</option>';
|
||||
|
||||
$aTick = explode(':', $tarif['tickrate']);
|
||||
|
||||
unset($aTick[array_search($server['tickrate'], $aTick)]);
|
||||
|
||||
if (count($aTick))
|
||||
foreach ($aTick as $value)
|
||||
$tickrate .= '<option value="' . $value . '">' . $value . ' TickRate</option>';
|
||||
}
|
||||
|
||||
$html->get('start', 'sections/servers/' . $server['game'] . '/settings');
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('map', $server['map_start']);
|
||||
$html->set('vac', $vac);
|
||||
$html->set('fastdl', $fastdl);
|
||||
$html->set('autorestart', $autorestart);
|
||||
$html->set('slots', str_replace('"' . $server['slots_start'] . '"', '"' . $server['slots_start'] . '" selected="select"', $slots));
|
||||
|
||||
if (!tarif::price($tarif['price'])) {
|
||||
$html->unit('fps', true);
|
||||
$html->set('fps', $fps);
|
||||
|
||||
$html->unit('tickrate', true);
|
||||
$html->set('tickrate', $tickrate);
|
||||
} else {
|
||||
$html->unit('fps');
|
||||
$html->unit('tickrate');
|
||||
}
|
||||
|
||||
$html->pack('main');
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `name`, `slots_min`, `slots_max`, `install`, `fps`, `tickrate`, `ram`, `timext`, `discount`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Подразделы
|
||||
$aSub = array('extend', 'plan', 'slots');
|
||||
|
||||
include(SEC . 'megp/servers/games/tarif.php');
|
|
@ -1,50 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$aData = array();
|
||||
|
||||
// Если не расчетный период
|
||||
if (!$cfg['settlement_period']) {
|
||||
$aData['time'] = isset($_POST['time']) ? sys::int($_POST['time']) : sys::outjs(array('e' => 'Переданы не все данные'), $nmch);
|
||||
|
||||
// Проверка периода
|
||||
if (!in_array($aData['time'], explode(':', $tarif['timext'])))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
}
|
||||
|
||||
$aData['promo'] = isset($_POST['promo']) ? $_POST['promo'] : '';
|
||||
$aData['address'] = isset($_POST['address']) ? $_POST['address'] : false;
|
||||
$aData['server'] = $id;
|
||||
$aData['user'] = $server['user'];
|
||||
$aData['tarif'] = $server['tarif'];
|
||||
$aData['fps'] = $server['fps'];
|
||||
$aData['tickrate'] = $server['tickrate'];
|
||||
$aData['slots'] = $server['slots'];
|
||||
|
||||
// Цена за выделенный адрес
|
||||
$add_sum = tarifs::address_add_sum($aData['address'], $server);
|
||||
|
||||
$aPrice = sys::b64djs($tarif['price']);
|
||||
|
||||
// Цена за 30 дней 1 слота
|
||||
$price = $aPrice[$server['tickrate'] . '_' . $server['fps']];
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = $server['time'];
|
||||
|
||||
// Цена аренды
|
||||
$sum = games::define_sum($tarif['discount'], $price, $server['slots'], $aData['time'], 'extend') + $add_sum;
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = games::define_period('extend', params::$aDayMonth, $server['time']);
|
||||
|
||||
$days = params::$aDayMonth[date('n', $server['time'])] == $aData['time'] ? 'месяц' : games::parse_day($aData['time'], true);
|
||||
|
||||
include(SEC . 'servers/games/tarif/extend.php');
|
|
@ -1,62 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$plan = isset($url['plan']) ? $url['plan'] : sys::outjs(array('e' => 'Переданые не все данные'), $nmch);
|
||||
|
||||
$aPrice = sys::b64djs($tarif['price']);
|
||||
|
||||
// Проверка плана
|
||||
if (!array_key_exists($plan, $aPrice))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
list($tickrate, $fps) = explode('_', $plan);
|
||||
|
||||
if ($tickrate == $server['tickrate'] and $fps == $server['fps'])
|
||||
sys::outjs(array('e' => 'Смысла в этой операции нет'), $nmch);
|
||||
|
||||
if (!tarif::price($tarif['price']))
|
||||
sys::outjs(array('e' => 'Чтобы изменить тариф, перейдите в настройки запуска'), $nmch);
|
||||
|
||||
if ($server['time'] < $start_point + 86400)
|
||||
$time = $server['time'];
|
||||
else {
|
||||
// Цена за 1 день (по новому тарифному плану)
|
||||
$price = $aPrice[$plan] / 30 * $server['slots'];
|
||||
|
||||
// Цена аренды за остаток дней
|
||||
$price_old = $aPrice[$server['tickrate'] . '_' . $server['fps']] / 30 * $server['slots'];
|
||||
|
||||
// Остаток дней аренды
|
||||
$days = ($server['time'] - $start_point) / 86400;
|
||||
|
||||
$time = date('H:i:s', $server['time']);
|
||||
$date = date('d.m.Y', round($start_point + $days * $price_old / $price * 86400 - 86400));
|
||||
|
||||
$aDate = explode('.', $date);
|
||||
$aTime = explode(':', $time);
|
||||
|
||||
$time = mktime($aTime[0], $aTime[1], $aTime[2], $aDate[1], $aDate[0], $aDate[2]);
|
||||
}
|
||||
|
||||
// Выполнение смена тарифного плана
|
||||
if ($go) {
|
||||
$sql->query('UPDATE `servers` set `time`="' . $time . '", `fps`="' . $fps . '", `tickrate`="' . $tickrate . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart', 'change'))) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_plan') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => date('d.m.Y - H:i', $time) . ' (' . sys::date('min', $time) . ')'), $nmch);
|
|
@ -1,31 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
// Если фикс. значение слот
|
||||
if ($tarif['slots_min'] == $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'На данном тарифе нельзя изменить количество слот.'), $nmch);
|
||||
|
||||
$slots = isset($url['slots']) ? sys::int($url['slots']) : sys::outjs(array('e' => 'Переданы не все данные.'), $nmch);
|
||||
|
||||
$aPrice = sys::b64djs($tarif['price']);
|
||||
|
||||
$overdue = $server['time'] < $start_point;
|
||||
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Цена за 1 день
|
||||
$price = $aPrice[$server['tickrate'] . '_' . $server['fps']] / 30;
|
||||
|
||||
// Цена аренды за остаток дней (с текущим кол-вом слот)
|
||||
$price_old = ($server['time'] - $start_point) / 86400 * $price * $server['slots'];
|
||||
}
|
||||
|
||||
$max = $tarif['slots_max'] - $server['slots'];
|
||||
|
||||
// Сумма за добавляемые слоты
|
||||
$sum = round(($server['time'] - $start_point) / 86400 * ($aPrice[$server['tickrate'] . '_' . $server['fps']] / 30) * $slots, 2);
|
||||
|
||||
include(SEC . 'servers/games/tarif/slots.php');
|
|
@ -1,47 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
include(LIB . 'games/tarifs.php');
|
||||
include(LIB . 'games/' . $server['game'] . '/tarif.php');
|
||||
|
||||
// Выполнение операции
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
$nmch = sys::rep_act('server_tarif_go_' . $id, 10);
|
||||
|
||||
if (file_exists(SEC . 'megp/servers/' . $server['game'] . '/tarif/' . $url['subsection'] . '.php'))
|
||||
include(SEC . 'megp/servers/' . $server['game'] . '/tarif/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . 'megp/servers/games/tarif/' . $url['subsection'] . '.php');
|
||||
}
|
||||
|
||||
// Общий шаблон раздела
|
||||
$html->get('tarif', 'sections/servers/games');
|
||||
|
||||
$html->set('id', $id);
|
||||
|
||||
$html->pack('main');
|
||||
|
||||
// Шаблон продления
|
||||
if ($cfg['settlement_period'])
|
||||
tarif::extend_sp($server, $tarif, $id);
|
||||
else {
|
||||
$options = games::parse_time(explode(':', $tarif['timext']), $tarif['discount'], $server['tarif'], 'extend');
|
||||
|
||||
tarif::extend($options, $server, $tarif['name'], $id);
|
||||
}
|
||||
|
||||
// Если не тестовый период
|
||||
if (!$server['test']) {
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
// Шаблон смены тарифа (если аренда не менее 1 дня и цены планов различны)
|
||||
if ($server['time'] > $start_point + 86400 and tarif::price($tarif['price']))
|
||||
tarif::plan($server, $tarif['name'], $id);
|
||||
|
||||
// Шаблон изменения кол-ва слот
|
||||
if ($tarif['slots_min'] != $tarif['slots_max'])
|
||||
tarif::slots($server, array('min' => $tarif['slots_min'], 'max' => $tarif['slots_max']), $id);
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$promo = false;
|
||||
|
||||
// Цена аренды за выбранный период (promo -> с учетом промо-кода)
|
||||
if (isset($url['promo']) || $aData['promo'] != '')
|
||||
$promo = games::define_promo(
|
||||
$aData['promo'],
|
||||
$aData,
|
||||
$tarif['discount'],
|
||||
$sum,
|
||||
'extend'
|
||||
);
|
||||
|
||||
// Использование промо-кода
|
||||
if (is_array($promo)) {
|
||||
if (array_key_exists('sum', $promo))
|
||||
$sum = $promo['sum'];
|
||||
else
|
||||
$aData['time'] += $promo['days'] * 86400; // Кол-во дней аренды с учетом подарочных (промо-код)
|
||||
}
|
||||
|
||||
// Выполнение продления
|
||||
if ($go) {
|
||||
// Проверка баланса
|
||||
if ($user['balance'] < $sum)
|
||||
sys::outjs(array('e' => 'У вас не хватает ' . (round($sum - $user['balance'], 2)) . ' ' . $cfg['currency']), $nmch);
|
||||
|
||||
// Списание средств с баланса пользователя
|
||||
$sql->query('UPDATE `users` set `balance`="' . ($user['balance'] - $sum) . '" WHERE `id`="' . $user['id'] . '" LIMIT 1');
|
||||
|
||||
// Реф. система
|
||||
games::part($user['id'], $sum);
|
||||
|
||||
$status = $server['status'] == 'overdue' ? '`status`="off",' : '';
|
||||
|
||||
// Время аренды
|
||||
$time = $server['time'] < $start_point ? $start_point + $aData['time'] * 86400 : $server['time'] + $aData['time'] * 86400;
|
||||
|
||||
// Обновление информации
|
||||
$sql->query('UPDATE `servers` set ' . $status . ' `time`="' . $time . '", `test`="0" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
// Продление адреса на 30 дней
|
||||
if ($add_sum)
|
||||
$sql->query('UPDATE `address_buy` set `time`=`time`+"2592000" WHERE `server`="' . $id . '" LIMIT 1');
|
||||
|
||||
// Запись логов
|
||||
if (!is_array($promo))
|
||||
$sql->query('INSERT INTO `logs` set `user`="' . $user['id'] . '", `text`="' . sys::updtext(sys::text('logs', 'extend_server'),
|
||||
array('days' => $days,
|
||||
'money' => $sum,
|
||||
'id' => $id)) . '", `date`="' . $start_point . '", `type`="extend", `money`="' . $sum . '"');
|
||||
else {
|
||||
$sql->query('INSERT INTO `promo_use` set `promo`="' . $promo['id'] . '", `user`="' . $user['id'] . '", `time`="' . $start_point . '"');
|
||||
|
||||
$sql->query('INSERT INTO `logs` set `user`="' . $user['id'] . '", `text`="' . sys::updtext(sys::text('logs', 'extend_server_promo'),
|
||||
array('days' => $days,
|
||||
'money' => $sum,
|
||||
'promo' => $promo['cod'], 'id' => $id)) . '", `date`="' . $start_point . '", `type`="extend", `money`="' . $sum . '"');
|
||||
}
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп цены
|
||||
sys::outjs(array('s' => $sum));
|
|
@ -1,114 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
// Изменение кол-ва слот за счет пересчета дней аренды или закончился срок аренды (иначе аренда дополнительных слот)
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Если просрочен
|
||||
if ($overdue) {
|
||||
sys::outjs(array('i' => ''));
|
||||
|
||||
if ($go) {
|
||||
$start = $server['slots_start'] > $slots ? ', `slots_start`="' . $slots . '"' : '';
|
||||
|
||||
$sql->query('UPDATE `servers` set `slots`="' . $slots . '" ' . $start . ' WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_slots') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// При возможности уменьшить
|
||||
if ($cfg['change_slots'][$server['game']]['down'] || $overdue) {
|
||||
// Проверка кол-ва слот
|
||||
if ($slots < $tarif['slots_min'] || $slots > $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'Переданые неверные данные.'), $nmch);
|
||||
|
||||
if ($server['slots'] == $slots) {
|
||||
if ($go)
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
sys::outjs(array('s' => 'Сервер будет арендован до: ' . date('d.m.Y - H:i', $server['time']) . ' (' . sys::date('min', $server['time']) . ')'), $nmch);
|
||||
}
|
||||
} else {
|
||||
// Установлено макс. значение
|
||||
if ($server['slots'] == $tarif['slots_max'] and !$overdue)
|
||||
sys::outjs(array('e' => 'На игровом сервере установлено максимальное значение.'), $nmch);
|
||||
|
||||
if ($slots < 1 || $slots > $max)
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
$slots += $server['slots'];
|
||||
}
|
||||
|
||||
$date = date('H.i.s.d.m.Y', round($start_point + $price_old / ($price * $slots) * 86400 - 86400));
|
||||
|
||||
$aDate = explode('.', $date);
|
||||
|
||||
$time = mktime($aDate[0], $aDate[1], $aDate[2], $aDate[4], $aDate[3], $aDate[5]);
|
||||
|
||||
// При уменьшении кол-ва слот не добавлять дни
|
||||
if ($slots < $server['slots'] and ($cfg['change_slots'][$server['game']]['days'] and $cfg['change_slots'][$server['game']]['down'] and !$cfg['change_slots'][$server['game']]['add']))
|
||||
$time = $server['time'];
|
||||
|
||||
// Выполнение операции
|
||||
if ($go) {
|
||||
$start = $server['slots_start'] > $slots ? ', `slots_start`="' . $slots . '"' : '';
|
||||
|
||||
$sql->query('UPDATE `servers` set `time`="' . $time . '", `slots`="' . $slots . '" ' . $start . ' WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart', 'change')) and $slots < $server['slots_start']) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_slots') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => 'Сервер будет арендован до: ' . $arenda . ' ' . date('d.m.Y - H:i', $time) . ' (' . sys::date('min', $time) . ')'));
|
||||
}
|
||||
|
||||
if ($slots < 1 || $slots > $max)
|
||||
sys::outjs(array('e' => 'Переданые неверные данные'), $nmch);
|
||||
|
||||
// Выполнение операции
|
||||
if ($go) {
|
||||
$slots_new = $server['slots'] + $slots;
|
||||
|
||||
// Проверка баланса
|
||||
if ($user['balance'] < $sum)
|
||||
sys::outjs(array('e' => 'У вас не хватает ' . (round($sum - $user['balance'], 2)) . ' ' . $cfg['currency']), $nmch);
|
||||
|
||||
// Списание средств с баланса пользователя
|
||||
$sql->query('UPDATE `users` set `balance`="' . ($user['balance'] - $sum) . '" WHERE `id`="' . $user['id'] . '" LIMIT 1');
|
||||
|
||||
// Реф. система
|
||||
games::part($user['id'], $sum);
|
||||
|
||||
$start = $server['slots_start'] == $server['slots'] ? ', `slots_start`="' . $slots_new . '"' : '';
|
||||
|
||||
// Обновление информации
|
||||
$sql->query('UPDATE `servers` set `slots`="' . $slots_new . '" ' . $start . ' WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart', 'change')) and $slots_new != $server['slots_start']) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs` set `user`="' . $user['id'] . '", `text`="' . sys::updtext(sys::text('logs', 'buy_slots'),
|
||||
array('slots' => $slots, 'money' => $sum, 'id' => $id)) . '", `date`="' . $start_point . '", `type`="buy", `money`="' . $sum . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => 'Цена за дополнительные слоты: ' . $sum . ' ' . $cfg['currency']));
|
|
@ -1,10 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `address`, `game`, `status`, `plugins_use`, `ftp_use`, `console_use`, `stats_use`, `copy_use`, `web_use` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = $sql->get();
|
||||
|
||||
sys::nav($server, $id, 'index');
|
||||
|
||||
include(SEC . 'megp/servers/' . $server['game'] . '/index.php');
|
|
@ -1,84 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$q_Servers = $sql->query('SELECT `unit`, `tarif` FROM `servers` WHERE `user`="' . $user['id'] . '" ORDER BY `id` ASC');
|
||||
|
||||
$n = $sql->num($q_Servers);
|
||||
|
||||
$aUnits = array();
|
||||
$aTarifs = array();
|
||||
|
||||
// Проверка массивов в кеше
|
||||
if (is_array($mcache->get('aut_' . $user['id'])) and $mcache->get('nser_' . $user['id']) == $n) {
|
||||
$aUT = $mcache->get('aut_' . $user['id']);
|
||||
$aUnits = $aUT[0];
|
||||
$aTarifs = $aUT[1];
|
||||
} else {
|
||||
while ($server = $sql->get($q_Servers)) {
|
||||
if (!array_key_exists($server['unit'], $aUnits)) {
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$aUnits[$server['unit']] = array(
|
||||
'name' => $unit['name']
|
||||
);
|
||||
}
|
||||
|
||||
if (!array_key_exists($server['tarif'], $aTarifs)) {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$aTarifs[$server['tarif']] = array(
|
||||
'name' => $tarif['name'],
|
||||
'packs' => sys::b64djs($tarif['packs'])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Запись массивов в кеш
|
||||
$mcache->set('aut_' . $user['id'], array($aUnits, $aTarifs), false, 60);
|
||||
|
||||
// Запись кол-во серверов в кеш
|
||||
$mcache->set('nser_' . $user['id'], $n, false, 60);
|
||||
}
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
|
||||
$sql->query('SELECT '
|
||||
. '`id`,'
|
||||
. '`unit`,'
|
||||
. '`tarif`,'
|
||||
. '`address`,'
|
||||
. '`game`,'
|
||||
. '`slots_start`,'
|
||||
. '`online`,'
|
||||
. '`status`,'
|
||||
. '`name`,'
|
||||
. '`map`,'
|
||||
. '`time`,'
|
||||
. '`overdue`'
|
||||
. ' FROM `servers` WHERE `user`="' . $user['id'] . '" ORDER BY `id` ASC');
|
||||
|
||||
$wait_servers = '';
|
||||
$updates_servers = '';
|
||||
|
||||
while ($server = $sql->get()) {
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('list', 'sections/servers');
|
||||
|
||||
$html->set('id', $server['id']);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
|
||||
$html->pack('list');
|
||||
|
||||
$wait_servers .= $server['id'] . ':false,';
|
||||
$updates_servers .= 'setTimeout(function() {update_info(\'' . $server['id'] . '\', true)}, 5000); setTimeout(function() {update_status(\'' . $server['id'] . '\', true)}, 10000);';
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go)
|
||||
include(SEC . 'servers/' . $server['game'] . '/console.php');
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `time_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$html->get('console', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->pack('main');
|
|
@ -1,39 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `tarif`, `slots_start`, `online`, `players`, `name`, `pack`, `map`, `time`, `date`, `overdue`, `ram` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$btn = sys::buttons($id, $server['status'], $server['game']);
|
||||
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('index', 'sections/servers/' . $server['game']);
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('unit', $unit['name']);
|
||||
$html->set('tarif', $tarif['name'] . ' / ' . $server['ram'] . ' RAM');
|
||||
|
||||
$tarif['packs'] = sys::b64djs($tarif['packs']);
|
||||
|
||||
$html->set('pack', $tarif['packs'][$server['pack']]);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
$html->set('time', sys::today($server['time']));
|
||||
$html->set('date', sys::today($server['date']));
|
||||
|
||||
$html->set('btn', $btn);
|
||||
|
||||
$html->pack('main');
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `pack`, `ddos` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$aSub = array('start', 'pack');
|
||||
|
||||
// Если выбран подраздел
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
if ($go)
|
||||
$nmch = sys::rep_act('server_settings_go_' . $id, 10);
|
||||
|
||||
$dir = $url['subsection'] == 'start' ? 'megp/' : '';
|
||||
|
||||
if (in_array($url['subsection'], $aRouteSub['settings']))
|
||||
include(SEC . 'servers/games/settings/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . $dir . 'servers/' . $server['game'] . '/settings/' . $url['subsection'] . '.php');
|
||||
} else {
|
||||
if ($mcache->get('server_settings_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_settings_' . $id);
|
||||
else {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Построение списка доступных сборок
|
||||
$aPacks = sys::b64djs($tarif['packs']);
|
||||
|
||||
$packs = '<option value="' . $server['pack'] . '">' . $aPacks[$server['pack']] . '</option>';
|
||||
unset($aPacks[$server['pack']]);
|
||||
|
||||
foreach ($aPacks as $pack => $desc)
|
||||
$packs .= '<option value="' . $pack . '">' . $desc . '</option>';
|
||||
|
||||
$html->get('settings', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('packs', $packs);
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_settings_' . $id, $html->arr['main'], false, 20);
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `slots`, `slots_start`, `autorestart` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
|
||||
// Сохранение
|
||||
if ($go and $url['save']) {
|
||||
$value = isset($url['value']) ? sys::int($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
switch ($url['save']) {
|
||||
case 'slots':
|
||||
$slots = $value > $server['slots'] ? $server['slots'] : $value;
|
||||
$slots = $value < 2 ? 2 : $slots;
|
||||
|
||||
if ($slots != $server['slots_start'])
|
||||
$sql->query('UPDATE `servers` set `slots_start`="' . $slots . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// Генерация списка слот
|
||||
$slots = '';
|
||||
|
||||
for ($slot = 2; $slot <= $server['slots']; $slot += 1)
|
||||
$slots .= '<option value="' . $slot . '">' . $slot . ' шт.</option>';
|
||||
|
||||
// Авторестарт при зависании
|
||||
$autorestart = $server['autorestart'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
$html->get('start', 'sections/servers/' . $server['game'] . '/settings');
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('autorestart', $autorestart);
|
||||
$html->set('slots', str_replace('"' . $server['slots_start'] . '"', '"' . $server['slots_start'] . '" selected="select"', $slots));
|
||||
|
||||
$html->pack('main');
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `name`, `slots_min`, `slots_max`, `install`, `timext`, `discount`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Подразделы
|
||||
$aSub = array('extend', 'slots');
|
||||
|
||||
include(SEC . 'megp/servers/games/tarif.php');
|
|
@ -1,51 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$aData = array();
|
||||
|
||||
// Если не расчетный период
|
||||
if (!$cfg['settlement_period']) {
|
||||
$aData['time'] = isset($_POST['time']) ? sys::int($_POST['time']) : sys::outjs(array('e' => 'Переданы не все данные'), $nmch);
|
||||
|
||||
// Проверка периода
|
||||
if (!in_array($aData['time'], explode(':', $tarif['timext'])))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
}
|
||||
|
||||
$ram = $server['slots_fix'] ? $server['ram'] : $server['ram'] / $server['slots'];
|
||||
|
||||
$aData['promo'] = isset($_POST['promo']) ? $_POST['promo'] : '';
|
||||
$aData['address'] = isset($_POST['address']) ? $_POST['address'] : false;
|
||||
$aData['server'] = $id;
|
||||
$aData['user'] = $server['user'];
|
||||
$aData['tarif'] = $server['tarif'];
|
||||
$aData['ram'] = $ram;
|
||||
$aData['slots'] = $server['slots'];
|
||||
|
||||
// Цена за выделенный адрес
|
||||
$add_sum = tarifs::address_add_sum($aData['address'], $server);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
|
||||
// Цена за 30 дней 1 слота
|
||||
$price = $aPrice[array_search($ram, explode(':', $tarif['ram']))];
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = $server['time'];
|
||||
|
||||
// Цена аренды
|
||||
$sum = games::define_sum($tarif['discount'], $price, $server['slots'], $aData['time'], 'extend') + $add_sum;
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = games::define_period('extend', params::$aDayMonth, $server['time']);
|
||||
|
||||
$days = params::$aDayMonth[date('n', $server['time'])] == $aData['time'] ? 'месяц' : games::parse_day($aData['time'], true);
|
||||
|
||||
include(SEC . 'servers/games/tarif/extend.php');
|
|
@ -1,65 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$plan = isset($url['plan']) ? sys::int($url['plan']) : sys::outjs(array('e' => 'Переданые не все данные'), $nmch);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
$aRAM = explode(':', $tarif['ram']);
|
||||
|
||||
// Проверка плана
|
||||
if (array_search($plan, $aRAM) === FALSE)
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
$ram = $server['slots_fix'] ? $server['ram'] : $server['ram'] / $server['slots'];
|
||||
|
||||
if ($plan == $ram)
|
||||
sys::outjs(array('e' => 'Смысла в этой операции нет'), $nmch);
|
||||
|
||||
if (!tarif::price($tarif['price']))
|
||||
sys::outjs(array('e' => 'Чтобы изменить тариф, перейдите в настройки запуска'), $nmch);
|
||||
|
||||
if ($server['time'] < $start_point + 86400)
|
||||
$time = $server['time'];
|
||||
else {
|
||||
// Цена за 1 день аренды (по новому тарифному плану)
|
||||
$price = $aPrice[array_search($plan, $aRAM)] / 30 * $server['slots'];
|
||||
|
||||
// Цена за 1 день аренды (по старому тарифному плану)
|
||||
$price_old = $aPrice[array_search($ram, $aRAM)] / 30 * $server['slots'];
|
||||
|
||||
// Остаток дней аренды
|
||||
$days = ($server['time'] - $start_point) / 86400;
|
||||
|
||||
$time = date('H:i:s', $server['time']);
|
||||
$date = date('d.m.Y', round($start_point + $days * $price_old / $price * 86400 - 86400));
|
||||
|
||||
$aDate = explode('.', $date);
|
||||
$aTime = explode(':', $time);
|
||||
|
||||
$time = mktime($aTime[0], $aTime[1], $aTime[2], $aDate[1], $aDate[0], $aDate[2]);
|
||||
}
|
||||
|
||||
$plan = $server['slots_fix'] ? $plan : $plan * $server['slots'];
|
||||
|
||||
// Выполнение смена тарифного плана
|
||||
if ($go) {
|
||||
$sql->query('UPDATE `servers` set `time`="' . $time . '", `ram`="' . $plan . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart'))) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_plan') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => date('d.m.Y - H:i', $time) . ' (' . sys::date('min', $time) . ')'), $nmch);
|
|
@ -1,147 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
// Если фикс. значение слот
|
||||
if ($tarif['slots_min'] == $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'На данном тарифе нельзя изменить количество слот.'), $nmch);
|
||||
|
||||
$slots = isset($url['slots']) ? sys::int($url['slots']) : sys::outjs(array('e' => 'Переданы не все данные.'), $nmch);
|
||||
|
||||
$aPrice = explode(':', $tarif['price']);
|
||||
$aRAM = explode(':', $tarif['ram']);
|
||||
|
||||
$ram = $server['ram_fix'] ? $server['ram'] : $server['ram'] / $server['slots'];
|
||||
|
||||
$overdue = $server['time'] < $start_point;
|
||||
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Цена за 1 день
|
||||
$price = $aPrice[array_search($ram, $aRAM)] / 30;
|
||||
|
||||
// Цена аренды за остаток дней (с текущим кол-вом слот)
|
||||
$price_old = ($server['time'] - $start_point) / 86400 * $price * $server['slots'];
|
||||
}
|
||||
|
||||
$max = $tarif['slots_max'] - $server['slots'];
|
||||
|
||||
// Сумма за добавляемые слоты
|
||||
$sum = round(($server['time'] - $start_point) / 86400 * ($aPrice[array_search($ram, $aRAM)] / 30) * $slots, 2);
|
||||
|
||||
// Изменение кол-ва слот за счет пересчета дней аренды или закончился срок аренды (иначе аренда дополнительных слот)
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
$ram = $server['ram_fix'] ? $server['ram'] : $server['ram'] / $server['slots'] * $slots;
|
||||
|
||||
// Если просрочен
|
||||
if ($overdue) {
|
||||
sys::outjs(array('i' => ''));
|
||||
|
||||
if ($go) {
|
||||
$start = $server['slots_start'] > $slots ? ', `slots_start`="' . $slots . '"' : '';
|
||||
|
||||
$sql->query('UPDATE `servers` set `slots`="' . $slots . '" ' . $start . ', `ram`=' . $ram . ' WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_slots') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// При возможности уменьшить
|
||||
if ($cfg['change_slots'][$server['game']]['down'] || $overdue) {
|
||||
// Проверка кол-ва слот
|
||||
if ($slots < $tarif['slots_min'] || $slots > $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'Переданые неверные данные.'), $nmch);
|
||||
|
||||
if ($server['slots'] == $slots) {
|
||||
if ($go)
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
sys::outjs(array('s' => 'Сервер будет арендован до: ' . date('d.m.Y - H:i', $server['time']) . ' (' . sys::date('min', $server['time']) . ')'), $nmch);
|
||||
}
|
||||
} else {
|
||||
// Установлено макс. значение
|
||||
if ($server['slots'] == $tarif['slots_max'] and !$overdue)
|
||||
sys::outjs(array('e' => 'На игровом сервере установлено максимальное значение.'), $nmch);
|
||||
|
||||
if ($slots < 1 || $slots > $max)
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
$slots += $server['slots'];
|
||||
}
|
||||
|
||||
$date = date('H.i.s.d.m.Y', round($start_point + $price_old / ($price * $slots) * 86400 - 86400));
|
||||
|
||||
$aDate = explode('.', $date);
|
||||
|
||||
$time = mktime($aDate[0], $aDate[1], $aDate[2], $aDate[4], $aDate[3], $aDate[5]);
|
||||
|
||||
// При уменьшении кол-ва слот не добавлять дни
|
||||
if ($slots < $server['slots'] and ($cfg['change_slots'][$server['game']]['days'] and $cfg['change_slots'][$server['game']]['down'] and !$cfg['change_slots'][$server['game']]['add']))
|
||||
$time = $server['time'];
|
||||
|
||||
// Выполнение операции
|
||||
if ($go) {
|
||||
$start = $server['slots_start'] > $slots ? ', `slots_start`="' . $slots . '"' : '';
|
||||
|
||||
$sql->query('UPDATE `servers` set `time`="' . $time . '", `slots`="' . $slots . '" ' . $start . ', `ram`=' . $ram . ' WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart', 'change')) and $slots < $server['slots_start']) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs_sys` set `user`="' . $user['id'] . '", `server`="' . $id . '", `text`="' . sys::text('syslogs', 'change_slots') . '", `time`="' . $start_point . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => 'Сервер будет арендован до: ' . $arenda . ' ' . date('d.m.Y - H:i', $time) . ' (' . sys::date('min', $time) . ')'));
|
||||
}
|
||||
|
||||
if ($slots < 1 || $slots > $max)
|
||||
sys::outjs(array('e' => 'Переданые неверные данные'), $nmch);
|
||||
|
||||
// Выполнение операции
|
||||
if ($go) {
|
||||
$slots_new = $server['slots'] + $slots;
|
||||
|
||||
// Проверка баланса
|
||||
if ($user['balance'] < $sum)
|
||||
sys::outjs(array('e' => 'У вас не хватает ' . (round($sum - $user['balance'], 2)) . ' ' . $cfg['currency']), $nmch);
|
||||
|
||||
// Списание средств с баланса пользователя
|
||||
$sql->query('UPDATE `users` set `balance`="' . ($user['balance'] - $sum) . '" WHERE `id`="' . $user['id'] . '" LIMIT 1');
|
||||
|
||||
// Реф. система
|
||||
games::part($user['id'], $sum);
|
||||
|
||||
$start = $server['slots_start'] == $server['slots'] ? ', `slots_start`="' . $slots_new . '"' : '';
|
||||
|
||||
$ram = $server['ram_fix'] ? $server['ram'] : $server['ram'] / $server['slots'] * $slots_new;
|
||||
|
||||
// Обновление информации
|
||||
$sql->query('UPDATE `servers` set `slots`="' . $slots_new . '" ' . $start . ', `ram`=' . $ram . ' WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
if (in_array($server['status'], array('working', 'start', 'restart')) and $slots_new != $server['slots_start']) {
|
||||
include(LIB . 'games/' . $server['game'] . '/action.php');
|
||||
|
||||
action::start($id, 'restart');
|
||||
}
|
||||
|
||||
// Запись логов
|
||||
$sql->query('INSERT INTO `logs` set `user`="' . $user['id'] . '", `text`="' . sys::updtext(sys::text('logs', 'buy_slots'),
|
||||
array('slots' => $slots, 'money' => $sum, 'id' => $id)) . '", `date`="' . $start_point . '", `type`="buy", `money`="' . $sum . '"');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
|
||||
// Выхлоп информации
|
||||
sys::outjs(array('s' => 'Цена за дополнительные слоты: ' . $sum . ' ' . $cfg['currency']));
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go)
|
||||
include(SEC . 'servers/' . $server['game'] . '/console.php');
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `time_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$html->get('console', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->pack('main');
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `tarif`, `slots_start`, `online`, `players`, `name`, `pack`, `map`, `time`, `date`, `overdue` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$btn = sys::buttons($id, $server['status'], $server['game']);
|
||||
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('index', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('unit', $unit['name']);
|
||||
$html->set('tarif', $tarif['name']);
|
||||
$tarif['packs'] = sys::b64djs($tarif['packs']);
|
||||
$html->set('pack', $tarif['packs'][$server['pack']]);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
$html->set('time', sys::today($server['time']));
|
||||
$html->set('date', sys::today($server['date']));
|
||||
$html->set('btn', $btn);
|
||||
$html->pack('main');
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `pack`, `ddos` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$aSub = array('start', 'pack');
|
||||
|
||||
// Если выбран подраздел
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
if ($go)
|
||||
$nmch = sys::rep_act('server_settings_go_' . $id, 10);
|
||||
|
||||
$dir = $url['subsection'] == 'start' ? 'megp/' : '';
|
||||
|
||||
if (in_array($url['subsection'], $aRouteSub['settings']))
|
||||
include(SEC . 'servers/games/settings/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . $dir . 'servers/' . $server['game'] . '/settings/' . $url['subsection'] . '.php');
|
||||
} else {
|
||||
if ($mcache->get('server_settings_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_settings_' . $id);
|
||||
else {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Построение списка доступных сборок
|
||||
$aPacks = sys::b64djs($tarif['packs']);
|
||||
|
||||
$packs = '<option value="' . $server['pack'] . '">' . $aPacks[$server['pack']] . '</option>';
|
||||
unset($aPacks[$server['pack']]);
|
||||
|
||||
foreach ($aPacks as $pack => $desc)
|
||||
$packs .= '<option value="' . $pack . '">' . $desc . '</option>';
|
||||
|
||||
$html->get('settings', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('packs', $packs);
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_settings_' . $id, $html->arr['main'], false, 20);
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `slots`, `slots_start`, `autorestart` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
|
||||
// Сохранение
|
||||
if ($go and $url['save']) {
|
||||
$value = isset($url['value']) ? sys::int($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
switch ($url['save']) {
|
||||
case 'slots':
|
||||
$slots = $value > $server['slots'] ? $server['slots'] : $value;
|
||||
$slots = $value < 2 ? 2 : $slots;
|
||||
|
||||
if ($slots != $server['slots_start'])
|
||||
$sql->query('UPDATE `servers` set `slots_start`="' . $slots . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
case 'autorestart':
|
||||
if ($value != $server['autorestart'])
|
||||
$sql->query('UPDATE `servers` set `autorestart`="' . $value . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// Генерация списка слот
|
||||
$slots = '';
|
||||
|
||||
for ($slot = 2; $slot <= $server['slots']; $slot += 1)
|
||||
$slots .= '<option value="' . $slot . '">' . $slot . ' шт.</option>';
|
||||
|
||||
// Авторестарт при зависании
|
||||
$autorestart = $server['autorestart'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
$html->get('start', 'sections/servers/' . $server['game'] . '/settings');
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('autorestart', $autorestart);
|
||||
$html->set('slots', str_replace('"' . $server['slots_start'] . '"', '"' . $server['slots_start'] . '" selected="select"', $slots));
|
||||
|
||||
$html->pack('main');
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `name`, `slots_min`, `slots_max`, `install`, `timext`, `discount`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Подразделы
|
||||
$aSub = array('extend', 'slots');
|
||||
|
||||
include(SEC . 'megp/servers/games/tarif.php');
|
|
@ -1,46 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$aData = array();
|
||||
|
||||
// Если не расчетный период
|
||||
if (!$cfg['settlement_period']) {
|
||||
$aData['time'] = isset($_POST['time']) ? sys::int($_POST['time']) : sys::outjs(array('e' => 'Переданы не все данные'), $nmch);
|
||||
|
||||
// Проверка периода
|
||||
if (!in_array($aData['time'], explode(':', $tarif['timext'])))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
}
|
||||
|
||||
$aData['promo'] = isset($_POST['promo']) ? $_POST['promo'] : '';
|
||||
$aData['address'] = isset($_POST['address']) ? $_POST['address'] : false;
|
||||
$aData['server'] = $id;
|
||||
$aData['user'] = $server['user'];
|
||||
$aData['tarif'] = $server['tarif'];
|
||||
$aData['slots'] = $server['slots'];
|
||||
|
||||
// Цена за выделенный адрес
|
||||
$add_sum = tarifs::address_add_sum($aData['address'], $server);
|
||||
|
||||
// Цена за 30 дней 1 слота
|
||||
$price = $tarif['price'];
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = $server['time'];
|
||||
|
||||
// Цена аренды
|
||||
$sum = games::define_sum($tarif['discount'], $price, $server['slots'], $aData['time'], 'extend') + $add_sum;
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = games::define_period('extend', params::$aDayMonth, $server['time']);
|
||||
|
||||
$days = params::$aDayMonth[date('n', $server['time'])] == $aData['time'] ? 'месяц' : games::parse_day($aData['time'], true);
|
||||
|
||||
include(SEC . 'servers/games/tarif/extend.php');
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
// Если фикс. значение слот
|
||||
if ($tarif['slots_min'] == $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'На данном тарифе нельзя изменить количество слот.'), $nmch);
|
||||
|
||||
$slots = isset($url['slots']) ? sys::int($url['slots']) : sys::outjs(array('e' => 'Переданы не все данные.'), $nmch);
|
||||
|
||||
$overdue = $server['time'] < $start_point;
|
||||
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Цена за 1 день
|
||||
$price = $tarif['price'] / 30;
|
||||
|
||||
// Цена аренды за остаток дней (с текущим кол-вом слот)
|
||||
$price_old = ($server['time'] - $start_point) / 86400 * $price * $server['slots'];
|
||||
}
|
||||
|
||||
$max = $tarif['slots_max'] - $server['slots'];
|
||||
|
||||
// Сумма за добавляемые слоты
|
||||
$sum = round(($server['time'] - $start_point) / 86400 * ($tarif['price'] / 30) * $slots, 2);
|
||||
|
||||
include(SEC . 'servers/games/tarif/slots.php');
|
|
@ -1,21 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($server['time'] < $start_point)
|
||||
$html->get('overdue');
|
||||
else {
|
||||
$status = array(
|
||||
'install' => 'установки',
|
||||
'reinstall' => 'переустановки',
|
||||
'update' => 'обновления',
|
||||
'recovery' => 'восстановления',
|
||||
'blocked' => 'блокировки'
|
||||
);
|
||||
|
||||
$html->get('noaccess');
|
||||
|
||||
$html->set('status', $status[$server['status']]);
|
||||
}
|
||||
|
||||
$html->pack('main');
|
|
@ -1,93 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$owners = $sql->query('SELECT `server` FROM `owners` WHERE `user`="' . $user['id'] . '" AND `time`>"' . $start_point . '" ORDER BY `id` ASC');
|
||||
|
||||
$n = $sql->num($owners);
|
||||
|
||||
$aUnits = array();
|
||||
$aTarifs = array();
|
||||
|
||||
// Проверка массивов в кеше
|
||||
if (is_array($mcache->get('owners_aut_' . $user['id'])) and $mcache->get('owners_nser_' . $user['id']) == $n) {
|
||||
$aUT = $mcache->get('owners_aut_' . $user['id']);
|
||||
$aUnits = $aUT[0];
|
||||
$aTarifs = $aUT[1];
|
||||
} else {
|
||||
while ($owner = $sql->get($owners)) {
|
||||
$server_sql = $sql->query('SELECT `unit`, `tarif` FROM `servers` WHERE `id`="' . $owner['server'] . '"');
|
||||
|
||||
while ($server = $sql->get($server_sql)) {
|
||||
if (!array_key_exists($server['unit'], $aUnits)) {
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$aUnits[$server['unit']] = array(
|
||||
'name' => $unit['name']
|
||||
);
|
||||
}
|
||||
|
||||
if (!array_key_exists($server['tarif'], $aTarifs)) {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$aTarifs[$server['tarif']] = array(
|
||||
'name' => $tarif['name'],
|
||||
'packs' => sys::b64djs($tarif['packs'])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Запись массивов в кеш
|
||||
$mcache->set('owners_aut_' . $user['id'], array($aUnits, $aTarifs), false, 60);
|
||||
|
||||
// Запись кол-во серверов в кеш
|
||||
$mcache->set('owners_nser_' . $user['id'], $n, false, 60);
|
||||
}
|
||||
|
||||
$owners = $sql->query('SELECT `id`, `server`, `time` FROM `owners` WHERE `user`="' . $user['id'] . '" ORDER BY `id` ASC');
|
||||
|
||||
while ($owner = $sql->get($owners)) {
|
||||
if ($owner['time'] < $start_point) {
|
||||
$sql->query('DELETE FROM `owners` WHERE `id`="' . $owner['id'] . '" LIMIT 1');
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$sql->query('SELECT '
|
||||
. '`id`,'
|
||||
. '`unit`,'
|
||||
. '`tarif`,'
|
||||
. '`address`,'
|
||||
. '`game`,'
|
||||
. '`slots_start`,'
|
||||
. '`online`,'
|
||||
. '`status`,'
|
||||
. '`name`,'
|
||||
. '`map`,'
|
||||
. '`time`,'
|
||||
. '`overdue`'
|
||||
. ' FROM `servers` WHERE `id`="' . $owner['server'] . '" LIMIT 1');
|
||||
|
||||
while ($server = $sql->get()) {
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('list', 'sections/servers');
|
||||
|
||||
$html->set('id', $server['id']);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
|
||||
$html->pack('list');
|
||||
|
||||
$wait_servers .= $server['id'] . ':false,';
|
||||
$updates_servers .= 'setTimeout(function() {update_info(\'' . $server['id'] . '\', true)}, 5000); setTimeout(function() {update_status(\'' . $server['id'] . '\', true)}, 10000);';
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if ($go)
|
||||
include(SEC . 'servers/' . $server['game'] . '/console.php');
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `time_start` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$html->get('console', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->pack('main');
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `tarif`, `slots_start`, `online`, `players`, `name`, `pack`, `map`, `time`, `date`, `overdue` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$sql->query('SELECT `name` FROM `units` WHERE `id`="' . $server['unit'] . '" LIMIT 1');
|
||||
$unit = $sql->get();
|
||||
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
$btn = sys::buttons($id, $server['status'], $server['game']);
|
||||
|
||||
$time_end = $server['status'] == 'overdue' ? 'Удаление через: ' . sys::date('min', $server['overdue'] + $cfg['server_delete'] * 86400) : 'Осталось: ' . sys::date('min', $server['time']);
|
||||
|
||||
$html->get('index', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('unit', $unit['name']);
|
||||
$html->set('tarif', $tarif['name']);
|
||||
$tarif['packs'] = sys::b64djs($tarif['packs']);
|
||||
$html->set('pack', $tarif['packs'][$server['pack']]);
|
||||
$html->set('address', $server['address']);
|
||||
$html->set('game', $aGname[$server['game']]);
|
||||
$html->set('slots', $server['slots_start']);
|
||||
$html->set('online', $server['online']);
|
||||
$html->set('name', $server['name']);
|
||||
$html->set('status', sys::status($server['status'], $server['game'], $server['map']));
|
||||
$html->set('time_end', $time_end);
|
||||
$html->set('time', sys::today($server['time']));
|
||||
$html->set('date', sys::today($server['date']));
|
||||
$html->set('btn', $btn);
|
||||
$html->pack('main');
|
|
@ -1,44 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `tarif`, `pack`, `ddos` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
$aSub = array('start', 'pack');
|
||||
|
||||
// Если выбран подраздел
|
||||
if (isset($url['subsection']) and in_array($url['subsection'], $aSub)) {
|
||||
if ($go)
|
||||
$nmch = sys::rep_act('server_settings_go_' . $id, 10);
|
||||
|
||||
$dir = $url['subsection'] == 'start' ? 'megp/' : '';
|
||||
|
||||
if (in_array($url['subsection'], $aRouteSub['settings']))
|
||||
include(SEC . 'servers/games/settings/' . $url['subsection'] . '.php');
|
||||
else
|
||||
include(SEC . $dir . 'servers/' . $server['game'] . '/settings/' . $url['subsection'] . '.php');
|
||||
} else {
|
||||
if ($mcache->get('server_settings_' . $id) != '')
|
||||
$html->arr['main'] = $mcache->get('server_settings_' . $id);
|
||||
else {
|
||||
$sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Построение списка доступных сборок
|
||||
$aPacks = sys::b64djs($tarif['packs']);
|
||||
|
||||
$packs = '<option value="' . $server['pack'] . '">' . $aPacks[$server['pack']] . '</option>';
|
||||
unset($aPacks[$server['pack']]);
|
||||
|
||||
foreach ($aPacks as $pack => $desc)
|
||||
$packs .= '<option value="' . $pack . '">' . $desc . '</option>';
|
||||
|
||||
$html->get('settings', 'sections/servers/' . $server['game']);
|
||||
$html->set('id', $id);
|
||||
$html->set('packs', $packs);
|
||||
$html->pack('main');
|
||||
|
||||
$mcache->set('server_settings_' . $id, $html->arr['main'], false, 20);
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `slots`, `slots_start`, `autorestart` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = array_merge($server, $sql->get());
|
||||
|
||||
include(LIB . 'games/games.php');
|
||||
|
||||
// Сохранение
|
||||
if ($go and $url['save']) {
|
||||
$value = isset($url['value']) ? sys::int($url['value']) : sys::outjs(array('s' => 'ok'), $nmch);
|
||||
|
||||
switch ($url['save']) {
|
||||
case 'slots':
|
||||
$slots = $value > $server['slots'] ? $server['slots'] : $value;
|
||||
$slots = $value < 2 ? 2 : $slots;
|
||||
|
||||
if ($slots != $server['slots_start'])
|
||||
$sql->query('UPDATE `servers` set `slots_start`="' . $slots . '" WHERE `id`="' . $id . '" LIMIT 1');
|
||||
|
||||
sys::outjs(array('s' => 'ok'), $nmch);
|
||||
}
|
||||
}
|
||||
|
||||
// Генерация списка слот
|
||||
$slots = '';
|
||||
|
||||
for ($slot = 2; $slot <= $server['slots']; $slot += 1)
|
||||
$slots .= '<option value="' . $slot . '">' . $slot . ' шт.</option>';
|
||||
|
||||
// Авторестарт при зависании
|
||||
$autorestart = $server['autorestart'] ? '<option value="1">Включен</option><option value="0">Выключен</option>' : '<option value="0">Выключен</option><option value="1">Включен</option>';
|
||||
|
||||
$html->get('start', 'sections/servers/' . $server['game'] . '/settings');
|
||||
|
||||
$html->set('id', $id);
|
||||
$html->set('autorestart', $autorestart);
|
||||
$html->set('slots', str_replace('"' . $server['slots_start'] . '"', '"' . $server['slots_start'] . '" selected="select"', $slots));
|
||||
|
||||
$html->pack('main');
|
|
@ -1,11 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `name`, `slots_min`, `slots_max`, `install`, `timext`, `discount`, `price` FROM `tarifs` WHERE `id`="' . $server['tarif'] . '" LIMIT 1');
|
||||
$tarif = $sql->get();
|
||||
|
||||
// Подразделы
|
||||
$aSub = array('extend', 'slots');
|
||||
|
||||
include(SEC . 'megp/servers/games/tarif.php');
|
|
@ -1,46 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
$aData = array();
|
||||
|
||||
// Если не расчетный период
|
||||
if (!$cfg['settlement_period']) {
|
||||
$aData['time'] = isset($_POST['time']) ? sys::int($_POST['time']) : sys::outjs(array('e' => 'Переданы не все данные'), $nmch);
|
||||
|
||||
// Проверка периода
|
||||
if (!in_array($aData['time'], explode(':', $tarif['timext'])))
|
||||
sys::outjs(array('e' => 'Переданы неверные данные'), $nmch);
|
||||
|
||||
}
|
||||
|
||||
$aData['promo'] = isset($_POST['promo']) ? $_POST['promo'] : '';
|
||||
$aData['address'] = isset($_POST['address']) ? $_POST['address'] : false;
|
||||
$aData['server'] = $id;
|
||||
$aData['user'] = $server['user'];
|
||||
$aData['tarif'] = $server['tarif'];
|
||||
$aData['slots'] = $server['slots'];
|
||||
|
||||
// Цена за выделенный адрес
|
||||
$add_sum = tarifs::address_add_sum($aData['address'], $server);
|
||||
|
||||
// Цена за 30 дней 1 слота
|
||||
$price = $tarif['price'];
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = $server['time'];
|
||||
|
||||
// Цена аренды
|
||||
$sum = games::define_sum($tarif['discount'], $price, $server['slots'], $aData['time'], 'extend') + $add_sum;
|
||||
|
||||
// Если расчетный период
|
||||
if ($cfg['settlement_period'])
|
||||
$aData['time'] = games::define_period('extend', params::$aDayMonth, $server['time']);
|
||||
|
||||
$days = params::$aDayMonth[date('n', $server['time'])] == $aData['time'] ? 'месяц' : games::parse_day($aData['time'], true);
|
||||
|
||||
include(SEC . 'servers/games/tarif/extend.php');
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
if (!isset($nmch))
|
||||
$nmch = false;
|
||||
|
||||
// Если фикс. значение слот
|
||||
if ($tarif['slots_min'] == $tarif['slots_max'])
|
||||
sys::outjs(array('e' => 'На данном тарифе нельзя изменить количество слот.'), $nmch);
|
||||
|
||||
$slots = isset($url['slots']) ? sys::int($url['slots']) : sys::outjs(array('e' => 'Переданы не все данные.'), $nmch);
|
||||
|
||||
$overdue = $server['time'] < $start_point;
|
||||
|
||||
if ($cfg['change_slots'][$server['game']]['days'] || $overdue) {
|
||||
// Цена за 1 день
|
||||
$price = $tarif['price'] / 30;
|
||||
|
||||
// Цена аренды за остаток дней (с текущим кол-вом слот)
|
||||
$price_old = ($server['time'] - $start_point) / 86400 * $price * $server['slots'];
|
||||
}
|
||||
|
||||
$max = $tarif['slots_max'] - $server['slots'];
|
||||
|
||||
// Сумма за добавляемые слоты
|
||||
$sum = round(($server['time'] - $start_point) / 86400 * ($tarif['price'] / 30) * $slots, 2);
|
||||
|
||||
include(SEC . 'servers/games/tarif/slots.php');
|
|
@ -1,26 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `game` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = $sql->get();
|
||||
|
||||
include(LIB . 'games/' . $server['game'] . '/scan.php');
|
||||
|
||||
// Запрошена информация (статус, онлайн, название)
|
||||
if (isset($url['mon']))
|
||||
sys::outjs(scan::mon($id));
|
||||
|
||||
// Запрошена информация (статус, онлайн, название, игроки)
|
||||
if (isset($url['fmon']))
|
||||
sys::outjs(scan::mon($id, true));
|
||||
|
||||
// Запрошена информация (cpu, ram, hdd)
|
||||
if (isset($url['resources']))
|
||||
sys::outjs(scan::resources($id));
|
||||
|
||||
// Запрошена информация (работает, меняется карта, переустанавливается)
|
||||
if (isset($url['status']))
|
||||
sys::outjs(scan::status($id));
|
||||
|
||||
exit;
|
|
@ -1,10 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `unit`, `address`, `game`, `status`, `plugins_use`, `ftp_use`, `console_use`, `stats_use`, `copy_use`, `web_use`, `time` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = $sql->get();
|
||||
|
||||
sys::nav($server, $id, 'settings');
|
||||
|
||||
include(sys::route($server, 'settings', $go));
|
|
@ -1,16 +0,0 @@
|
|||
<?php
|
||||
if (!DEFINED('EGP'))
|
||||
exit(header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404'));
|
||||
|
||||
$sql->query('SELECT `uid`, `unit`, `user`, `tarif`, `address`, `port`, `game`, `status`, `slots`, `slots_start`, `plugins_use`, `ftp_use`, `console_use`, `stats_use`, `copy_use`, `web_use`, `time`, `test`, `fps`, `tickrate`, `ram`, `ram_fix` FROM `servers` WHERE `id`="' . $id . '" LIMIT 1');
|
||||
$server = $sql->get();
|
||||
|
||||
sys::nav($server, $id, 'tarif');
|
||||
|
||||
if ($server['status'] == 'blocked') {
|
||||
if ($go)
|
||||
sys::out('Раздел недоступен');
|
||||
|
||||
include(SEC . 'megp/servers/noaccess.php');
|
||||
} else
|
||||
include(SEC . 'megp/servers/' . $server['game'] . '/tarif.php');
|
|
@ -50,7 +50,7 @@ if ($go) {
|
|||
|
||||
$user = $sql->get();
|
||||
|
||||
$link = $device == '!mobile' ? 'user/section/recovery/confirm/' : 'recovery/confirm/';
|
||||
$link = 'user/section/recovery/confirm/';
|
||||
|
||||
// Проверка подачи запроса на восстановление
|
||||
$sql->query('SELECT `id`, `key` FROM `recovery` WHERE `user`="' . $user['id'] . '" LIMIT 1');
|
||||
|
|
|
@ -1,142 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<title>EGP Mobile</title>
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0 minimal-ui"/>
|
||||
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
|
||||
<link rel="icon" type="image/png" href="[img]splash/android-chrome-192x192.png" sizes="192x192">
|
||||
<link rel="apple-touch-icon" sizes="196x196" href="[img]splash/apple-touch-icon-196x196.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="[img]splash/apple-touch-icon-180x180.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="[img]splash/apple-touch-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="[img]splash/apple-touch-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="[img]splash/apple-touch-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="[img]splash/apple-touch-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="[img]splash/apple-touch-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="[img]splash/apple-touch-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="[img]splash/apple-touch-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="[img]splash/apple-touch-icon-57x57.png">
|
||||
<link rel="icon" type="image/png" href="[img]splash/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="[img]splash/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="[img]splash/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="shortcut icon" href="[img]splash/favicon.ico" type="image/x-icon"/>
|
||||
|
||||
<link href="[css]style.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="[css]framework.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="[css]font-awesome.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="[css]animate.css" rel="stylesheet" type="text/css"/>
|
||||
<link type="text/css" href="[css]bootbox.css" rel="stylesheet" media="screen"/>
|
||||
|
||||
<script type="text/javascript" src="[js]jquery.js"></script>
|
||||
<script type="text/javascript" src="[js]jqueryui.js"></script>
|
||||
<script type="text/javascript" src="[js]framework-plugins.js"></script>
|
||||
<script type="text/javascript" src="[js]custom.js"></script>
|
||||
<script type="text/javascript" src="[js]form.js"></script>
|
||||
<script type="text/javascript" src="[js]bootstrap.js"></script>
|
||||
<script type="text/javascript" src="[js]bootbox.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var hnt = false;
|
||||
var title = document.title;
|
||||
var home = '[home]';
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="[js]functions.js"></script>
|
||||
</head>
|
||||
|
||||
<body class="dual-sidebar">
|
||||
<div id="preloader">
|
||||
<div id="status">
|
||||
<div class="preloader-logo"></div>
|
||||
<h3 class="center-text">Загрузка</h3>
|
||||
<p class="center-text smaller-text">Пожалуйста подождите.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="header" class="header">
|
||||
<div class="header-elements">
|
||||
<a href="[home]" class="header-logo"></a>
|
||||
<a href="#" class="header-icon-1 open-right-sidebar"><i class="fa fa-envelope-o"></i></a>
|
||||
<a href="#" class="header-icon-2 open-left-sidebar"><i class="fa fa-navicon"></i></a>
|
||||
[server_menu]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="all-elements">
|
||||
<div class="snap-drawers">
|
||||
<!-- Правый блок -->
|
||||
<div class="snap-drawer snap-drawer-left">
|
||||
<div class="sidebar-header-left">
|
||||
<a class="sidebar-logo" href="[home]"></a>
|
||||
<a class="close-sidebar" href="#"><i class="fa fa-times"></i></a>
|
||||
</div>
|
||||
|
||||
<p class="sidebar-divider">Навигация</p>
|
||||
|
||||
<div class="sidebar-menu">
|
||||
<a class="menu-item menu-item-active" href="[home]">
|
||||
<i class="fa fa-home"></i>
|
||||
<em>Главная страница</em>
|
||||
<i class="fa fa-circle"></i>
|
||||
</a>
|
||||
<a class="menu-item" href="[home]servers">
|
||||
<i class="fa fa-server"></i>
|
||||
<em>Список серверов</em>
|
||||
<i class="fa fa-circle"></i>
|
||||
</a>
|
||||
<a class="menu-item" href="[home]news">
|
||||
<i class="fa-regular fa-newspaper"></i>
|
||||
<em>Новости хостинга</em>
|
||||
<i class="fa fa-circle"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p class="sidebar-footer">Мобильная версия EGPv3</p>
|
||||
</div>
|
||||
|
||||
<!-- Левый блок -->
|
||||
<div class="snap-drawer snap-drawer-right">
|
||||
<div class="sidebar-header-right">
|
||||
<a class="sidebar-logo" href="[home]"></a>
|
||||
<a class="close-sidebar" href="#"><i class="fa fa-times"></i></a>
|
||||
</div>
|
||||
|
||||
<p class="sidebar-divider">Техническая поддержка</p>
|
||||
|
||||
<div class="sidebar-menu">
|
||||
<a class="menu-item" href="[home]help/section/create">
|
||||
<i class="fa fa-pencil-square"></i>
|
||||
<em>Задать вопрос</em>
|
||||
</a>
|
||||
<a class="menu-item" href="[home]help/section/open">
|
||||
<i class="fa fa-envelope-open"></i>
|
||||
<em>Открытые вопросы</em>
|
||||
</a>
|
||||
<a class="menu-item" href="[home]help/section/close">
|
||||
<i class="fa fa-envelope"></i>
|
||||
<em>Закрытые вопросы</em>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p class="sidebar-footer">Мобильная версия EGPv3</p>
|
||||
</div>
|
||||
|
||||
<div id="content" class="snap-content">
|
||||
<div class="content">
|
||||
<div class="header-clear-large"></div>
|
||||
|
||||
[main]
|
||||
|
||||
<div class="footer">
|
||||
<p class="center-text">Copyright 2017. Все права защищены.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="index.html#" class="back-to-top-badge"><i class="fa fa-caret-up"></i>Back to top</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
3271
template/megp/css/animate.css
vendored
3271
template/megp/css/animate.css
vendored
File diff suppressed because it is too large
Load diff
|
@ -1,122 +0,0 @@
|
|||
.fade {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity .15s linear;
|
||||
-moz-transition: opacity .15s linear;
|
||||
-o-transition: opacity .15s linear;
|
||||
transition: opacity .15s linear
|
||||
}
|
||||
|
||||
.fade.in {
|
||||
opacity: 1
|
||||
}
|
||||
|
||||
.modal-backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1040;
|
||||
background-color: #000
|
||||
}
|
||||
|
||||
.modal-backdrop.fade {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
.modal-backdrop, .modal-backdrop.fade.in {
|
||||
opacity: 0.5;
|
||||
filter: alpha(opacity=50);
|
||||
background-color: #90D3F4;
|
||||
}
|
||||
|
||||
.modal {
|
||||
position: fixed;
|
||||
top: 40%;
|
||||
left: 45%;
|
||||
z-index: 1050;
|
||||
width: 98%;
|
||||
background-color: #fff;
|
||||
border: 1px solid #EEE;
|
||||
outline: 0;
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding-box;
|
||||
background-clip: padding-box
|
||||
}
|
||||
|
||||
.modal.fade {
|
||||
top: -25%;
|
||||
-webkit-transition: opacity .3s linear, top .3s ease-out;
|
||||
-moz-transition: opacity .3s linear, top .3s ease-out;
|
||||
-o-transition: opacity .3s linear, top .3s ease-out;
|
||||
transition: opacity .3s linear, top .3s ease-out
|
||||
}
|
||||
|
||||
.modal.fade.in {
|
||||
top: 35%;
|
||||
left: 1%;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
padding: 9px 15px;
|
||||
border-bottom: 1px solid #eee
|
||||
}
|
||||
|
||||
.modal-header .close {
|
||||
margin-top: 2px
|
||||
}
|
||||
|
||||
.modal-header h3 {
|
||||
margin: 0;
|
||||
line-height: 30px
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
position: relative;
|
||||
max-height: 400px;
|
||||
padding: 15px;
|
||||
overflow-y: auto
|
||||
}
|
||||
|
||||
.modal-form {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
padding: 14px 15px 15px;
|
||||
margin-bottom: 0;
|
||||
text-align: right;
|
||||
background-color: #f5f5f5;
|
||||
border-top: 1px solid #ddd;
|
||||
-webkit-border-radius: 0 0 6px 6px;
|
||||
-moz-border-radius: 0 0 6px 6px;
|
||||
border-radius: 0 0 6px 6px;
|
||||
*zoom: 1;
|
||||
-webkit-box-shadow: inset 0 1px 0 #fff;
|
||||
-moz-box-shadow: inset 0 1px 0 #fff;
|
||||
box-shadow: inset 0 1px 0 #fff
|
||||
}
|
||||
|
||||
.modal-footer:before, .modal-footer:after {
|
||||
display: table;
|
||||
line-height: 0;
|
||||
content: ""
|
||||
}
|
||||
|
||||
.modal-footer:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.modal-footer .btn + .btn {
|
||||
margin-bottom: 0;
|
||||
margin-left: 5px
|
||||
}
|
||||
|
||||
.modal-footer .btn-group .btn + .btn {
|
||||
margin-left: -1px
|
||||
}
|
||||
|
||||
.modal-footer .btn-block + .btn-block {
|
||||
margin-left: 0
|
||||
}
|
||||
|
4
template/megp/css/font-awesome.css
vendored
4
template/megp/css/font-awesome.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
Before Width: | Height: | Size: 451 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue