# Блок игровой статистики на профиле (пакет `/rank`)
Пакет для **GameCMS 3.68**: вывод статистики игрока по игровым серверам на странице профиля (вкладки при нескольких серверах, тёмный макет карточек).
---
## Состав пакета (пути как на сайте)
Скопируйте файлы из этой папки в **корень установки CMS** , **сохраняя структуру каталогов**:
| Файл в пакете | Назначение |
|---------------|------------|
| `modules/profile/index.php` | Замена: сбор статистики и плейсхолдеры...
# Блок игровой статистики на профиле (пакет `/rank`)
Пакет для **GameCMS 3.68**: вывод статистики игрока по игровым серверам на странице профиля (вкладки при нескольких серверах, тёмный макет карточек).
---
## Состав пакета (пути как на сайте)
Скопируйте файлы из этой папки в **корень установки CMS** , **сохраняя структуру каталогов**:
| Файл в пакете | Назначение |
|---------------|------------|
| `modules/profile/index.php` | Замена: сбор статистики и плейсхолдеры `{profile_has_game_stats}`, `{profile_game_stats}` |
| `modules/profile/render_game_stats.php` | **Новый/замена:** функции сборки HTML вкладок и карточки сервера |
| `templates/standart/tpl/home/profile_stats.tpl` | Обёртка: показ блока при наличии статистики |
| `templates/standart/tpl/home/profile_game_stats_server.tpl` | Вёрстка и стили одной «карточки» сервера + общие стили вкладок (при первом сервере) |
---
## Перед установкой
1. **Сделайте резервные копии** файлов на сервере, которые будете заменять (`index.php` модуля профиля, `profile.tpl` и т.д.).
2. Убедитесь, что у пользователя на профиле может быть **Steam** (`steam_id` / `steam_api`) — без этого блок не строится.
3. В админке должны быть **серверы** и **интеграция статистики** по их типам (как для модуля статистики на сайте).
---
## Установка
1. Склонируйте/скопируйте содержимое папки `rank` так, чтобы на сайте появились те же пути:
- `modules/profile/index.php`
- `modules/profile/render_game_stats.php`
2. Если файла **`modules/profile/render_game_stats.php`** на сервере не было — просто **положите** его в эту папку.
3. Если на сайте **другой активный шаблон** (не `standart`):
- скопируйте два файла из `templates/standart/tpl/home/` в
`templates/<имя_вашего_шаблона>/tpl/home/`
(`profile_stats.tpl`, `profile_game_stats_server.tpl`; при необходимости правки только в своей копии `profile.tpl`).
- В **вашем** `profile.tpl` (или в другом шаблоне страницы профиля) вставьте блок **там, где хотите видеть статистику** — например сразу под таблицей данных профиля, внутри нужной колонки или блока. Используйте **именно такой код**:
- Условие `{dell}` скрывает блок для удалённого пользователя (как на основном шаблоне). Путь к include — `/home/profile_stats.tpl` (каталог `tpl/home/` вашего активного шаблона).
- Если вы **не** копируете наш `profile.tpl` целиком — достаточно добавить этот фрагмент в нужное место своего шаблона и положить `profile_stats.tpl` + `profile_game_stats_server.tpl` в `tpl/home/` вашей темы.
4. Очистите **кэш шаблонов** в CMS (если в админке есть такая опция), обновите страницу профиля с полным обновлением (Ctrl+F5).
---
## Настройка и поведение
- Блок показывается только если пользователь **не удалён** (`dell != 1`), есть **Steam**, и по хотя бы одному серверу удалось получить **статистику**.
- При **нескольких серверах** сверху выводится строка **«Выберите сервер»** и вкладки; при одном сервере — только карточка.
- Ссылка **«Полная статистика»** в карточке ведёт на страницу игрока в модуле stats:
`../stats/player?server-id=<id>&user-id=<id>`.
### Правка внешнего вида
- Основной вид карточки и стили вкладок: файл
`templates/standart/tpl/home/profile_game_stats_server.tpl`
(блок `<style>` выводится один раз — у первого сервера в списке).
### Процент побед и полоска «очки»
- Считаются в `modules/profile/render_game_stats.php` (`{pgs_win_percent}`, `{pgs_points_bar_pct}` и т.д.).
---
## Устранение неполадок
| Проблема | Что проверить |
|----------|----------------|
| Блок не появляется | Steam у пользователя; данные статистики; не удалён ли профиль |
| HTTP 500 | лог PHP; целостность скопированных файлов; версия PHP |
| Стили «ломаются» в узкой колонке | в шаблоне уже заданы `minmax(0,1fr)` и медиазапросы; родительский блок не должен запрещать `min-width: 0` у flex-ребёнка |
| Нет файла `render_game_stats.php` | добавьте файл из пакета в `modules/profile/` |
---
## Откат
Верните сохранённые ранее копии `index.php`, `profile.tpl` и при необходимости удалите `render_game_stats.php` и добавленные tpl — только если у вас не было других правок в этих файлах.
---
## Авторство
Данный скрипт и пакет доработки подготовлены командой **Dev-Meta.Ru**.
---
*Пакет собран из рабочей копии проекта; версия движка ориентирована на GameCMS 3.68. Dev-Meta.Ru*