Міграція з DXPR Builder 1.x або 2.x.

Вивчення DXPR BuilderПочніть звідсиПерехід з іншого конструктора

DXPR Builder 3.x оновлюється на місці з будь-якого релізу 1.x або 2.x. Composer замінює код, а drush updatedb виконує хуки оновлення у файлі dxpr_builder.install, що перетворюють конфігурацію та вміст. Ця сторінка перелічує дії цих хуків, зміни для власного коду та спосіб перевірки результату. Дати релізів узято з тегів git; див. Старіші релізи.

Коротка історія версій

Гілка Drupal Примітки
7.x-1.x Drupal 7 Продавався як Glazed Builder, пізніше перейменований.
1.x (8.x-1.x) Drupal 8 і 9 Машинна назва модуля dxpr_builder від першого релізу 1.x у травні 2020 року. Останній реліз 1.8.8.
2.x від Drupal 9.3 до 11 CKEditor 5, підтримка модуля Key, перші функції ШІ. Останній реліз 2.8.1.
3.x Drupal 10.2 і 11 Лише Bootstrap 5, обов’язковий модуль Key, міграції вмісту, генерування сторінок і зображень ШІ.

Машинна назва не змінилася між 1.x і 3.x. Вміст, що досі має розмітку епохи Glazed, треба мігрувати на 1.x або 2.x перед оновленням; 3.x більше не переписує назву Glazed (див. нижче).

Вимоги перед початком

  • Drupal 10.2 або новіший, або Drupal 11 (core_version_requirement у файлі dxpr_builder.info.yml).
  • Модуль Key. У 3.x це жорстка залежність; dxpr_builder_update_9020() встановлює його, якщо drush updatedb виявляє його відсутність.
  • Ключ продукту, виданий для DXPR Builder 2.0.0 або новішого. Ключі без клейма dxpr_tier відхиляються формою налаштувань.
  • Тема, що надає Bootstrap 5, або параметр підвантаження Bootstrap 5. Підвантаження Bootstrap 3 і 4 більше не існує.

Кроки міграції

  1. Зробіть резервну копію бази даних і файлів:

    drush sql:dump --result-file=backup.sql
    
  2. Оновіть код через Composer. 3.x наразі виходить як пререлізи, тож дозвольте їх:

    composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies
    
  3. Виконайте хуки оновлення й перебудуйте кеші:

    drush updatedb
    drush cache:rebuild
    

    Кілька хуків 3.x обробляють кожне значення поля DXPR Builder пакетами (див. нижче). На великих сайтах це займає хвилини, а не секунди.

  4. Відкрийте /admin/dxpr_studio/dxpr_builder/settings і перевірте розділ Ліцензія. Після оновлення 9020 Спосіб зберігання це Модуль Key, а Ключ це DXPR Builder JWT (dxpr_builder_jwt).

  5. Перевірте Підвантажувати файли Bootstrap на тій самій сторінці. Сайти, що мали вибраний Bootstrap 3 або 4, тепер на Bootstrap 5.

  6. Відкрийте /admin/dxpr_studio/dxpr_builder/ai_settings і вирішіть, чи мають три перемикачі ШІ, стандартно увімкнуті, залишатися увімкнутими.

  7. Відвідайте сторінки, що використовують DXPR Builder, і переконайтеся, що вони правильно відображаються й редагуються.

Що роблять хуки оновлення

Хуки з номерами від 8005 до 8025 вийшли в 1.x. Сайт 1.x виконує все від 8026 далі; сайт 2.8.0 або 2.8.1 виконує 8040 і від 9014 далі. Назви функцій мають вигляд dxpr_builder_update_NNNN().

Додані в 2.x (виконуються під час переходу з 1.x)

Хук Що робить
8026 Оновлює центральне сховище користувачів DXPR Builder.
8027 Додає ліцензійний інформаційний блок і стовпець «DXPR Builder User» до подання People.
8028 Створює таблицю dxpr_lock для блокування вмісту.
8029 Додає блок ліцензій до приладної дошки ліцензій користувачів.
8030 Перемикає налаштування Bootstrap після вилучення параметра «Bootstrap 3 Light».
8031 Вмикає ліцензійний інформаційний блок там, де його було встановлено вимкненим.
8032 Вилучає заблокованих користувачів із ліцензійного сховища.
8033 Ініціалізує drm_last_contact.
8034 Встановлює поле користувача dxpr_user_is_disavowed і дії підтвердження та скасування підтвердження користувачів.
8035 Ініціалізує налаштування hide_reminders.
8036 Мігрує назви кнопок панелі інструментів CKEditor 4 у профілях до CKEditor 5.
8037 Додає стандартний стиль зображення для швидкого завантаження зображень.
8038 Очищає кеші, щоб зареєструвати сервіси інтеграції модуля Key.
8039 Виправляє стилі зображень із неповними налаштуваннями image_scale_and_crop.
9007 Створює словники ai_tone_of_voice і ai_agent_commands зі стандартними термінами.
9008 Задає ai_enabled як true й вилучає старий ключ ai_page_enabled.
9009 Переміщує drm_last_contact із конфігурації до стану.
9010 Очищає кеші.
9011 Вмикає кнопки AI Assistant і AI Tone of Voice у кожному профілі.
9012 Відновлює ai_page_enabled зі стандартним true.
9013 Задає стандарти фільтрування виводу ШІ (ai_output_allowed_domains).
9015 Додає ai_image_enabled зі стандартним true.

Додані в 3.x (виконуються під час переходу з 1.x або 2.x)

Хук Що робить
8040 Нормалізує bootstrap до bs5; значення 1 (Bootstrap 3) і bs4 переписуються.
9014 Пакетно: перетворює розмітку Owl Carousel у вмісті на карусель Bootstrap (src/Migration/OwlCarouselMigration.php).
9016 Додає ai_user_model_selection зі стандартним true.
9017 Пакетно: перетворює кругові лічильники circliful на розмітку прогресу Bootstrap (CircleCounterMigration.php).
9018 Пакетно: перетворює застарілу розмітку індикатора прогресу на структуру прогресу Bootstrap (ProgressBarMigration.php).
9020 Встановлює модуль Key, переміщує json_web_token до сутності Key dxpr_builder_jwt, задає api_key_storage як key і очищає значення у відкритому вигляді.
9021 Доповнює властивість type шаблонів користувачів з їхньої розмітки.
9022 Пакетно: додає data-entity-type і data-entity-uuid до внутрішніх посилань /node/N (EntityLinkMigration.php).
9023 Пакетно: виправляє текстовий формат, анотацію та втрачені дельти, які оновлення 9022 загубило на полях text_with_summary.
9024 Пакетно: збагачує внутрішні посилання з аліасами так само, як 9022 (AliasLinkMigration.php).
9025 Очищає tone_of_voice_vocabulary, коли він указує на словник, якого більше немає.
9026 Очищає json_web_token у відкритому вигляді, залишений у налаштуваннях, коли ключ міститься в сутності Key.

Оновлення 9019 немає.

Міграції вмісту

3.x виконує міграції вмісту лише пакетно; перетворення під час відображення більше немає. Сторінка статусу міграції (/admin/dxpr_studio/dxpr_builder/migration-status) і звіт про статус перелічують очікуваний вміст. Хуки оновлення вище мігрують його, як і дії Запустити зараз і Запустити всі очікувані міграції на цій сторінці. Міграції це сервіси з тегом dxpr_builder.content_migration (dxpr_builder.services.yml). Пакет, що записує збої, не позначається завершеним; невдалі елементи журналюються й залишаються очікуваними.

Переписування рядків glazed_to_dxpr, яке 1.x і 2.x застосовували під час відображення, вилучено. Назву Glazed відкинуто з 1.0.0 у травні 2020 року, і весь вміст епох Glazed і Carbide вважається мігрованим тими релізами. Переписування було звичайною заміною рядків. На сайтах, чий вміст лише згадує Glazed (статті підтримки, посилання на документацію), воно переписувало б прозу й ламало посилання замість міграції розмітки. Сайти, що досі тримають назви класів Glazed у збереженому вмісті, мають спочатку оновитися до релізу 2.x.

Зміни для власного коду

Форматувальник поля

Ідентифікатор форматувальника поля це dxpr_builder_text (мітка «DXPR Builder», src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php), незмінний з 1.x. Він має одне налаштування, profile, порожнє для стандарту на основі ролей, або містить ідентифікатор профілю. Перевірте, що кожне поле конструктора досі використовує цей форматувальник на своєму показі; виправлення з оновлення 9023 обмежене полями, що його використовують.

Хуки

dxpr_builder.api.php документує хуки 3.x. Перейменуйте хуки Glazed Builder так:

Хук Glazed Builder Хук DXPR Builder 3.x
hook_glazed_builder_classes() hook_dxpr_builder_classes_alter(array &$dxpr_builder_classes)
hook_glazed_builder_buttons_folders() hook_dxpr_builder_element_buttons_folders_alter(array &$dxpr_element_buttons_folders)
hook_glazed_builder_elements_folders() Вилучено; заміни немає.
немає hook_dxpr_builder_icon_sets_alter(array &$icon_sets), новий. Набори значків оголошуються у файлах MODULE.dxpr_icon_sets.yml.

CSS і службові класи

Власний CSS, що використовує назви класів Glazed, має використовувати назви DXPR, наприклад dxpr-theme-util, panel-dxpr і dxpr-builder. Службові класи, показані в редакторі, надаються через hook_dxpr_builder_classes_alter().

Конфігурація та розгортання

  • Вилучіть json_web_token з будь-якої зафіксованої конфігурації; після оновлення 9020 ключ міститься в сутності Key dxpr_builder_jwt. Цей Key використовує постачальника Configuration, тож ключ досі експортується як key.key.dxpr_builder_jwt. Перемкніть його на постачальника File або Environment за адресою /admin/config/system/keys, щоб тримати його поза експортом.
  • Експорт конфігурації тепер містить два словники ШІ та їхні терміни.
  • Профілі експортують назви кнопок CKEditor 5 у inline_buttons і modal_buttons.

Усунення несправностей

Якщо вміст після оновлення показується неправильно:

  1. Виконайте drush cache:rebuild.
  2. Перевірте /admin/reports/dblog щодо повідомлень із каналу dxpr_builder; пакетні міграції журналюють пропущені ними елементи.
  3. Підтвердіть, що показ кожного поля конструктора досі використовує форматувальник DXPR Builder.
  4. Підтвердіть, що тема завантажує Bootstrap 5, або увімкніть підвантаження за адресою /admin/dxpr_studio/dxpr_builder/settings.

Сторінка загальних налаштувань DXPR Builder після оновлення

Що далі?