Drupal 9.3.x содержит новые функции и должен использоваться при разработке новых сайтов. Поддержка безопасности Drupal 9.2.x будет продолжаться до июня 2022 года. Поддержка безопасности для 9.1.x заканчивается с выпуском 9.3.0 (8 декабря 2021 года), а поддержка безопасности Drupal 8 закончилась 3 ноября 2021 года.
Важные изменения в этом выпуске:
Начиная с Drupal 9.3, рекомендуется PHP версии 8.0 или выше. PHP 7.3 и выше по-прежнему поддерживается. Для Drupal 10 потребуется как минимум PHP 8.0.
- CKEditor 5 добавлен как новый экспериментальный модуль
- Тема Olivero помечена как стабильная
- CKEditor 4 был обновлен с 4.16.2 до 4.17.1 из-за критической уязвимости.
- Зависимости Drupal для symfony/phpunit-bridge, symfony/var-dumper и symfony/mime были обновлены с Symfony 5.3 до 5.4
- Большинство URL-адресов файлов теперь будут использовать относительные, а не абсолютные ссылки.
- Конфиги сортируется в порядке, определенном в их схемах. Нужно повторно экспортировать конфиги, если они хранятся в Git
- drupal_internal__target_id был добавлен в JSON:API ответы
- Метки полей теперь могут содержать до 255 символов.
- Значки ярлыков теперь выводятся как
<link rel="icon">
в соответствии со спецификацией HTML вместо<link rel="shortcut icon">
- Каждая пользовательская роль теперь зависит от модулей, которые предоставляют разрешения этой роли. В результате разрешения будут автоматически очищаться при удалении модуля. Существующие роли будут обновлены для удаления несуществующих разрешений, а зависимости будут добавлены.
- Чтобы ограничить зависимость ядра Drupal от jQuery для прямой совместимости с будущими версиями, конфигурация eslint core-js-pass теперь включает плагин eslint-plugin-jquery.
- Библиотека jquery.once объявлена устаревшей (deprecated). Добавленные модули следует обновить для использования новой библиотеки once.js, входящей в ядро Drupal.
- Кнопки отправки, оформленные как элементы
<button type="submit">
, теперь запускают AJAX в открытых формах представлений, точно так же, как они это делают, когда они оформлены как<input type="submit">
. - Функциональные тесты JavaScript теперь автоматически проверяют, не возникли ли какие-либо ошибки JavaScript во время выполнения теста.
- Формы блоков (Block plugin forms) больше не получают ключ block_theme в состоянии формы (form state).
- GuzzleMiddlewarePass был удален в пользу TaggedHandlersPass. Код, взаимодействующий с GuzzleMiddlewarePass, должен теперь использовать TaggedHandlersPass.
- Хотя обычно зависимости ядра Drupal в минорных выпусках не удаляются, зависимости ядра Drupal от fabpot/goutte и behat/mink-goutte-driver были удалены в 9.3, потому что ядро не использует их и потому что они не позволяют разрешить прямую совместимость с Guzzle 7 и PHP 8.1. Если ваш сайт или модуль использует любую из этих зависимостей, убедитесь, что они добавлены в файл composer.json проекта.
- Пакет Doctrine/Reflection заброшен, а части, на которые опирается ядро Drupal, были скопированы в Drupal\Component\Annotation\Doctrine. Пакет будет удален из Drupal 10.
- Шаблоны field-node-title.html.twig, field-node-created.html.twig и field-node-uid.html.twig были изменены, чтобы отображать эти поля так, как они настроены разработчиком сайта. Темы, которые включают эти шаблоны, должны добавить к ним это изменение.
- Таблица пользователей будет обновлена, чтобы изменить столбец uid на истинное серийное поле (true serial field).
- Модуль Quick Edit планируется удалить из ядра Drupal 10. С этой целью Quick Edit был удален из стандартного профиля в Drupal 9.3.0. Это изменение не влияет на существующие сайты.
- Специфичные для Drupal теги были удалены со страниц нод терминов таксономии для повышения производительности. Теги
<link rel="canonical">
и<link rel="shortlink">
остались и были расширены для охвата всех типов сущностей.