Warning
Внимание! Этот проект заброшен и имеет множество уязвимостей. Ставить его не рекомендуется!
Attention! This project is abandoned and has many vulnerabilities. It is not recommended to use it!
Tip
Сейчас разрабатывается и дорабатывается новый проект как альтернатива LR WEB и другим CMS — Flute CMS
A new project — Flute CMS — is being developed and finalized now.
Пользовательский WEB интерфейс для взаимодействия с плагинами статистики Levels Ranks, Fire Players Stats и RankMe Kento Edition. Официальный канал поддержки в Discord.
640K ought to be enough for anybody
- Обязательно:
- PHP 7.0 и выше.
- Поддержка PHP PDO.
- Поддержка PHP GMP.
- Поддержка PHP BCMath.
- Поддержка PHP cURL.
- Поддержка PHP json.
- Поддержка PHP Zip.
- Рекомендуется:
- MySQL 5.7 или MariaDB 10.1 и выше.
- Скачать stable ( Рекомендуется ) или dev релиз Levels Ranks WEB.
- Извлечь файлы из архива и переместить их в любой каталог на вашем домене или субдомене.
- Перейти на ваш сайт с извлеченной Levels Ranks WEB и пройти процесс установки.
- Profit!
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_'
],
],
],
],
],
],
];
Если модулю необходимо подключение к другому "моду" ( SB / MA пример )
Используйте шаблон подключения из описания модуля. Пример. Интерация 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'
],
],
],
],
],
],
];
LR WEB ( min. dev #0.2.114 ) - Мини-Статистика на главной странице
- Старница отображения: Главная
- Информация: Добавляет три мини блока с описанием количества игроков, игроков которые заходили за последние 24 часа и количестве убийств в голову.
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Мониторинг онлайна на главной странице
- Старница отображения: Главная
- Информация: Добавляет мониторинг онлайна серверов с возможностью подключения.
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Топ игроков на главной странице
- Старница отображения: Главная
- Информация: Добавляет блоки с "топ 10" каждой подключенной таблице Levels Ranks.
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Профили
- Старница отображения: profiles
- Информация: Добавляет страницы игроков с их личной статистикой.
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Статистика игроков
- Старница отображения: toppoints
- Информация: Добавляет страницу со статистикой всех игроков игроков.
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Распределением рангов
- Старница отображения: rankstats
- Информация: Добавляет страницу с распределением рангов на серверах.
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Панель администратора
- Старница отображения: adminpanel
- Информация: Добавляет гибкое администрирование вэб интерфейсом и полезные функции.
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Страница с банами
- Старница отображения: bans
- Информация:
- Интеграция с SB / MA.
- Необходимо добавить в db.php новый мод "SourceBans" и описать подключение. Название таблицы указать префиксом, пример: "sb_".
- Скачать: Доступен в базовом пакете модулей.
LR WEB ( min. dev #0.2.114 ) - Страница с мутами
- Старница отображения: comms
- Информация:
- Интеграция с SB / MA.
- Необходимо добавить в db.php новый мод "SourceBans" и описать подключение. Название таблицы указать префиксом, пример: "sb_".
- Скачать: Доступен в базовом пакете модулей.
- pedrotski#1184 ( Discord, ghostcapgaming.com ) - 3 803 RUB.
- Larsalex ( hlmod.ru ) - 3000 RUB.
- .ZΛCHΞR#1337( Discord ) - 2093.37 RUB.
- CEED 🐼#4061 ( Discord ) - 1488 RUB.
- mixxed.xyz#4469 ( Discord ) - 1200 RUB.
- Эльдарка#7777 ( Discord ) - 1055.1 RUB.
- OkyHek#2441 ( Discord ) - 1000 RUB.
- Felya#1342 ( Discord ) - 817.12 RUB.
- Clubber#2324 ( Discord ) - 784,44 RUB.
- Nestor#9876 ( Discord ) - 600 RUB.
- MAMAC#9993 ( Discord ) - 511.05 RUB.
- dyoma#5525 ( Discord ) - 500 RUB.
- Морячок#9904 ( Discord ) - 500 RUB.
- Xzotys#3880 ( Discord ) - 500 RUB.
- Unity ( hlmod.ru ) - 460 RUB.
- MotherRussia#2235 ( Discord ) - 350 RUB.
- interes#3153 ( Discord ) - 300 RUB.
- xek#1152 ( Discord ) - 300 RUB.
- Paranoiiik ( hlmod.ru ) - 300 RUB.
- L1MON#4529 ( Discord ) - 300 RUB.
- ju4ka1371 ( hlmod.ru ) - 282 RUB.
- Good Game Project ( gg-pro.ru ) - 250 RUB.
- Wend4r ( hlmod.ru ) - 250 RUB.
- Rabb1t ( hlmod.ru ) - 250 RUB.
- Sleep#0725 ( Discord ) - 250 RUB.
- ERROR404#9842 ( Discord ) - 200 RUB.
- Malenkiy Alik#1945 ( Discord ) - 200 RUB.
- Морковка#7277 ( Discord ) - 200 RUB.
- valerun ( hlmod.ru ) - 185 RUB.
- FIVE#3136 ( Discord ) - 155 RUB.
- MaZa#8322 ( Discord ) - 150 RUB.
- ™S.E.N.A.T.O.R™♛#1466 ( Discord ) - 150 RUB.
- SynZilla ( hlmod.ru ) - 150 RUB.
- d4Ck#0698 ( Discord ) - 147.67 RUB.
- ka1jaru#1648 ( Discord ) - 137.45 RUB.
- uraganas#7978 ( Discord ) - 132 RUB.
- Domikuss#3855 ( Discord ) - 121.45 RUB.
- punisher89#7116 ( Discord ) - 104.45 RUB.
- SV3N#9923 ( Discord ) - 100.40 RUB.
- HILER#3959 ( Discord ) - 100 RUB.
- Truyn#6750 ( Discord ) - 100 RUB.
- DevBT#4750 ( Discord ) - 100 RUB.
- DismoraL ( hlmod.ru ) - 100 RUB.
- xXMaXimXx ( hlmod.ru ) - 100 RUB.
- Twenix#4347 ( Discord ) - 100 RUB.
- LEGACY#3877 ( Discord ) - 50 RUB.
- ARONGAMES#2063 ( Discord ) - 50 RUB.
- fr4nch#3619 ( Discord ) - 50 RUB.
- HolyHender#8673 ( Discord ) - 33 RUB.
- Мировой ( hlmod.ru ) - 29 RUB.
dev
/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
Функции и классы:
LR WEB подгружает все свои классы и функции в index.php, поэтому объявлять где - либо класс не обязательно. Классы имеют такую структуру:- 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 - Класс, работающий с языком пользователя, и отрисовкой нужных переводов
AltoRouter.php:
Этот класс уже имеет документацию на другой странице GitHub: https://github.com/dannyvankooten/AltoRouterAuth.php:
Получение списка администраторов
Подсчет кол - ва администраторов
Проверяет данные сессии администратора, с данными, входящими в сервер
Проверка на IP
Запись данных администратора в сессию
Выходные файлы для вывода данных о пользователе в сайдбар
Db.php:
$mod - Мод, из db.php (Vips, Shop, Core)
$user_id - Номер базы данных
$db_id - Номер таблицы базы данных
$sql - Сам SQL запрос
$params - Подготовительные значения для PDO, нужно для большей безопасности.
Функция, позволяющая выполнить SQL запрос
return SQL result;
Все то же, как и у query, только на выходе получаем только числовое значение
Да ну, все то же самое? О да! Только теперь возвращает весь массив с данными
Шаблон запроса отдающий массив со всеми строками, парсирование ключа.
Шаблон запроса отдающий массив стобца.
Шаблон запроса отдающий данные одного стобца.
mysql_column_search ( int $mod, int $user_id = 0, int $db_id = 0, string $tablename, string $column )
Запрос проверяющий существование столбика в той или иной таблице.
$tablename - Название таблицы, которую нужно проверить
$column - Название столбца, который нужно найти
Возвращает результат проверки, 1 / 0
Запрос проверяющий существование таблицы в той или иной базе данных.
Возвращает результат проверки, 1 / 0
Возвращает ID последней вставленной строки.
Возвращает результат ( ID )
"Разрыв соединения с базой данных".
General.php:
Получает и задает название подраздела из URL по умолчанию, сохраняя результат по умолчанию в сессию.
$section - Название подраздела.
$default - Значние по умолчанию.
$arr_true - Белый список.
Получает определенного аватара.
$profile - Steam ID игрока
$type - Тип/Размер аватара.
Возвращает ссылку на аватар
Проверка на существование определеноого аватара и его актуальность.
Выводит итог проверки.
Получение никнейма игрока.
Вывод его имени, как ни странно
Отправка уведомлений через функцию.
$text - Текст уведомления
$status - Тип уведомления
$time - Время, которое провисит уведомление
Просто возвращает настройки серверов из БД
Получение иконок и работа с ними.
$group - Название папки из которой будет читаться иконка.
$name - Название иконки.
$category - Дополнительное название под-категории, если она имеется. По умолчанию нету.
Выводит содержимое SVG файла. || false
Получение иконок и работа с ними.
$id - Steam ID - 32.
$type - Тип аватара.
Выводит JS скрипт.