EngineGP
87 строк · 2.9 Кб
1<?php
2/*
3* EngineGP (https://enginegp.ru or https://enginegp.com)
4*
5* @copyright Copyright (c) 2018-present Solovev Sergei <inbox@seansolovev.ru>
6*
7* @link https://github.com/EngineGPDev/EngineGP for the canonical source repository
8*
9* @license https://github.com/EngineGPDev/EngineGP/blob/main/LICENSE MIT License
10*/
11
12if (!defined('EGP')) {
13header('Refresh: 0; URL=http://' . $_SERVER['HTTP_HOST'] . '/404');
14exit();
15}
16
17// Получаем ID сервера
18$id = intval($url['id']);
19
20// Если ID пустой
21if (empty($id)) {
22header('Refresh: 0; URL=' . $cfg['http'] . 'monitoring');
23exit();
24}
25
26// Meta Title страницы
27$title = 'Мониторинг | Сервер #' . $id;
28
29// Навигация
30$html->nav('Мониторинг', $cfg['http'] . 'monitoring');
31$html->nav('Сервер #' . $id);
32
33// Получаем информацию о сервере
34$sql->query('SELECT `id`, `unit`, `tarif`, `address`, `port`, `name`, `map`, `slots_start`, `online`, `players`, `status`, `game`, `pack`, `date` FROM servers WHERE id ="' . $id . '" LIMIT 1');
35$server = $sql->get();
36
37// Если результат пустой
38if (empty($server)) {
39header('Refresh: 0; URL=' . $cfg['http'] . 'monitoring');
40exit();
41}
42
43// Получаем название локации
44$sql->query('SELECT name FROM units WHERE id = "' . $server['unit'] . '" LIMIT 1');
45$unit = $sql->get();
46
47// Получаем название тарифа и доступные сборки
48$sql->query('SELECT name, packs FROM tarifs WHERE id = "' . $server['tarif'] . '" LIMIT 1');
49$tarif = $sql->get();
50
51// Получаем массив сборок
52$aPacks = json_decode(base64_decode($tarif['packs']), true);
53
54// Получаем ключ для графиков
55$sql->query('SELECT `key` FROM graph WHERE server = "' . $id . '" LIMIT 1');
56
57// Если ключ отсуствует, создаем
58if (!$sql->num()) {
59
60// Генерируем ключ
61$key = md5($id . sys::key('graph'));
62
63// Добавляем в DB
64$sql->query('INSERT INTO graph SET `server` = "' . $id . '", `key` = "' . $key . '", `time` = 0');
65} else {
66
67// Получаем ключ из бд
68$graph = $sql->get();
69$key = $graph['key'];
70}
71
72// Подготовка страницы
73$html->get('server', 'sections/monitoring');
74$html->set('id', $server['id']);
75$html->set('key', $key);
76$html->set('address', $server['address'] . ':' . $server['port']);
77$html->set('name', $server['name']);
78$html->set('map', $server['map']);
79$html->set('slots', $server['slots_start']);
80$html->set('online', $server['online']);
81$html->set('players', base64_decode($server['players']));
82$html->set('unit', $unit['name']);
83$html->set('tarif', $tarif['name']);
84$html->set('img', sys::status($server['status'], $server['game'], $server['map'], 'img'));
85$html->set('pack', $aPacks[$server['pack']]);
86$html->set('create', date("d.m.Y H:m", $server['date']));
87$html->pack('main');
88