Von DXPR Builder 1.x oder 2.x migrieren.
DXPR Builder 3.x aktualisiert direkt aus jedem 1.x- oder
2.x-Release. Composer tauscht den Code und
drush updatedb führt die Update-Hooks in
dxpr_builder.install aus, die Konfiguration
und Inhalte konvertieren. Diese Seite listet auf, was diese Hooks tun,
was sich für eigenen Code geändert hat und wie Sie das
Ergebnis prüfen. Release-Daten stammen aus Git-Tags; siehe
Ältere Versionen.
Versionsgeschichte in Kürze
| Serie | Drupal | Hinweise |
|---|---|---|
| 7.x-1.x | Drupal 7 | Verkauft als Glazed Builder, später umbenannt. |
| 1.x (8.x-1.x) | Drupal 8 und 9 | Modul-Maschinenname dxpr_builder ab dem ersten 1.x-Release im Mai 2020. Letztes Release 1.8.8. |
| 2.x | Drupal 9.3 bis 11 | CKEditor 5, Key-Modul-Unterstützung, erste KI-Funktionen. Letztes Release 2.8.1. |
| 3.x | Drupal 10.2 und 11 | Nur Bootstrap 5, Key-Modul erforderlich, Inhaltsmigrationen, KI-Seiten- und Bildgenerierung. |
Der Maschinenname hat sich zwischen 1.x und 3.x nicht geändert. Inhalte mit Markup aus der Glazed-Ära müssen auf 1.x oder 2.x migriert werden, bevor Sie upgraden; 3.x schreibt den Glazed-Namen nicht mehr um (siehe unten).
Anforderungen vor dem Start
- Drupal 10.2 oder neuer oder Drupal 11
(
core_version_requirementindxpr_builder.info.yml). - Das Key-Modul. Es ist eine harte Abhängigkeit in 3.x;
dxpr_builder_update_9020()installiert es, wenndrush updatedbfeststellt, dass es fehlt. - Einen Produktschlüssel für DXPR Builder 2.0.0 oder
neuer. Schlüssel ohne
dxpr_tier-Claim werden vom Einstellungsformular abgelehnt. - Ein Theme, das Bootstrap 5 liefert, oder die Bootstrap 5-Sideload-Option. Bootstrap-3- und 4-Sideloading gibt es nicht mehr.
Migrationsschritte
-
Sichern Sie Datenbank und Dateien:
drush sql:dump --result-file=backup.sql -
Aktualisieren Sie den Code mit Composer. 3.x erscheint derzeit als Vorab-Releases, erlauben Sie diese also:
composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies -
Führen Sie die Update-Hooks aus und bauen Sie die Caches neu auf:
drush updatedb drush cache:rebuildMehrere 3.x-Hooks verarbeiten jeden DXPR-Builder-Feldwert in Batches (siehe unten). Auf großen Websites dauern sie Minuten, nicht Sekunden.
-
Öffnen Sie
/admin/dxpr_studio/dxpr_builder/settingsund prüfen Sie den Bereich License. Nach Update 9020 ist die Storage method Key module und der Key istDXPR Builder JWT(dxpr_builder_jwt). -
Prüfen Sie Sideload Bootstrap files auf derselben Seite. Websites mit gewähltem Bootstrap 3 oder 4 stehen nun auf Bootstrap 5.
-
Öffnen Sie
/admin/dxpr_studio/dxpr_builder/ai_settingsund entscheiden Sie, ob die drei KI-Schalter, die standardmäßig eingeschaltet sind, eingeschaltet bleiben sollen. -
Besuchen Sie Seiten, die DXPR Builder nutzen, und vergewissern Sie sich, dass sie korrekt rendern und sich bearbeiten lassen.
Was die Update-Hooks tun
Hooks mit den Nummern 8005 bis 8025 kamen in 1.x. Eine
1.x-Website führt alles ab 8026 aus; eine 2.8.0-
oder 2.8.1-Website führt 8040 und ab 9014 aus. Die Funktionsnamen
lauten dxpr_builder_update_NNNN().
In 2.x hinzugefügt (läuft bei Herkunft aus 1.x)
| Hook | Was er tut |
|---|---|
| 8026 | Aktualisiert den zentralen DXPR-Builder-Benutzerspeicher. |
| 8027 | Fügt den Lizenzinfo-Block und eine Spalte „DXPR Builder User“ zur People-View hinzu. |
| 8028 | Erstellt die Tabelle dxpr_lock für Inhaltssperren. |
| 8029 | Fügt den Lizenzblock zum Benutzerlizenz-Dashboard hinzu. |
| 8030 | Stellt die Bootstrap-Einstellung um, nachdem die Option „Bootstrap 3 Light“ entfernt wurde. |
| 8031 | Aktiviert den Lizenzinfo-Block, wo er deaktiviert installiert war. |
| 8032 | Entfernt blockierte Benutzer aus dem Lizenzspeicher. |
| 8033 | Initialisiert drm_last_contact. |
| 8034 | Installiert das Benutzerfeld dxpr_user_is_disavowed und die Avow-/Disavow-Benutzeraktionen. |
| 8035 | Initialisiert die Einstellung hide_reminders. |
| 8036 | Migriert CKEditor-4-Symbolleistenschaltflächennamen in Profilen zu CKEditor 5. |
| 8037 | Fügt einen Standard-Bildstil für schnell ladende Bilder hinzu. |
| 8038 | Leert Caches, um die Key-Modul-Integrationsdienste zu registrieren. |
| 8039 | Repariert Bildstile mit unvollständigen image_scale_and_crop-Einstellungen. |
| 9007 | Erstellt die Vokabulare ai_tone_of_voice und ai_agent_commands mit Standardbegriffen. |
| 9008 | Setzt ai_enabled auf true und entfernt den alten Schlüssel ai_page_enabled. |
| 9009 | Verschiebt drm_last_contact von der Konfiguration in den State. |
| 9010 | Leert Caches. |
| 9011 | Aktiviert die Schaltflächen AI Assistant und AI Tone of Voice in jedem Profil. |
| 9012 | Stellt ai_page_enabled mit Standard true wieder her. |
| 9013 | Setzt die KI-Ausgabefilter-Vorgaben (ai_output_allowed_domains). |
| 9015 | Fügt ai_image_enabled mit Standard true hinzu. |
In 3.x hinzugefügt (läuft bei Herkunft aus 1.x oder 2.x)
| Hook | Was er tut |
|---|---|
| 8040 | Normalisiert bootstrap auf bs5; die Werte 1 (Bootstrap 3) und bs4 werden umgeschrieben. |
| 9014 | Batch: Konvertiert Owl-Carousel-Markup in Inhalten zum Bootstrap-Karussell (src/Migration/OwlCarouselMigration.php). |
| 9016 | Fügt ai_user_model_selection mit Standard true hinzu. |
| 9017 | Batch: Konvertiert Circliful-Kreis-Counter zu Bootstrap-Progress-Markup (CircleCounterMigration.php). |
| 9018 | Batch: Konvertiert Legacy-Progress-Bar-Markup zur Bootstrap-Progress-Struktur (ProgressBarMigration.php). |
| 9020 | Installiert das Key-Modul, verschiebt json_web_token in die Key-Entity dxpr_builder_jwt, setzt api_key_storage auf key und leert den Klartextwert. |
| 9021 | Füllt die type-Eigenschaft von Benutzervorlagen aus ihrem Markup auf. |
| 9022 | Batch: Ergänzt data-entity-type und data-entity-uuid an internen /node/N-Links (EntityLinkMigration.php). |
| 9023 | Batch: Repariert Textformat, Zusammenfassung und gelöschte Deltas, die Update 9022 auf text_with_summary-Feldern verloren hat. |
| 9024 | Batch: Reichert Alias-Links intern genauso an wie 9022 (AliasLinkMigration.php). |
| 9025 | Leert tone_of_voice_vocabulary, wenn es auf ein nicht mehr existierendes Vokabular zeigt. |
| 9026 | Leert einen Klartext-json_web_token in den Einstellungen, wenn der Schlüssel in einer Key-Entity lebt. |
Es gibt kein Update 9019.
Inhaltsmigrationen
3.x führt Inhaltsmigrationen nur in Batch aus; es gibt keine
Konvertierung mehr zur Renderzeit. Die Migrationsstatusseite
(/admin/dxpr_studio/dxpr_builder/migration-status)
und der Statusbericht listen ausstehende Inhalte. Die
Update-Hooks oben migrieren sie, ebenso die Aktionen Run
now und Run all pending migrations auf
dieser Seite. Migrationen sind Dienste mit dem Tag
dxpr_builder.content_migration
(dxpr_builder.services.yml). Ein Batch, der
Fehler aufzeichnet, wird nicht als abgeschlossen markiert; die
fehlgeschlagenen Einträge werden protokolliert und bleiben ausstehend.
Das glazed_to_dxpr-Zeichenketten-Rewriting, das 1.x und
2.x zur Renderzeit anwendeten, ist entfernt. Der Glazed-Name fiel mit 1.0.0 im Mai 2020 und
alle Inhalte der Glazed- und Carbide-Ära gelten als
durch diese Releases migriert. Das Rewriting war eine schlichte Zeichenkettenersetzung. Auf Websites, deren
Inhalte Glazed lediglich erwähnen (Support-Artikel,
Dokumentationslinks), hätte es Prosa umgeschrieben
und Links gebrochen statt Markup zu migrieren.
Websites, die noch Glazed-Klassennamen in gespeicherten
Inhalten halten, sollten zuerst das 2.x-Release einspielen.
Änderungen für eigenen Code
Feld-Formatierer
Die Feld-Formatierer-ID ist dxpr_builder_text
(Bezeichnung „DXPR Builder“,
src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php),
unverändert seit 1.x. Sie hat eine Einstellung,
profile, die für die rollenbasierte
Vorgabe leer ist oder eine Profil-ID. Prüfen Sie, ob jedes Builder-
Feld diesen Formatierer auf seiner Anzeige
weiter nutzt; die Reparatur von Update 9023 beschränkt sich auf Felder,
die das tun.
Hooks
dxpr_builder.api.php dokumentiert die 3.x-Hooks.
Benennen Sie die Glazed-Builder-Hooks wie folgt um:
| Glazed-Builder-Hook | DXPR-Builder-3.x-Hook |
|---|---|
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() |
Entfernt; kein Ersatz-Hook. |
| none | hook_dxpr_builder_icon_sets_alter(array &$icon_sets), neu. Icon-Sets werden in MODULE.dxpr_icon_sets.yml-Dateien deklariert. |
CSS- und Utility-Klassen
Eigenes CSS, das auf Glazed-Klassennamen zielt, muss
die DXPR-Namen nutzen, zum Beispiel dxpr-theme-util,
panel-dxpr und dxpr-builder.
Utility-Klassen, die der Editor zeigt, werden über
hook_dxpr_builder_classes_alter() bereitgestellt.
Konfiguration und Deployment
- Entfernen Sie
json_web_tokenaus jeder committeten Konfiguration; nach Update 9020 lebt der Schlüssel in der Key-Entitydxpr_builder_jwt. Dieser Key nutzt den Configuration-Anbieter, sodass der Schlüssel weiterhin alskey.key.dxpr_builder_jwtexportiert wird. Schalten Sie ihn auf den File- oder Environment-Anbieter unter/admin/config/system/keysum, um ihn aus Exporten herauszuhalten. - Konfigurationsexporte enthalten nun die beiden KI- Vokabulare und ihre Begriffe.
- Profile exportieren CKEditor-5-Schaltflächennamen in
inline_buttonsundmodal_buttons.
Fehlerbehebung
Wenn Inhalte nach dem Update nicht korrekt angezeigt werden:
- Führen Sie
drush cache:rebuildaus. - Prüfen Sie
/admin/reports/dblogauf Meldungen aus demdxpr_builder-Kanal; Batch-Migrationen protokollieren die übersprungenen Einträge. - Vergewissern Sie sich, dass die Anzeige jedes Builder-Felds weiterhin den DXPR Builder-Formatierer nutzt.
- Vergewissern Sie sich, dass das Theme Bootstrap 5 lädt, oder aktivieren Sie
Sideloading unter
/admin/dxpr_studio/dxpr_builder/settings.

Wie geht es weiter?
- Aktualisieren: Routine-Updates innerhalb einer Serie
- Changelog: Was jedes Release geändert hat
- Konfigurationsreferenz: Jeder Schlüssel, den die Update-Hooks berühren