EngineGP/system/engine/plugins.php

161 lines
5.7 KiB
PHP
Raw Normal View History

2023-03-04 23:45:46 +00:00
<?php
if (!DEFINED('EGP'))
exit(header('Refresh: 0; URL=http://' . $_SERVER['SERVER_NAME'] . '/404'));
2023-03-04 23:45:46 +00:00
$aGame = array(
'cs' => 'Counter-Strike: 1.6',
'cssold' => 'Counter-Strike: Source v34',
'css' => 'Counter-Strike: Source',
'csgo' => 'Counter-Strike: Global Offensive',
'cs2' => 'Counter-Strike: 2'
);
2023-03-04 23:45:46 +00:00
if (!isset($url['game']) || !array_key_exists($url['game'], $aGame))
$url['game'] = 'cs';
2023-03-05 13:59:34 +00:00
$title = 'Доступные плагины для установки';
2023-03-05 13:59:34 +00:00
include(LIB . 'games/plugins.php');
2023-03-05 13:59:34 +00:00
if ($id) {
$sql->query('SELECT `upd` FROM `plugins` WHERE `id`="' . $id . '" LIMIT 1');
2023-03-05 13:59:34 +00:00
if (!$sql->num())
sys::back($cfg['http'] . 'plugins/game/' . $url['game']);
2023-03-05 13:59:34 +00:00
$update = $sql->get();
2023-03-05 13:59:34 +00:00
$sqlq = '`name`, `info`, `desc`, `images`, `upd`';
2023-03-05 13:59:34 +00:00
// Если установленно обновление
if ($update['upd']) {
$sql->query('SELECT ' . $sqlq . ' FROM `plugins_update` WHERE `id`="' . $update['upd'] . '" LIMIT 1');
2023-03-05 13:59:34 +00:00
if (!$sql->num())
$sql->query('SELECT ' . $sqlq . ' FROM `plugins` WHERE `id`="' . $id . '" LIMIT 1');
} else
$sql->query('SELECT ' . $sqlq . ' FROM `plugins` WHERE `id`="' . $id . '" LIMIT 1');
2023-03-04 23:45:46 +00:00
$plugin = $sql->get();
2023-03-04 23:45:46 +00:00
$sql->query('SELECT `id`, `file` FROM `plugins_config` WHERE (`plugin`="' . $id . '" AND `update`="0") OR (`plugin`="' . $id . '" AND `update`="' . $update['upd'] . '") ORDER BY `sort`, `id` ASC');
while ($config = $sql->get()) {
// Исключить дублирование, путем проверки массива файлов
if (in_array($config['file'], $aConf))
continue;
2023-03-04 23:45:46 +00:00
$aConf[] = $config['file'];
2023-03-05 13:59:34 +00:00
// Данные файла
$file = explode('/', $config['file']);
2023-03-04 23:45:46 +00:00
$html->get('config_list', 'sections/plugins');
2023-03-04 23:45:46 +00:00
$html->set('game', $url['game']);
$html->set('fid', $config['id']);
$html->set('name', end($file));
$html->set('file', $config['file']);
2023-03-04 23:45:46 +00:00
$html->pack('configs');
}
2023-03-04 23:45:46 +00:00
$images = plugins::images($plugin['images'], $pid);
2023-05-05 01:17:19 +00:00
$html->get('configs', 'sections/plugins');
2023-05-05 01:17:19 +00:00
$html->set('game', $url['game']);
$html->set('name', $plugin['name']);
$html->set('info', htmlspecialchars_decode($plugin['info']));
$html->set('desc', htmlspecialchars_decode($plugin['desc']));
2023-05-05 01:17:19 +00:00
// Картинки
if (!empty($images)) {
$html->unit('images', 1);
$html->set('images', $images);
} else
$html->unit('images');
2023-05-05 01:17:19 +00:00
// Редактируемые файлы
if (isset($html->arr['configs'])) {
$html->set('configs', $html->arr['configs']);
$html->unit('configs', 1);
} else
$html->unit('configs');
2023-05-05 01:17:19 +00:00
$html->pack('main');
2023-05-05 01:17:19 +00:00
$plugin['name'] = strip_tags($plugin['name']);
2023-05-05 01:17:19 +00:00
$title = $plugin['name'];
$html->nav('Доступные плагины для установки', $cfg['http'] . 'plugins/game/' . $url['game']);
$html->nav($plugin['name']);
}
2023-05-05 01:17:19 +00:00
if (!isset($html->arr['main'])) {
$html->nav('Доступные плагины для установки');
// Если есть кеш
if ($mcache->get('plugins_list_view_' . $url['game']) != '')
$html->arr['main'] = $mcache->get('plugins_list_view_' . $url['game']);
else {
// Категории
$cats = $sql->query('SELECT `id`, `name` FROM `plugins_category` WHERE `game`="' . $url['game'] . '" ORDER BY `sort` ASC');
while ($cat = $sql->get($cats)) {
// Плагины
$plugins = $sql->query('SELECT `id`, `name`, `desc`, `images`, `status`, `upd`, `packs` FROM `plugins` WHERE `cat`="' . $cat['id'] . '" ORDER BY `sort`, `id` ASC');
while ($plugin = $sql->get($plugins)) {
// Проверка наличия обновленной версии плагина
if ($plugin['upd']) {
$idp = $plugin['id'];
$sql->query('SELECT `name`, `desc`, `images`, `status`, `packs` FROM `plugins_update` WHERE `plugin`="' . $plugin['id'] . '" ORDER BY `id` DESC LIMIT 1');
if ($sql->num()) {
$plugin = $sql->get();
$plugin['id'] = $idp;
} else
$plugin['upd'] = 0;
}
$images = plugins::images($plugin['images'], $plugin['id']);
// Шаблон плагина
$html->get('plugin', 'sections/plugins');
$html->set('plugin', $plugin['id']);
$html->set('game', $url['game']);
plugins::status($plugin['status']);
$html->set('name', htmlspecialchars_decode($plugin['name']));
$html->set('desc', htmlspecialchars_decode($plugin['desc']));
if (!empty($images)) {
$html->unit('images', 1);
$html->set('images', $images);
} else
$html->unit('images');
$html->pack('plugins');
}
// Шаблон блока плагинов
$html->get('category', 'sections/plugins');
$html->set('name', $cat['name']);
$html->set('plugins', isset($html->arr['plugins']) ? $html->arr['plugins'] : 'Доступных для установки плагинов нет.', 1);
$html->pack('addons');
}
$html->get('plugins', 'sections/plugins');
$html->set('game', $aGame[$url['game']]);
$html->set('addons', isset($html->arr['addons']) ? $html->arr['addons'] : '');
$html->pack('main');
$mcache->set('plugins_list_view_' . $url['game'], $html->arr['main'], false, 60);
}
}
2023-03-04 23:45:46 +00:00
?>