Stars: 137
Forks: 108
Pull Requests: 96
Issues: 71
Watchers: 20
Last Updated: 2023-03-04 18:23:09
Adaptive WEB Interface for Levels Ranks statistics plugin
License: GNU General Public License v3.0
Languages: PHP, CSS, JavaScript, Hack
Пользовательский WEB интерфейс для взаимодействия с плагинами статистики Levels Ranks, Fire Players Stats и RankMe Kento Edition. Официальный канал поддержки в Discord.
640K ought to be enough for anybody
location / {
try_files $uri $uri/ /index.php?$query_string;
rewrite ^([^.]*[^/])$ $1/ permanent;
rewrite !.(gif|jpg|png|ico|css|js|svg|js_controller.php)$ /index.php;
}
Файл и директория:
/storage/cache/sessions/db.php
<?php return ['LevelsRanks' =>
[0 =>
[
'HOST' => 'Ваш хост',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'Название таблицы ( lvl_base )',
'name' => 'Название ( Основной AWP сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
],
],
],
],
],
],
'Core' =>
[0 =>
[
'HOST' => 'Ваш хост',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'lvl_'
],
],
],
],
],
],
];
<?php return ['LevelsRanks' =>
[0 =>
[
'HOST' => 'Ваш хост',
'PORT' => '3306',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'Название таблицы ( lvl_base )',
'name' => 'Название ( Основной AWP сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
],
[
'table' => 'Название таблицы 2 ( lvl_base_2 )',
'name' => 'Название ( Основной MM сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
],
],
],
],
],
],
'Core' =>
[0 =>
[
'HOST' => 'Ваш хост',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'lvl_'
],
],
],
],
],
],
];
<?php return ['LevelsRanks' =>
[0 =>
[
'HOST' => 'Ваш хост',
'PORT' => '3306',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'Название таблицы ( lvl_base )',
'name' => 'Название ( Основной AWP сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
],
],
],
[
'DB' => 'Имя второй базы данных',
'Prefix' => [0 =>
[
'table' => 'Название таблицы ( lvl_base )',
'name' => 'Название ( Новый MM сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
]
],
],
],
],
],
'Core' =>
[0 =>
[
'HOST' => 'Ваш хост',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'lvl_'
],
],
],
],
],
],
];
<?php return ['LevelsRanks' =>
[0 =>
[
'HOST' => 'Ваш хост',
'PORT' => '3306',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'Название таблицы ( lvl_base )',
'name' => 'Название ( Основной AWP сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
],
],
],
],
],
[
'HOST' => 'Ваш хост 2',
'PORT' => '3306',
'USER' => 'Логин 2',
'PASS' => 'Пароль 2',
'DB' => [0 =>
[
'DB' => 'Имя базы данных',
'Prefix' => [0 =>
[
'table' => 'Название таблицы ( lvl_base )',
'name' => 'Название ( Основной AWP сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
],
],
],
],
],
],
'Core' =>
[0 =>
[
'HOST' => 'Ваш хост',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'lvl_'
],
],
],
],
],
],
];
Используйте шаблон подключения из описания модуля. Пример. Интерация SourceBans или Material Admin:
<?php return ['LevelsRanks' =>
[0 =>
[
'HOST' => 'Ваш хост',
'PORT' => '3306',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'Название таблицы ( lvl_base )',
'name' => 'Название ( Основной AWP сервер )',
'mod' => '730 / 240 / 215',
'ranks_pack' => 'default',
'steam' => '1 / 0'
],
],
],
],
],
],
'Core' =>
[0 =>
[
'HOST' => 'Ваш хост',
'USER' => 'Логин',
'PASS' => 'Пароль',
'DB' => [0 =>
[
'DB' => 'Имя основной базы данных',
'Prefix' => [0 =>
[
'table' => 'lvl_'
],
],
],
],
],
],
'SourceBans' =>
[0 =>
[
'HOST' => 'Хост SB / MA',
'PORT' => '3306',
'USER' => 'Логин SB / MA',
'PASS' => 'Пароль SB / MA',
'DB' => [0 =>
[
'DB' => 'Имя базы данных SB / MA',
'Prefix' => [0 =>
[
'table' => 'sb_',
'name' => 'SourceBans',
'mod' => '730 / 240 / 215',
'steam' => '1 / 0'
],
],
],
],
],
],
];
/app - Ядро.
/ext - PHP Классы.
/includes - Основные и дополнительные PHP функции.
/modules - Каталог с модулями.
/page - Основные заготовки и шаблоны WEB интерфейса.
/storage - Хранилище.
/assets - CSS, JS, Fonts файлы.
/cache - Основной кэш.
/img - Кэш изображений.
/sessions - Кэш связанный с работой ядра.
/index.php - 'Hello World'
Каталог с модулями:
/app/modules
Что представляет из себя модуль ( На примере module_block_main_stats ):
/app
/modules
/module_block_main_stats - Название папки = ID модуля.
/ext - PHP Классы.
/assets - Ассеты.
/css - CSS ассеты.
/js - JS ассеты.
/forward - Функциональная часть.
/data.php - Пре-инициализация. Скрипт начинает свою работу до загрузки шаблона страницы.
/data_always.php - Пре-инициализация. Скрипт начинает свою работу до загрузки шаблона и работает на всех страницах.
/interface.php - Инициализация. Скрипт начинает свою работу во время загрузки шаблона.
/temp - Кэш файлы.
/description.json - Описание модуля
/translation.json - Если модуль имеет мультиязычность, переводы описываются в данном файле.
Директория для работы с шаблонами:
app/templates/
Для инициализации шаблона, необходим файл description.json, содержащий такую структуру:
{
"name": "Ваше название шаблона",
"version": "0.1 (Версия вашего шаблона)",
"author": "Flames"
}
Структура папки имеет немного схожую с модулями структуру
/templates/name/
Условная папка со стилями и js, все вы сможете подключить в head.php, как вашей душе благорасудится
- assets/
- js/ - Папка с JS файлами
- css/ - Папка с CSS файлами
Верстка будет подгружена ПОСЛЕ оригинальной верстки.
Папка, отвечающая за отрисовку контента
- interface/
- navbar.php //Навбар сайта, его так сказать голова
- sidebar.php //Сайдбар.. Просто сайдбар.. Можно будет переделать под любое применение
- head.php //Самый высший файл, необходим для подлючения библиотек, к примеру bootstrap
Папка, если нужно дополнительно подгрузить JS, CSS файлы в конкретном модуле
- modules/
- module_page_profiles/ - Название папки которое совпадает с названием модуля
- dop.css - CSS и JS файлы которые нужно подгрузить, будет загружено ПОСЛЕ основных файлов.
- dop.js
- module_page_forum/ - Тут может быть любой модуль.
-....
Файл с scss переменными, для более удобными работами с цветами
colors.json =
{
"Ваше название переменной, в моем случае это будет --color-zalupa": "#fff",
"--sidebar-block": "#0f0f0f0f"
}
Порядок загрузки стилей модулей таков:
- data_always.php
- data.php
- interface.php
- interface_always.php
- css / template css
- js / template js
Порядок загрузки стилей модулей таков:
/Forward
- head.php
- navbar.php
- sidebar.php
- container.php
// JS / CSS
- AltoRouter.php - Новый класс с роутингом, нужен для чего? Правильно, роутинга! :)
- Auth.php - Класс для работы с авторизацией пользователя, запись в сессию данных, если админ авторизировался через L/P
- Db.php - Класс для работы с базой данных, используется для отправки запросов ( Не рекомендуется ), и подключение к БД.
- General.php - Класс для работы с основными настройками сайта
- Graphics.php - Класс для работы с отрисовкой контента и подгрузкой выбранных в админке опций
- LightOpenID.php - Класс для авторизации через STEAM, единственный класс, который лучше всего не трогать.
- Modules.php - Класс для распределения модулей и их настройкой
- Notifications.php - Класс для отрисовки и рендера уведомлений пользователя
- Pdox.php (Interface) - Новый класс для работы с базой данных. Можно сказать, что это - Query Builder. Единственный класс, который не вызывается в index.php
- Translate.php - Класс, работающий с языком пользователя, и отрисовкой нужных переводов
Получение списка администраторов
Подсчет кол - ва администраторов
Проверяет данные сессии администратора, с данными, входящими в сервер
Проверка на IP
Запись данных администратора в сессию
Выходные файлы для вывода данных о пользователе в сайдбар
$mod - Мод, из db.php (Vips, Shop, Core)
$user_id - Номер базы данных
$db_id - Номер таблицы базы данных
$sql - Сам SQL запрос
$params - Подготовительные значения для PDO, нужно для большей безопасности.
Функция, позволяющая выполнить SQL запрос
return SQL result;
Все то же, как и у query, только на выходе получаем только числовое значение
Да ну, все то же самое? О да! Только теперь возвращает весь массив с данными
Шаблон запроса отдающий массив со всеми строками, парсирование ключа.
Шаблон запроса отдающий массив стобца.
Шаблон запроса отдающий данные одного стобца.
Запрос проверяющий существование столбика в той или иной таблице.
$tablename - Название таблицы, которую нужно проверить
$column - Название столбца, который нужно найти
Возвращает результат проверки, 1 / 0
Запрос проверяющий существование таблицы в той или иной базе данных.
Возвращает результат проверки, 1 / 0
Возвращает ID последней вставленной строки.
Возвращает результат ( ID )
"Разрыв соединения с базой данных".
Получает и задает название подраздела из URL по умолчанию, сохраняя результат по умолчанию в сессию.
$section - Название подраздела.
$default - Значние по умолчанию.
$arr_true - Белый список.
Получает определенного аватара.
$profile - Steam ID игрока
$type - Тип/Размер аватара.
Возвращает ссылку на аватар
Проверка на существование определеноого аватара и его актуальность.
Выводит итог проверки.
Получение никнейма игрока.
Вывод его имени, как ни странно
Отправка уведомлений через функцию.
$text - Текст уведомления
$status - Тип уведомления
$time - Время, которое провисит уведомление
Просто возвращает настройки серверов из БД
Получение иконок и работа с ними.
$group - Название папки из которой будет читаться иконка.
$name - Название иконки.
$category - Дополнительное название под-категории, если она имеется. По умолчанию нету.
Выводит содержимое SVG файла. || false
Получение иконок и работа с ними.
$id - Steam ID - 32.
$type - Тип аватара.
Выводит JS скрипт.