Skip to content

Version 14.8.0

Latest

Choose a tag to compare

@visavi visavi released this 16 Oct 22:54
· 3 commits to master since this release

✨ Новое

  • Выбор главной страницы — в настройках сайта («Главная страница»): лента или главная из модуля. Модули регистрируют свою через Registry::homepage(), для своего шаблона есть FeedService::getLatest() — свежие записи выбранных разделов
  • Сортировка вложений перетаскиванием — порядок сохраняется и задаёт обложку записи и og:image. Миниатюру можно перенести в редактор ссылкой, без повторной загрузки
  • Свёрнутые формы сообщений — комментарии и диалоги показывают одно поле с подсказкой «Написать…», редактор и вложения раскрываются при первом клике. В диалоге форма над сообщениями, новые идут сверху
  • Флеш-сообщения через notyf — всплывают и гаснут сами, как ответы ajax, ошибки валидации приходят одним уведомлением. При переходе «назад» и «вперёд» не всплывают снова
  • Подсказки страны и города в профиле — из анкет других пользователей, частые первыми. Место нормализуется кастом PlaceCast: лишние пробелы убираются, первая буква заглавная
  • cron.php — запуск планировщика для хостингов, где в cron указывается только путь к файлу. На веб-запрос отвечает 403
  • php 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