Repository navigation
✨ Новое
- Выбор главной страницы — в настройках сайта («Главная страница»): лента или главная из модуля. Модули регистрируют свою через
Registry::homepage(), для своего шаблона естьFeedService::getLatest()— свежие записи выбранных разделов - Сортировка вложений перетаскиванием — порядок сохраняется и задаёт обложку записи и
og:image. Миниатюру можно перенести в редактор ссылкой, без повторной загрузки - Свёрнутые формы сообщений — комментарии и диалоги показывают одно поле с подсказкой «Написать…», редактор и вложения раскрываются при первом клике. В диалоге форма над сообщениями, новые идут сверху
- Флеш-сообщения через notyf — всплывают и гаснут сами, как ответы ajax, ошибки валидации приходят одним уведомлением. При переходе «назад» и «вперёд» не всплывают снова
- Подсказки страны и города в профиле — из анкет других пользователей, частые первыми. Место нормализуется кастом
PlaceCast: лишние пробелы убираются, первая буква заглавная cron.php— запуск планировщика для хостингов, где в cron указывается только путь к файлу. На веб-запрос отвечает 403php artisan module:migrate— накатывает новые миграции включённых модулей и сбрасывает кеш настроек,deploy.phpзапускает её послеartisan:migrate- API — лента комментариев
GET /api/comments, коды и тексты ошибок голосования, у каждого списка в спецификации свои значенияsort. Для модулей — скоупыwithUserVote()иcapped()(CappableTrait),apiUser()
🚀 Улучшения
- Обратная связь вынесена в модуль Feedback — умеет присылать обращения в личку и работает на хостингах без почты
- Почтовая рассылка вынесена в модуль MailNotify — напоминание о непрочитанных, поздравление с днём рождения и отписка. Письма на blade-шаблонах с текстовыми версиями и переводами
- Единый адрес страницы —
/index.php/...,/public/...и слэш в конце уводятся 301-редиректом на чистый адрес на любом веб-сервере. Canonical учитывает номер страницы, ссылки?pid=закрыты вrobots.txt - Файлы по типу записи — форма предлагает только расширения, которые примет сервер, а API проверяет файлы теми же правилами
FileService::rules(). Файлы, загруженные заранее, входят в общий лимит - Модалки на нативном
<dialog>, раскрывающиеся блоки на<details>: Esc и клик мимо окна отвечают отменой, правка спрашивает про несохранённый текст - Страница модуля в админке —
/admin/modules/social-authпо имени каталога, старые адреса уводятся редиректом 301 - Предупреждения панели о планировщике, очереди и почте можно скрыть — новый сбой покажет их снова. Метка крона ставится каждую минуту
- Шапки тем: бургер слева превращается в крестик, сайдбар закрывается при уходе со страницы, иконка темы у гостя больше не мигает
- Вставка в редактор снимает чужие стили, цитата сохраняет абзацы и списки, подсветка по якорю начинается после прокрутки к записи
- Медиа в записях до 700px по ширине и 90vh по высоте
- Модули в админке сортируются по статусу, маркетплейс — по дате выпуска
- Удалён
spatie/laravel-ignition, зависимости обновлены
🐛 Исправления
- Закреплённая новость снова первая в ленте — флаг закрепления потерялся при переносе ленты в отдельную таблицу
- Страницы ошибок до подключения темы отдаются без макета, а не падают в 500 «No hint path defined for [theme]». Ошибки отдаются со своим статусом, а не с 200, API отвечает json на любую ошибку
/users?sort=created_atи незнакомый ключ сортировки больше не дают 500- Ежедневный бонус показывается один раз, а не дважды
- Пустое поле формы больше не роняет
TypeErrorподstrict_types - Текст писем без HTML-экранирования: имя с
&приходит как есть - Расширения в настройках без учёта регистра: «JPG» больше не отклоняет
photo.jpg - В списке новых сообщений самый свежий отправитель больше не теряется
- Виджет без изменений к прошлому периоду показывает прочерк вместо зелёной стрелки, виджет ошибок — без автобанов
⚠️ При обновлении
- Почтовая рассылка и обратная связь теперь модули — установите MailNotify и Feedback из каталога модулей, иначе письма перестанут уходить, а форма обратной связи пропадёт
- Обновите модули из каталога: новые версии Blog, Board, Forum, News, Photo и других требуют ядро 14.8.0
- Если стоял модуль Classic, выберите «Классическая главная» в настройках сайта — сам он ленту больше не подменяет
- Уже закреплённую новость пересохраните один раз, чтобы она поднялась в ленте
- Хук
homepageViewубран — модули регистрируют главную черезRegistry::homepage() - В своих темах: partial-ы
_language_modalи_comment_edit_modalпереименованы в*_dialog, ссылка выбора языка —data-dialog="#languageDialog" - API:
?user=в списках пользователя работает только с токеном, гостю — 403 /mailsи/admin/modules/module?module=Nameоставлены мостами до 15.0
Full Changelog: v14.7.0...v14.8.0