Repository navigation
✨ Новое
- Виджеты статистики на главной админки — плитки с числом, графиком и сравнением с прошлым периодом, несколько серий на одном графике. Состав и порядок настраиваются перетаскиванием в
/admin/widgets, модули добавляют свои черезRegistry::widget() - Письма через очередь — отправка вынесена в
MailService, приQUEUE_CONNECTION=databaseписьма уходят с тремя попытками, приsync— сразу. Таблицаmailingsи командаmessage:send
удалены. Панель предупреждает, если почта сломалась, очередь встала или не запускается планировщик - Письма на blade-компонентах — у каждого письма есть текстовая версия, вёрстка тянется по ширине экрана, шрифт крупнее
- Генератор модулей —
php artisan make:module Name --model=Item --admin --apiсоздаёт модуль с переводами, changelog, миграциями и настройками - Перетаскивание разделов в админке — дерево категорий плоским списком, уровень вложенности задаётся движением мыши
- Язык интерфейса по Accept-Language — порядок выбора: сессия, профиль, браузер, язык сайта. Языковые модули работают без копирования файлов в ядро
- Тема по умолчанию берётся из системы — пока посетитель не выбрал тему сам, она следует
prefers-color-scheme. Переключатель — одна кнопка вместо выпадающего меню - Мультизагрузка файлов — несколько файлов за раз, у каждого свой спиннер, лишние сверх лимита отсекаются до отправки
🚀 Улучшения
- Антимат вынесен в модуль — слова заменяются при выводе, в базе остаётся оригинал: убранное из списка слово возвращает старые тексты.
antimat()помечен deprecated - Строгий MySQL — движок и тесты работают в
STRICTрежиме, пустые поля форм пишутся пустой строкой через кастыHtmlCastиTextCast - Общая панель настроек для ядра и модулей — модули встраивают свою страницу в боковую навигацию. Настройки модулей доступны только владельцу, как и настройки ядра
- Анкета переработана — компоненты, блок активности, новые точки хуков. «Мои данные» объединены с настройками во вкладках
- Счётчик непрочитанных писем — колонка
users.newprivatудалена, счётчик считается по переписке и больше не расходится с ней - Темы на rem и CSS-переменных — размер текста меняется одной строкой в
custom.css, шапки держатся на флексе. Поправлены подсветка пунктов и выпадающие меню в fresh и nordic - Редактор — блочные кнопки работают целыми строками, списки не захватывают весь абзац с переносами, вставка сохраняет форматирование своих сообщений
- Опрос реестров модулей уходит в очередь и не держит страницу при недоступном реестре
- Длинные сообщения сворачиваются по реальной высоте, с учётом догрузившихся картинок
- Картинки, которые уже подходят по размеру, не пересохраняются с потерей качества;
screensizeпо умолчанию поднят до 1500 - Вкладки листаются на мобильном, CSS почищен: общие плитки, аватары и подсветка на переменных
🐛 Исправления
- Сбой SMTP на sync не обрывает рассылку и не роняет форму в 500
- Курсор в редакторе не прыгает в конец при выделении
- Сбой источника обновлений не затирает список релизов с GitHub
- Правка комментария сбрасывает кеш ленты
- Пустые поля в чёрном списке и реестрах больше не дают 500
- Значок роли в списке сообщений стоит рядом с именем, аватар в списке пользователей — на общих отступах
⚠️ При обновлении
- Антимат теперь модуль — установите Antimat из каталога модулей, иначе фильтр перестанет работать
$user->newprivatоставлен мостом до 15.0; в своих темах используйте$user->getCountNewMessages()- Для
QUEUE_CONNECTION=databaseнужен крон планировщика — панель подскажет строку
Full Changelog: v14.6.0...v14.7.0