• Stars
    star
    141
  • Rank 259,032 (Top 6 %)
  • Language
    PHP
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated 15 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Adaptive WEB Interface for Levels Ranks statistics plugin

Levels Ranks - WEB Interface

PHP


Пользовательский 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!

Конфигурация NGINX:

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

Скелет WEB интерфейса ( dev #0.2.114 ) :

/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/AltoRouter
Auth.php:

get_admins_list

Получение списка администраторов

get_count_admins

Подсчет кол - ва администраторов

check_session_admin

Проверяет данные сессии администратора, с данными, входящими в сервер

check_session

Проверка на IP

authorization_no_steam

Запись данных администратора в сессию

get_authorization_sidebar_data

Выходные файлы для вывода данных о пользователе в сайдбар
Db.php:

query ( int $mod, int $user_id = 0, int $db_id = 0, string $sql, array $params = [] )

$mod            - Мод, из db.php (Vips, Shop, Core)
$user_id        - Номер базы данных
$db_id          - Номер таблицы базы данных
$sql            - Сам SQL запрос
$params         - Подготовительные значения для PDO, нужно для большей безопасности.

Функция, позволяющая выполнить SQL запрос

return SQL result;

queryNum ( int $mod, int $user_id = 0, int $db_id = 0, string $sql, array $params = [] )

Все то же, как и у query, только на выходе получаем только числовое значение

queryAll ( int $mod, int $user_id = 0, int $db_id = 0, string $sql, array $params = [] )

Да ну, все то же самое? О да! Только теперь возвращает весь массив с данными

query_all_key_pair ( int $mod, int $user_id = 0, int $db_id = 0, string $sql, array $params = [] )

Шаблон запроса отдающий массив со всеми строками, парсирование ключа.

queryColumn ( int $mod, int $user_id = 0, int $db_id = 0, string $sql, array $params = [] )

Шаблон запроса отдающий массив стобца.

queryOneColumn ( int $mod, int $user_id = 0, int $db_id = 0, string $sql, array $params = [] )

Шаблон запроса отдающий данные одного стобца.

mysql_column_search ( int $mod, int $user_id = 0, int $db_id = 0, string $tablename, string $column )

Запрос проверяющий существование столбика в той или иной таблице.

$tablename      - Название таблицы, которую нужно проверить
$column         - Название столбца, который нужно найти

Возвращает результат проверки, 1 / 0

mysql_table_search ( int $mod, int $user_id = 0, int $db_id = 0, string $tablename )

Запрос проверяющий существование таблицы в той или иной базе данных.

Возвращает результат проверки, 1 / 0

lastInsertId ( string $mod, int $user_id = 0, int $db_id = 0 )

Возвращает ID последней вставленной строки.

Возвращает результат ( ID )

__destruct

"Разрыв соединения с базой данных".
General.php:

get_default_url_section( string|bool $section, string $default, array|null $arr_true )

Получает и задает название подраздела из URL по умолчанию, сохраняя результат по умолчанию в сессию.

$section       - Название подраздела.
$default       - Значние по умолчанию.
$arr_true      - Белый список.

getAvatar( string $profile, int $type )

Получает определенного аватара.

$profile        - Steam ID игрока
$type           - Тип/Размер аватара.

Возвращает ссылку на аватар

checkAvatar( string $profile, int $type )

Проверка на существование определеноого аватара и его актуальность.

Выводит итог проверки.

checkName( string $profile )

Получение никнейма игрока.

Вывод его имени, как ни странно

sendNote ( string $text, success|error $status, int $time = 4.5 )

Отправка уведомлений через функцию.

$text           - Текст уведомления
$status         - Тип уведомления
$time           - Время, которое провисит уведомление

get_server_list

Просто возвращает настройки серверов из БД

get_icon ( string $group, string $name, string $category = null )

Получение иконок и работа с ними.

$group          - Название папки из которой будет читаться иконка.
$name           - Название иконки.
$category       - Дополнительное название под-категории, если она имеется. По умолчанию нету.

Выводит содержимое SVG файла. || false

get_js_relevance_avatar ( string $id, int $type = 1 )

Получение иконок и работа с ними.

$id             - Steam ID - 32.
$type           - Тип аватара.

Выводит JS скрипт.