Von DXPR Builder 1.x oder 2.x migrieren.

Learn DXPR BuilderStart hereVerhuizen vanaf een andere builder

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_requirement in dxpr_builder.info.yml).
  • Das Key-Modul. Es ist eine harte Abhängigkeit in 3.x; dxpr_builder_update_9020() installiert es, wenn drush updatedb feststellt, 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

  1. Sichern Sie Datenbank und Dateien:

    drush sql:dump --result-file=backup.sql
    
  2. 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
    
  3. Führen Sie die Update-Hooks aus und bauen Sie die Caches neu auf:

    drush updatedb
    drush cache:rebuild
    

    Mehrere 3.x-Hooks verarbeiten jeden DXPR-Builder-Feldwert in Batches (siehe unten). Auf großen Websites dauern sie Minuten, nicht Sekunden.

  4. Öffnen Sie /admin/dxpr_studio/dxpr_builder/settings und prüfen Sie den Bereich License. Nach Update 9020 ist die Storage method Key module und der Key ist DXPR Builder JWT (dxpr_builder_jwt).

  5. Prüfen Sie Sideload Bootstrap files auf derselben Seite. Websites mit gewähltem Bootstrap 3 oder 4 stehen nun auf Bootstrap 5.

  6. Öffnen Sie /admin/dxpr_studio/dxpr_builder/ai_settings und entscheiden Sie, ob die drei KI-Schalter, die standardmäßig eingeschaltet sind, eingeschaltet bleiben sollen.

  7. 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_token aus jeder committeten Konfiguration; nach Update 9020 lebt der Schlüssel in der Key-Entity dxpr_builder_jwt. Dieser Key nutzt den Configuration-Anbieter, sodass der Schlüssel weiterhin als key.key.dxpr_builder_jwt exportiert wird. Schalten Sie ihn auf den File- oder Environment-Anbieter unter /admin/config/system/keys um, um ihn aus Exporten herauszuhalten.
  • Konfigurationsexporte enthalten nun die beiden KI- Vokabulare und ihre Begriffe.
  • Profile exportieren CKEditor-5-Schaltflächennamen in inline_buttons und modal_buttons.

Fehlerbehebung

Wenn Inhalte nach dem Update nicht korrekt angezeigt werden:

  1. Führen Sie drush cache:rebuild aus.
  2. Prüfen Sie /admin/reports/dblog auf Meldungen aus dem dxpr_builder-Kanal; Batch-Migrationen protokollieren die übersprungenen Einträge.
  3. Vergewissern Sie sich, dass die Anzeige jedes Builder-Felds weiterhin den DXPR Builder-Formatierer nutzt.
  4. Vergewissern Sie sich, dass das Theme Bootstrap 5 lädt, oder aktivieren Sie Sideloading unter /admin/dxpr_studio/dxpr_builder/settings.

DXPR-Builder-Seite mit allgemeinen Einstellungen nach dem Update

Wie geht es weiter?