Веб-панель для просмотра и управления наказаниями типа 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
cd /var/www/html
git clone https://github.com/Nord1cWarr1or/ChatAdditions_Gaglist.git gaglistОтредактируйте 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'); // имя таблицы (не менять без необходимости)Добавьте в конфиг 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;
}
}sudo chown -R www-data:www-data /var/www/html/gaglist/
sudo chmod -R 755 /var/www/html/gaglist/sudo nginx -t
sudo systemctl reload nginxПерейдите по адресу 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. Чтобы добавить новый язык:
- Откройте
lang.json - Добавьте запись в блок
meta:"de": { "name": "Deutsch", "flag": "🇩🇪" }
- Добавьте блок переводов с теми же ключами:
"de": { "nav_title": "Gag <span>List</span>", "nav_add": "Gag hinzufügen", ... }
- Отправьте 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 |
Бирюзовый |
- Создайте файл
themes/yourtheme.css - Определите CSS-переменные для
:root(светлая) иbody.dark(тёмная)::root { --accent: #your-accent; --bg: #your-bg; /* ... все переменные ... */ } body.dark { --accent: #your-dark-accent; --bg: #your-dark-bg; /* ... */ }
- Добавьте имя темы в массив
$namesв функцииtheme_name()вtheme.php - Отправьте Pull Request
Для создания темы используйте существующие файлы в themes/ как пример.
- Prepared statements для защиты от SQL-инъекций
htmlspecialchars()для защиты от XSS- CSRF-токены на формах редактирования и удаления
- Авторизация через сессию
Веб-панель создана с помощью ИИ-модели MiMo-2.5 от Xiaomi.




