Migracja z DXPR Builder 1.x albo 2.x.
DXPR Builder 3.x aktualizuje się w miejscu z każdego wydania 1.x albo 2.x. Composer podmienia kod, a drush updatedb uruchamia hooki aktualizacji w dxpr_builder.install, które konwertują konfigurację i treść. Ta strona wymienia, co robią te hooki, co zmieniło się dla własnego kodu i jak zweryfikować wynik. Daty wydań pochodzą z tagów git; zobacz Starsze wydania.
Historia wersji w skrócie
| Seria | Drupal | Uwagi |
|---|---|---|
| 7.x-1.x | Drupal 7 | Sprzedawany jako Glazed Builder, później przemianowany. |
| 1.x (8.x-1.x) | Drupal 8 i 9 | Nazwa maszynowa modułu dxpr_builder od pierwszego wydania 1.x w maju 2020. Ostatnie wydanie 1.8.8. |
| 2.x | Drupal 9.3 do 11 | CKEditor 5, wsparcie modułu Key, pierwsze funkcje AI. Ostatnie wydanie 2.8.1. |
| 3.x | Drupal 10.2 i 11 | Tylko Bootstrap 5, wymagany moduł Key, migracje treści, generowanie stron i obrazów przez AI. |
Nazwa maszynowa nie zmieniła się między 1.x a 3.x. Treść wciąż nosząca kod z ery Glazed musi zostać zmigrowana na 1.x albo 2.x przed aktualizacją; 3.x już nie przepisuje nazwy Glazed (zobacz poniżej).
Wymagania przed startem
- Drupal 10.2 albo nowszy, albo Drupal 11 (
core_version_requirementwdxpr_builder.info.yml). - Moduł Key. To twarda zależność w 3.x;
dxpr_builder_update_9020()instaluje go, gdydrush updatedbstwierdzi jego brak. - Klucz produktu wydany dla DXPR Builder 2.0.0 albo nowszego. Klucze bez oświadczenia
dxpr_tiersą odrzucane przez formularz ustawień. - Motyw dostarczający Bootstrap 5 albo opcja sideload Bootstrap 5. Sideloadowanie Bootstrap 3 i 4 już nie istnieje.
Kroki migracji
-
Zrób kopię zapasową bazy danych i plików:
drush sql:dump --result-file=backup.sql -
Zaktualizuj kod Composerem. 3.x jest obecnie publikowane jako przedwydania, więc na nie zezwól:
composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies -
Uruchom hooki aktualizacji i zbuduj ponownie cache:
drush updatedb drush cache:rebuildKilka hooków 3.x przetwarza każdą wartość pola DXPR Builder partiami (zobacz poniżej). Na dużych witrynach trwają minuty, nie sekundy.
-
Otwórz
/admin/dxpr_studio/dxpr_builder/settingsi sprawdź sekcję License. Po aktualizacji 9020 Storage method to Key module, a Key toDXPR Builder JWT(dxpr_builder_jwt). -
Sprawdź Sideload Bootstrap files na tej samej stronie. Witryny, które miały wybrany Bootstrap 3 albo 4, są teraz na Bootstrap 5.
-
Otwórz
/admin/dxpr_studio/dxpr_builder/ai_settingsi zdecyduj, czy trzy przełączniki AI, domyślnie włączone, mają zostać włączone. -
Odwiedź strony używające DXPR Builder i potwierdź, że renderują się i edytują poprawnie.
Co robią hooki aktualizacji
Hooki o numerach 8005 do 8025 dostarczono w 1.x. Witryna 1.x uruchamia wszystko od 8026 wzwyż; witryna 2.8.0 albo 2.8.1 uruchamia 8040 i 9014 wzwyż. Nazwy funkcji to dxpr_builder_update_NNNN().
Dodane w 2.x (uruchamiane przy przyjściu z 1.x)
| Hook | Co robi |
|---|---|
| 8026 | Aktualizuje centralne przechowywanie użytkowników DXPR Builder. |
| 8027 | Dodaje blok informacji licencyjnych i kolumnę „DXPR Builder User” do widoku People. |
| 8028 | Tworzy tabelę dxpr_lock do blokowania treści. |
| 8029 | Dodaje blok licencji do panelu licencji użytkowników. |
| 8030 | Przełącza ustawienie Bootstrap po usunięciu opcji „Bootstrap 3 Light”. |
| 8031 | Włącza blok informacji licencyjnych tam, gdzie zainstalowano go wyłączony. |
| 8032 | Usuwa zablokowanych użytkowników z przechowywania licencji. |
| 8033 | Inicjuje drm_last_contact. |
| 8034 | Instaluje pole użytkownika dxpr_user_is_disavowed oraz akcje avow/disavow użytkowników. |
| 8035 | Inicjuje ustawienie hide_reminders. |
| 8036 | Migruje nazwy przycisków paska narzędzi CKEditor 4 w profilach do CKEditor 5. |
| 8037 | Dodaje domyślny styl obrazu dla szybko wczytujących się obrazów. |
| 8038 | Czyści cache, aby zarejestrować usługi integracji modułu Key. |
| 8039 | Naprawia style obrazów z niepełnymi ustawieniami image_scale_and_crop. |
| 9007 | Tworzy słowniki ai_tone_of_voice i ai_agent_commands z domyślnymi terminami. |
| 9008 | Ustawia ai_enabled na true i usuwa stary klucz ai_page_enabled. |
| 9009 | Przenosi drm_last_contact z konfiguracji do stanu. |
| 9010 | Czyści cache. |
| 9011 | Włącza przyciski AI Assistant i AI Tone of Voice w każdym profilu. |
| 9012 | Przywraca ai_page_enabled z domyślnym true. |
| 9013 | Ustawia domyślne filtrowanie wyjścia AI (ai_output_allowed_domains). |
| 9015 | Dodaje ai_image_enabled z domyślnym true. |
Dodane w 3.x (uruchamiane przy przyjściu z 1.x albo 2.x)
| Hook | Co robi |
|---|---|
| 8040 | Normalizuje bootstrap do bs5; wartości 1 (Bootstrap 3) i bs4 są przepisywane. |
| 9014 | Partiami: konwertuje kod Owl Carousel w treści na karuzelę Bootstrap (src/Migration/OwlCarouselMigration.php). |
| 9016 | Dodaje ai_user_model_selection z domyślnym true. |
| 9017 | Partiami: konwertuje liczniki kołowe circliful na kod postępu Bootstrap (CircleCounterMigration.php). |
| 9018 | Partiami: konwertuje starszy kod pasków postępu na strukturę postępu Bootstrap (ProgressBarMigration.php). |
| 9020 | Instaluje moduł Key, przenosi json_web_token do encji Key dxpr_builder_jwt, ustawia api_key_storage na key i czyści wartość jawnym tekstem. |
| 9021 | Uzupełnia właściwość type szablonów użytkowników z ich kodu. |
| 9022 | Partiami: dodaje data-entity-type i data-entity-uuid do wewnętrznych linków /node/N (EntityLinkMigration.php). |
| 9023 | Partiami: naprawia format tekstu, zajawkę i usunięte delty, które aktualizacja 9022 zgubiła na polach text_with_summary. |
| 9024 | Partiami: wzbogaca aliasowane linki wewnętrzne tak samo jak 9022 (AliasLinkMigration.php). |
| 9025 | Czyści tone_of_voice_vocabulary, gdy wskazuje na słownik, który już nie istnieje. |
| 9026 | Czyści jawny tekst json_web_token pozostawiony w ustawieniach, gdy klucz mieszka w encji Key. |
Nie ma aktualizacji 9019.
Migracje treści
3.x uruchamia migracje treści tylko partiami; nie ma już konwersji w czasie renderowania. Strona statusu migracji (/admin/dxpr_studio/dxpr_builder/migration-status) i raport statusu wymieniają oczekującą treść. Migrują ją powyższe hooki aktualizacji, a także akcje Run now i Run all pending migrations na tej stronie. Migracje to usługi oznaczone dxpr_builder.content_migration (dxpr_builder.services.yml). Partia zapisująca błędy nie jest oznaczana jako ukończona; nieudane elementy są logowane i pozostają oczekujące.
Przepisywanie ciągów glazed_to_dxpr stosowane przez 1.x i 2.x w czasie renderowania usunięto. Nazwę Glazed porzucono w 1.0.0 w maju 2020 i zakłada się, że cała treść z ery Glazed i Carbide została zmigrowana przez te wydania. Przepisywanie było zwykłym zastąpieniem ciągu. Na witrynach, których treść jedynie wspomina Glazed (artykuły wsparcia, linki dokumentacji), przepisywałoby prozę i psuło linki zamiast migrować kod. Witryny wciąż trzymające nazwy klas Glazed w zapisanej treści powinny najpierw uruchomić wydanie 2.x.
Zmiany dla własnego kodu
Formater pól
Id formatera pól to dxpr_builder_text (etykieta „DXPR Builder”, src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php), niezmienione od 1.x. Ma jedno ustawienie, profile, które jest puste dla domyślnego opartego na rolach albo id profilu. Sprawdź, czy każde pole kreatora wciąż używa tego formatera na swoim wyświetlaniu; naprawa aktualizacji 9023 ogranicza się do pól, które go używają.
Hooki
dxpr_builder.api.php dokumentuje hooki 3.x. Zmień nazwy hooków Glazed Builder następująco:
| Hook Glazed Builder | Hook 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() |
Usunięte; brak hooka zastępczego. |
| brak | hook_dxpr_builder_icon_sets_alter(array &$icon_sets), nowy. Zestawy ikon deklaruje się w plikach MODULE.dxpr_icon_sets.yml. |
CSS i klasy narzędziowe
Własny CSS celujący w nazwy klas Glazed musi używać nazw DXPR, na przykład dxpr-theme-util, panel-dxpr i dxpr-builder. Klasy narzędziowe eksponowane w edytorze są dostarczane przez hook_dxpr_builder_classes_alter().
Konfiguracja i wdrażanie
- Usuń
json_web_tokenz każdej commitowanej konfiguracji; po aktualizacji 9020 klucz mieszka w encji Keydxpr_builder_jwt. Ten klucz używa providera Configuration, więc klucz jest wciąż eksportowany jakokey.key.dxpr_builder_jwt. Przełącz go na provider File albo Environment na/admin/config/system/keys, aby trzymać go poza eksportami. - Eksporty konfiguracji zawierają teraz oba słowniki AI i ich terminy.
- Profile eksportują nazwy przycisków CKEditor 5 w
inline_buttonsimodal_buttons.
Rozwiązywanie problemów
Jeśli treść nie wyświetla się poprawnie po aktualizacji:
- Uruchom
drush cache:rebuild. - Sprawdź
/admin/reports/dblogpod kątem komunikatów z kanałudxpr_builder; migracje partiami logują pomijane elementy. - Potwierdź, że wyświetlanie każdego pola kreatora wciąż używa formatera DXPR Builder.
- Potwierdź, że motyw wczytuje Bootstrap 5, albo włącz sideload na
/admin/dxpr_studio/dxpr_builder/settings.

Co dalej?
- Aktualizacja: rutynowe aktualizacje w ramach serii
- Dziennik zmian: co zmieniło każde wydanie
- Dokumentacja konfiguracji: każdy klucz dotykany przez hooki aktualizacji