Migreren van 1.x of 2.x naar 3.x.

DXPR Builder lerenBegin hierVerhuizen vanaf een andere builder

DXPR Builder 3.x werkt ter plekke bij vanaf elke 1.x- of 2.x-release. Composer wisselt de code, en drush updatedb draait de updatehooks in dxpr_builder.install die configuratie en inhoud omzetten. Deze pagina somt op wat die hooks doen, wat er wijzigde voor maatwerkcode, en hoe je het resultaat verifieert. Releasedata komen uit git-tags; zie Oudere releases.

Versiegeschiedenis in het kort

Reeks Drupal Opmerkingen
7.x-1.x Drupal 7 Verkocht als Glazed Builder, later hernoemd.
1.x (8.x-1.x) Drupal 8 en 9 Machinenaam module dxpr_builder vanaf de eerste 1.x-release in mei 2020. Laatste release 1.8.8.
2.x Drupal 9.3 tot 11 CKEditor 5, Key-moduleondersteuning, eerste AI-functies. Laatste release 2.8.1.
3.x Drupal 10.2 en 11 Alleen Bootstrap 5, Key-module vereist, inhoudsmigraties, AI-pagina- en afbeeldingsgeneratie.

De machinenaam wijzigde niet tussen 1.x en 3.x. Inhoud die nog markup uit het Glazed-tijdperk draagt moet op 1.x of 2.x worden gemigreerd vóór het upgraden; 3.x herschrijft de Glazed-naam niet meer (zie hieronder).

Vereisten om te beginnen

  • Drupal 10.2 of later, of Drupal 11 (core_version_requirement in dxpr_builder.info.yml).
  • De Key-module. Hij is een harde afhankelijkheid in 3.x; dxpr_builder_update_9020() installeert hem als drush updatedb hem mist.
  • Een productsleutel uitgegeven voor DXPR Builder 2.0.0 of later. Sleutels zonder dxpr_tier-claim worden geweigerd door het instellingenformulier.
  • Een thema dat Bootstrap 5 levert, of de optie Bootstrap 5 bijladen. Bootstrap 3- en 4-bijladen bestaat niet meer.

Migratiestappen

  1. Maak een backup van de database en bestanden:

    drush sql:dump --result-file=backup.sql
    
  2. Werk de code bij met Composer. 3.x verschijnt momenteel als pre-releases, dus sta ze toe:

    composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies
    
  3. Draai de updatehooks en herbouw caches:

    drush updatedb
    drush cache:rebuild
    

    Verschillende 3.x-hooks verwerken elke DXPR Builder-veldwaarde in batches (zie hieronder). Op grote sites kosten ze minuten, geen seconden.

  4. Open /admin/dxpr_studio/dxpr_builder/settings en controleer de sectie Licentie. Na update 9020 is de Opslagmethode Key-module en is de Sleutel DXPR Builder JWT (dxpr_builder_jwt).

  5. Controleer Bestanden van Bootstrap bijladen op dezelfde pagina. Sites met Bootstrap 3 of 4 geselecteerd staan nu op Bootstrap 5.

  6. Open /admin/dxpr_studio/dxpr_builder/ai_settings en beslis of de drie AI-schakelaars, die standaard aanstaan, aan moeten blijven.

  7. Bezoek pagina's die DXPR Builder gebruiken en bevestig dat ze correct renderen en bewerken.

Wat de updatehooks doen

Hooks genummerd 8005 tot 8025 verschenen in 1.x. Een 1.x-site draait alles vanaf 8026; een 2.8.0- of 2.8.1-site draait 8040 en 9014 en verder. De functienamen zijn dxpr_builder_update_NNNN().

Toegevoegd in 2.x (draait bij komst van 1.x)

Hook Wat hij doet
8026 Werkt de centrale DXPR Builder-gebruikersopslag bij.
8027 Voegt het licentie-infoblok en een kolom “DXPR Builder-gebruiker” toe aan de People-weergave.
8028 Maakt de tabel dxpr_lock voor inhoudsvergrendeling.
8029 Voegt het licentieblok toe aan het gebruikerslicentiedashboard.
8030 Schakelt de Bootstrap-instelling om nadat de optie “Bootstrap 3 Light” is verwijderd.
8031 Schakelt het licentie-infoblok in waar het uitgeschakeld was geïnstalleerd.
8032 Verwijdert geblokkeerde gebruikers uit de licentieopslag.
8033 Initialiseert drm_last_contact.
8034 Installeert het gebruikersveld dxpr_user_is_disavowed en de avow/disavow-gebruikersacties.
8035 Initialiseert de instelling hide_reminders.
8036 Migreert CKEditor 4-werkbalkknopnamen in profielen naar CKEditor 5.
8037 Voegt een standaard afbeeldingsstijl toe voor snel ladende afbeeldingen.
8038 Wist caches om de Key-module-integratieservices te registreren.
8039 Repareert afbeeldingsstijlen met onvolledige image_scale_and_crop-instellingen.
9007 Maakt de vocabulaires ai_tone_of_voice en ai_agent_commands met standaardtermen.
9008 Zet ai_enabled op true en verwijdert de oude sleutel ai_page_enabled.
9009 Verplaatst drm_last_contact van configuratie naar state.
9010 Wist caches.
9011 Schakelt de knoppen AI-assistent en AI Tone of Voice in in elk profiel.
9012 Herstelt ai_page_enabled met standaard true.
9013 Stelt de standaard AI-uitvoerfiltering in (ai_output_allowed_domains).
9015 Voegt ai_image_enabled toe met standaard true.

Toegevoegd in 3.x (draait bij komst van 1.x of 2.x)

Hook Wat hij doet
8040 Normaliseert bootstrap naar bs5; de waarden 1 (Bootstrap 3) en bs4 worden herschreven.
9014 Batch: zet Owl Carousel-markup in inhoud om naar de Bootstrap-carrousel (src/Migration/OwlCarouselMigration.php).
9016 Voegt ai_user_model_selection toe met standaard true.
9017 Batch: zet circliful-cirkeltellers om naar Bootstrap-voortgangsmarkup (CircleCounterMigration.php).
9018 Batch: zet legacy-voortgangsbalkmarkup om naar de Bootstrap-voortgangsstructuur (ProgressBarMigration.php).
9020 Installeert de Key-module, verplaatst json_web_token naar de Key-entiteit dxpr_builder_jwt, zet api_key_storage op key en wist de waarde als platte tekst.
9021 Vult de eigenschap type van gebruikerssjablonen aan uit hun markup.
9022 Batch: voegt data-entity-type en data-entity-uuid toe aan interne /node/N-links (EntityLinkMigration.php).
9023 Batch: repareert tekstformaat, samenvatting en verwijderde delta's die update 9022 verloor op text_with_summary-velden.
9024 Batch: verrijkt interne links met alias op dezelfde manier als 9022 (AliasLinkMigration.php).
9025 Wist tone_of_voice_vocabulary als het naar een vocabulaire wijst dat niet meer bestaat.
9026 Wist een json_web_token als platte tekst achtergebleven in de instellingen als de sleutel in een Key-entiteit leeft.

Er is geen update 9019.

Inhoudsmigraties

3.x draait inhoudsmigraties alleen in batch; er is geen conversie tijdens renderen meer. De migratiestatuspagina (/admin/dxpr_studio/dxpr_builder/migration-status) en het statusrapport sommen openstaande inhoud op. De updatehooks hierboven migreren hem, en dat doen ook de acties Nu uitvoeren en Alle openstaande migraties uitvoeren op die pagina. Migraties zijn services met de tag dxpr_builder.content_migration (dxpr_builder.services.yml). Een batch die fouten vastlegt wordt niet als voltooid gemarkeerd; de mislukte items worden gelogd en blijven openstaan.

De glazed_to_dxpr-stringherschrijving die 1.x en 2.x tijdens renderen toepasten is verwijderd. De Glazed-naam is vervallen met 1.0.0 in mei 2020 en alle inhoud uit het Glazed- en Carbide-tijdperk wordt geacht door die releases te zijn gemigreerd. De herschrijving was een kale stringvervanging. Op sites waarvan de inhoud Glazed slechts noemt (supportartikelen, documentatielinks), zou hij proza hebben herschreven en links hebben gebroken in plaats van markup te migreren. Sites die nog Glazed-klassenamen in opgeslagen inhoud hebben moeten eerst de 2.x-release draaien.

Wijzigingen voor maatwerkcode

Veldformatter

De veldformatter-id is dxpr_builder_text (label “DXPR Builder”, src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php), ongewijzigd sinds 1.x. Hij heeft één instelling, profile, die leeg is voor de rolgebaseerde standaard of een profiel-id. Controleer of elk builderveld deze formatter nog gebruikt op zijn weergave; de reparatie van update 9023 is beperkt tot velden die dat doen.

Hooks

dxpr_builder.api.php documenteert de 3.x-hooks. Hernoem de Glazed Builder-hooks als volgt:

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() Verwijderd; geen vervangende hook.
none hook_dxpr_builder_icon_sets_alter(array &$icon_sets), nieuw. Pictogramsets worden gedeclareerd in MODULE.dxpr_icon_sets.yml-bestanden.

CSS en hulpklassen

Aangepaste CSS die Glazed-klassenamen target moet de DXPR-namen gebruiken, zoals dxpr-theme-util, panel-dxpr en dxpr-builder. Hulpklassen in de editor worden geleverd via hook_dxpr_builder_classes_alter().

Instellingen en implementatie

  • Verwijder json_web_token uit gecommitte configuratie; na update 9020 leeft de sleutel in de dxpr_builder_jwt-Key-entiteit. Die Sleutel gebruikt de Instellingen-provider, dus de sleutel wordt nog steeds geëxporteerd als key.key.dxpr_builder_jwt. Schakel hem om naar de provider Bestand of Omgeving op /admin/config/system/keys om hem uit exports te houden.
  • Instellingen-exports bevatten nu de twee AI-vocabulaires en hun termen.
  • Profielen exporteren CKEditor 5-knopnamen in inline_buttons en modal_buttons.

Problemen oplossen

Als inhoud na de update niet correct wordt weergegeven:

  1. Draai drush cache:rebuild.
  2. Controleer /admin/reports/dblog op berichten uit het dxpr_builder-kanaal; batchmigraties loggen de items die ze overslaan.
  3. Bevestig dat de weergave van elk builderveld nog de formatter DXPR Builder gebruikt.
  4. Bevestig dat het thema Bootstrap 5 laadt, of schakel bijladen in op /admin/dxpr_studio/dxpr_builder/settings.

Algemene-instellingenpagina van DXPR Builder na de update

Wat nu?