Крупное обновление
Flute CMS 1.0
Самое крупное обновление за всю историю Flute. Переработано почти всё: админка, тема, профиль, виджеты, оплата, уведомления, безопасность, производительность. Проще сказать что НЕ трогали.
Админ-панель
Админка переделана капитально. Раньше многие вещи приходилось делать руками или через конфиги, теперь почти всё управляется через интерфейс.
Новые страницы:
- Редиректы. Раньше для перенаправлений нужно было лезть в конфиг или .htaccess. Теперь отдельная страница: указываешь URL, условия, куда перенаправлять, готово
- Резервные копии CMS, модулей и тем прямо из админки. Создать, скачать, восстановить. Раньше если что-то ломалось, приходилось ковырять файлы руками
- Управление уведомлениями. Каждое уведомление в системе можно менять: текст, условия отправки, рассылка конкретным пользователям, ролям или всем. Раньше уведомления были зашиты в код
- RCON-консоль прямо на странице сервера. Не нужно открывать отдельный RCON-клиент, команды шлются из браузера
- Система подтверждений. Можно "подтвердить" пользователя и присвоить ему статус, чтобы отличать проверенных от остальных
- Мини-тур при первом заходе в админку. Интерактивная экскурсия, покажет где что. Для тех кто впервые ставит Flute, сильно упрощает начало
Страница "О системе" раньше показывала базовую инфу. Сейчас это диагностика: видно какие модули тормозят, какие запросы самые тяжёлые, можно скачать отчёт целиком для разбора проблем. Графики и вёрстка страницы переработаны, смотреть на метрики стало проще.
Главная админки: дашборд с графиками (регистрации, активность, платежи, уведомления и т.д.), период можно выбрать — неделя, месяц, год или всё время.
Компоненты и UI:
- Новые компоненты:
RadioCard,ButtonGroup,Metrics,Filters. Плюс свойSelectс поиском и кастомизацией, вместо стандартного браузерного - Кастомные пикеры цвета и даты. Стандартные input'ы заменены на свои, выглядят одинаково во всех браузерах
- Маркетплейс переделан, навигация стала понятнее. Раньше было месиво
- Сортировка пунктов в сайдбаре и вкладок профиля, порядок меняется под себя
- Skeleton'ы раньше были одинаковые заглушки. Теперь генерятся под содержимое конкретной страницы, плюс анимация при подгрузке контента (lazy load)
- Поиск перенесён в сайдбар. Раньше он был отдельно и искал плохо, теперь ищет нормально
- Светлая тема стала читабельнее, многие компоненты были заточены под тёмную и на светлой выглядели бледно
- Обновлены иконки и панель их выбора, добавлены новые
- Декоративные элементы
Серверы и платежи:
- К серверу теперь можно подключить внешнюю БД прямо на странице сервера, нужно для интеграций с плагинами и модулями которые хранят данные отдельно
- Загрузка своего пакета рангов прямо в настройке сервера, не нужно руками закидывать файлы
- На странице серверов видно какие интеграции подключены к каждому серверу
- Платёжные шлюзы: добавлены описание (текст под шлюзом для пользователя), бонус (сколько % к сумме платежа добавится на баланс), комиссия (сколько % снимется с пользователя). Выбор валюты через нормальный Select вместо голого input
- "Быстрые суммы" в настройках валюты. Можно задать пресеты, чтобы пользователи выбирали из готовых вариантов
- Страница счетов переработана: экспорт в CSV и Excel, показ суммы с учётом промокодов и скидок
Локализация и интеграции:
- Перевод названий, описаний и элементов интерфейса прямо из админки: отдельные поля под языки в формах, без правки файлов вручную
- Telegram OAuth
- Для соц.сетей добавлена поддержка view, при выборе автоматически подставляется иконка
- Cloudflare Turnstile и YandexSmartCaptcha
Разное:
- Поддержка 2FA (двухфакторная аутентификация)
- Минимальная сумма платежа в настройках шлюза
- Предупреждение на странице серверов если не настроен cron
- Empty state на страницах без данных (API-ключи, валюты, навигация, страницы, платежи) вместо пустых таблиц
- Сайдбар с разворачиваемыми секциями
- Можно полностью скрыть систему пополнения баланса если она не нужна
- Можно отключить уведомления и их отдельные параметры (звук, всплывающие и т.д.)
- Можно отключить профили пользователей
- Журнал событий переработан и оптимизирован
- Закрыты дыры когда пользователи видели страницы админки к которым у них нет доступа
- Таблицы в админке держат сортировку и фильтры в URL (GET): обновил страницу — состояние не теряется
- CSRF-токены оптимизированы: меньше лишней работы на каждый запрос
- Мобильный интерфейс починен
Стандартная тема
Тема переработана сверху донизу.
Визуальный редактор: раньше чтобы поменять цвета или шрифты нужно было лезть в SCSS или переменные. Теперь всё настраивается через панель — цвета, шрифты, фон, размеры элементов, готовые пресеты, тип навигации и футера. Код трогать не нужно.
Редактор виджетов серьёзно переработан. Раньше он был ограниченный, теперь нормальный конструктор:
- Ресайз с двух сторон, не только справа. Высота работает адекватно
- Виджеты (или целый layout) можно скрывать по условиям: тип устройства, роли пользователя, авторизован или нет. Раньше виджет либо показывался всем, либо никому
- Категории и поиск. Когда виджетов десятки, без этого тяжело
- Локальные и глобальные виджеты. Глобальные показываются на каждой странице, можно исключить по URL. Удобно для баннеров, акций, мониторинга: поставил один раз и он везде
- На других страницах виджеты добавляются и сверху и снизу контента, размер самого контента тоже меняется, вёрстка не ломается
- Авторасстановка стала умнее: расставляет виджеты и растягивает их чтобы не было пустого пространства
Профиль пользователя:
- Новый layout. Раньше профиль был сплошной лентой, теперь sidebar: информация о пользователе и баннер слева, контент справа
- Кропер изображений при изменении аватарки или баннера в профиле
- При привязке соц.сетей сохраняется аватарка и имя из соц.сети. Раньше сохранялась только привязка
- Настройки перегруппированы, блоки разделены по смыслу. Добавлено управление уведомлениями и история покупок (магазин и т.п.)
- При смене почты нужно подтвердить новый адрес (если включено подтверждение)
- Страницы счетов и интеграций тоже переделаны
Пополнение баланса переделано полностью:
- Два флоу на выбор. Обзорный: всё на одном экране, сумма, шлюзы, итог. Пошаговый: сначала сумма, потом шлюз, потом подтверждение. Раньше был только один вариант
- Промокоды переработаны: исправлены баги когда сумма начислялась неправильно или вычиталась не та
- Страницы успеха и ошибки оплаты переделаны
- Раньше иногда после оплаты вылезала пустая страница. Починили, теперь всегда показывается результат
Уведомления:
- Окно мини-профиля и уведомлений раньше было частью сайдбара и выглядело чужеродно. Теперь часть основного интерфейса
- Звук уведомления и всплывающие уведомления снизу экрана
- Уведомления теперь поддерживают компоненты внутри: кнопки, прогресс-бары, ссылки, файлы. Раньше это был просто текст
Остальное:
- Новый TipTap-редактор. Выравнивание текста, вставка картинок, много компонентов. Заменяет старый редактор и в теме тоже
- После авторизации через соц.сеть предлагается заполнить профиль: ввести почту, логин и пароль. Раньше аккаунт создавался сразу с автосгенерированными данными
- Dropdown'ы в навбаре с morph-анимацией
- Skeleton'ы по всему сайту обновлены, новые анимации
- Стандартные виджеты подогнаны под новый стиль
- Страница ошибок переделана
- Оффлайн-страница стала минималистичнее, копирайт показывается в зависимости от настройки в админке
- Машинный перевод интерфейса на много языков. Не все фразы, но основная масса переведена
Установщик
Установщик переделан с нуля. Раньше это были базовые шаги, поставил и разбирайся. Теперь:
- Визуал переделан
- Новые этапы: автоматическая установка модулей, настройка компонентов системы
- При установке проверяется совместимость БД, сразу видно подходит ли база к Flute
- Если нет Composer или vendor, вместо белого экрана покажется нормальная страница с объяснением что делать
Ядро и производительность
- Кеширование страниц (5с / 3с). Сайт держит нагрузку ощутимо лучше, отклик быстрее
- CSS-splitting. Раньше все стили были в одном файле. Теперь разбиты на отдельные, страницы грузятся заметно быстрее
- gzip-компрессия и prefetch. Страницы весят меньше, следующие страницы предзагружаются
- Своя реализация SourceQuery. Работа с RCON и получение информации о сервере нативно в ядре, без внешних зависимостей
- Fallback через Steam API для хостингов которые не поддерживают UDP-порты. Можно получить ограниченную информацию о сервере
- SWR-кеширование (stale-while-revalidate). Данные отдаются из кеша мгновенно, обновляются в фоне
- Tag-based инвалидация кеша. Можно сбросить кеш по тегам, а не целиком
- Оптимизация запросов драйверов
- Rate limiting
- PHP 8.4 и выше совместимость
- Поддержка Minecraft-драйвера
- Автообновление системы
- Картинки карт для разных игр
- Много фиксов безопасности и логики ядра
Обновлённые модули
Существующие модули подтянуты под 1.0: переделан интерфейс, оптимизирована работа, интеграция с ядром.
Monitoring
Раньше выглядел довольно просто. Теперь новый интерфейс: сетка серверов, карточки, нормальная типографика. Статус серверов получает через ядро (новая реализация SourceQuery). Показывает ориентировочный пинг до сервера. Если стоит FaceitInfo, работает с ним аккуратнее, меньше лишних запросов к API.
FaceitInfo
Раньше данные по игрокам грузились по одному. Теперь параллельно, заметно быстрее. Меньше обращений к API, ровнее обработка ответов. Блок вписан в новый профиль и визуально не выбивается из остального контента.
GiveCore
Админка выдачи привилегий переработана, стало удобнее настраивать драйверы и выдавать привилегии. Расширен набор доступных драйверов.
SteamInfo
Оформление адаптировано под текущую тему. Корректно работает и на светлой, и на тёмной, типографика в стиле остального сайта.
Stats
В общую таблицу статистики добавлена Faceit-статистика. Появилась детальная карточка игрока: интерактивная схема попаданий (можно кликать), обновлённые изображения зон, статистика по картам, сопутствующие данные. Сравнение до 4 игроков на одном экране, раньше такой возможности не было.
Новые модули
Модули с ценами доступны на маркетплейсе. Где указано, нужен GiveCore.
GiftCode — 20$
Система подарочных кодов. Создаёшь код в админке, выбираешь что он даёт: баланс, привилегию на сервере, или и то и другое сразу. Код можно привязать к конкретному пользователю (только он сможет активировать) или оставить открытым для всех.
Если стоит GiveCore, привилегии выдаются на игровом сервере автоматически, руками ничего делать не нужно.
Где это пригодится: розыгрыши в Discord, награды за активность, партнёрские акции, бонусы за донат, промо для стримеров. Код можно красиво оформить и скинуть человеку. Он заходит на сайт, вводит код, получает награду.
Требуется GiveCore
News — 30$
Новостной модуль. Публикации с категориями, комментариями, избранным и RSS-лентой. Контент пишется через TipTap-редактор, тот же что в админке: картинки, форматирование, встраивание. Вёрстка адаптивная.
RSS если нужно транслировать новости в другие каналы автоматически.
Chat — 40$
Чат на сайте. Работает в реалтайме, сообщения приходят мгновенно без перезагрузки.
Что внутри: несколько каналов (общий, для VIP, для админов, как настроите), ответы на сообщения, @упоминания. Модераторские инструменты: фильтры слов, быстрые команды, боты. Кулдауны между сообщениями и блокировки настраиваются через админку. Несколько вариантов вёрстки чтобы вписать чат в разные места на сайте.
Зачем: без чата сайт это справочник. Зашёл, посмотрел стату, вышел. С чатом люди задерживаются, общаются, заходят снова. Сайт перестаёт быть мёртвой страницей.
Clans — 40$
Клановая система. Игрок создаёт клан, настраивает его (название, тег, описание, аватар), приглашает друзей. Внутри клана — роли (лидер, офицер, рядовой, настраивается), управление составом, свой профиль клана. Рейтинговая таблица кланов, бонусы и награды.
BrowserPush — бесплатно
Web Push уведомления через VAPID. При заходе на сайт пользователю предлагается подписаться (с его согласия). Ключи генерируются под ваш домен и настраиваются в модуле. После подписки пуши приходят даже когда браузер закрыт. Удобно чтобы напомнить об ивенте, акции или просто вернуть человека на сайт.
Referral — бесплатно
Реферальная система. У каждого пользователя есть реферальная ссылка и код. Новый пользователь при регистрации вводит код (или переходит по ссылке), пригласивший получает вознаграждение автоматически. В админке видна статистика: кто кого привёл, сколько начислено. Пусть игроки сами приводят новых.
RoleSync — бесплатно
Синхронизация ролей Flute по условиям из GiveCore. Например: у игрока на сервере есть VIP, ему автоматически даётся роль VIP на сайте. Или наоборот, набрал определённый порог опыта на сервере → получил роль. Работает с любыми драйверами GiveCore: VIP, админ, опыт и т.д. Настраивается один раз, дальше работает само.
Требуется GiveCore 2.x
Список всё равно неполный: отдельно тянется большой пласт правок по ядру, шаблону и админке, его просто не разложишь по пунктам. Но по масштабу 1.0 явно выбивается из прошлых релизов.