Skip to content

Repository files navigation

English

ChatAdditions Gag List

Веб-панель для просмотра и управления наказаниями типа gag (мут чата) из плагина ChatAdditions_AMXX для серверов Counter-Strike 1.6.

Возможности

  • Просмотр всех gag-наказаний с сортировкой по дате (самые свежие сверху)
  • Статус наказаний: активен / истёк / навсегда
  • Срок наказания с человекочитаемым форматом (7 дней (19.06.2026 09:54 — 26.06.2026 09:54))
  • Фильтрация: все / только активные
  • Поиск по нику, Steam ID или IP (включая кириллицу)
  • Редактирование и удаление наказаний (требуется авторизация)
  • Добавление новых gag-наказаний через веб-панель (требуется авторизация)
  • Управление флагами gag (текстовый чат, командный чат, голосовой чат) через чекбоксы
  • Тёмная и светлая тема с автосохранением выбора
  • 10 цветовых тем на выбор (Default, Forest, Sunset, Royal, Rose, Ocean, Crimson, Lavender, Amber, Mint)
  • Адаптивный дизайн для мобильных устройств
  • CSRF-защита на формах
  • Мультиязычная локализация (автоопределение по браузеру, свитчер в шапке)
  • Легко добавить новый язык через Pull Request

Скриншоты

Тёмная тема — рабочий стол
Форма редактирования
Мобильная версия

Требования

  • PHP 7.4+ с модулями mysqli и mbstring
  • MySQL/MariaDB (тот же сервер, что используется плагином ChatAdditions)
  • Nginx или другой веб-сервер с поддержкой PHP

Установка

1. Клонируйте репозиторий

cd /var/www/html
git clone https://github.com/Nord1cWarr1or/ChatAdditions_Gaglist.git gaglist

2. Настройте подключение к БД

Отредактируйте config.php:

define('DB_HOST', '127.0.0.1');
define('DB_USER', 'root');        // пользователь MySQL
define('DB_PASS', 'password');    // пароль MySQL
define('DB_NAME', 'db_name');     // имя БД из плагина (по умолчанию players_gags)

define('ADMIN_LOGIN', 'admin');   // логин для входа в панель
define('ADMIN_PASSWORD', 'changeme'); // пароль для входа в панель
define('GAGS_TABLE', 'chatadditions_gags'); // имя таблицы (не менять без необходимости)

3. Настройте Nginx

Добавьте в конфиг nginx (например, /etc/nginx/sites-available/default):

location /gaglist/ {
    root /var/www/html;
    index index.php;
    try_files $uri $uri/ /gaglist/index.php?$args;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

4. Установите права доступа

sudo chown -R www-data:www-data /var/www/html/gaglist/
sudo chmod -R 755 /var/www/html/gaglist/

5. Перезагрузите nginx

sudo nginx -t
sudo systemctl reload nginx

6. Откройте панель

Перейдите по адресу http://ваш-домен/gaglist/

Структура файлов

├── index.php      # Главная — список гагов (доступен без авторизации)
├── login.php      # Страница входа
├── logout.php     # Выход из панели
├── create.php     # Создание нового гага (требуется авторизация)
├── edit.php       # Редактирование гага (требуется авторизация)
├── delete.php     # Удаление гага (требуется авторизация, POST)
├── config.php     # Настройки БД, авторизация, вспомогательные функции
├── lang.php       # Загрузка локализации из JSON, определение языка
├── lang.json      # Переводы (meta + ключи на всех языках)
├── theme.php      # Управление темами (выбор, переключение, загрузка CSS)
├── footer.php     # Общий подвал с переключателем тем и dark/light
├── style.css      # Стили (структура, компоненты)
├── themes/        # Цветовые темы
│   ├── default.css   # Тема по умолчанию (голубой)
│   ├── forest.css    # Зелёная
│   ├── sunset.css    # Янтарная
│   ├── royal.css     # Индиго
│   ├── rose.css      # Розовая
│   ├── ocean.css     # Синяя
│   ├── crimson.css   # Красная
│   ├── lavender.css  # Фиолетовая
│   ├── amber.css     # Золотая
│   └── mint.css      # Бирюзовая

Структура БД

Панель работает с таблицей chatadditions_gags из плагина ChatAdditions:

Поле Тип Описание
id INTEGER PK ID записи
name VARCHAR(32) Никнейм игрока
authid VARCHAR(64) Steam ID
ip VARCHAR(22) IP-адрес
reason VARCHAR(256) Причина наказания
admin_name VARCHAR(32) Никнейм админа
admin_authid VARCHAR(64) Steam ID админа
admin_ip VARCHAR(22) IP-адрес админа
created_at DATETIME Дата создания gag
expire_at DATETIME Дата окончания gag
flags INTEGER Битовая сумма флагов

Флаги

Бит Значение Описание
a 1 Текстовый чат
b 2 Текстовый командный чат
c 4 Голосовой чат

Пример: flags = 5 → запрещён текстовый чат (1) и голосовой чат (4).

Технологии

  • Backend: PHP 7.4+ (чистый PHP, без фреймворков)
  • БД: MySQL/MariaDB (prepared statements)
  • Frontend: HTML + CSS + Vanilla JavaScript

Локализация

Все переводы хранятся в файле lang.json. Чтобы добавить новый язык:

  1. Откройте lang.json
  2. Добавьте запись в блок meta:
    "de": { "name": "Deutsch", "flag": "🇩🇪" }
  3. Добавьте блок переводов с теми же ключами:
    "de": {
      "nav_title": "Gag <span>List</span>",
      "nav_add": "Gag hinzufügen",
      ...
    }
  4. Отправьте Pull Request

Если ключ отсутствует в текущем языке, используется русский перевод.

Темы

Панель поддерживает 10 цветовых тем, каждая с вариациями light/dark. Тема сохраняется в localStorage.

Доступные темы

Тема Акцент Описание
Default #0891b2 Голубой (по умолчанию)
Forest #15803d Зелёный
Sunset #d97706 Янтарный
Royal #6366f1 Индиго
Rose #ec4899 Розовый
Ocean #2563eb Синий
Crimson #e11d48 Красный
Lavender #7c3aed Фиолетовый
Amber #b45309 Золотой
Mint #0891b2 Бирюзовый

Добавление новой темы

  1. Создайте файл themes/yourtheme.css
  2. Определите CSS-переменные для :root (светлая) и body.dark (тёмная):
    :root {
        --accent: #your-accent;
        --bg: #your-bg;
        /* ... все переменные ... */
    }
    body.dark {
        --accent: #your-dark-accent;
        --bg: #your-dark-bg;
        /* ... */
    }
  3. Добавьте имя темы в массив $names в функции theme_name() в theme.php
  4. Отправьте Pull Request

Для создания темы используйте существующие файлы в themes/ как пример.

Безопасность

  • Prepared statements для защиты от SQL-инъекций
  • htmlspecialchars() для защиты от XSS
  • CSRF-токены на формах редактирования и удаления
  • Авторизация через сессию

Лицензия

GPL-3.0


Веб-панель создана с помощью ИИ-модели MiMo-2.5 от Xiaomi.

About

Web panel for ChatAddiotions_AMXX, a list of gags

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages