Migreren van 1.x of 2.x naar 3.x.
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_requirementindxpr_builder.info.yml). - De Key-module. Hij is een harde afhankelijkheid in 3.x;
dxpr_builder_update_9020()installeert hem alsdrush updatedbhem 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
-
Maak een backup van de database en bestanden:
drush sql:dump --result-file=backup.sql -
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 -
Draai de updatehooks en herbouw caches:
drush updatedb drush cache:rebuildVerschillende 3.x-hooks verwerken elke DXPR Builder-veldwaarde in batches (zie hieronder). Op grote sites kosten ze minuten, geen seconden.
-
Open
/admin/dxpr_studio/dxpr_builder/settingsen controleer de sectie Licentie. Na update 9020 is de Opslagmethode Key-module en is de SleutelDXPR Builder JWT(dxpr_builder_jwt). -
Controleer Bestanden van Bootstrap bijladen op dezelfde pagina. Sites met Bootstrap 3 of 4 geselecteerd staan nu op Bootstrap 5.
-
Open
/admin/dxpr_studio/dxpr_builder/ai_settingsen beslis of de drie AI-schakelaars, die standaard aanstaan, aan moeten blijven. -
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_tokenuit gecommitte configuratie; na update 9020 leeft de sleutel in dedxpr_builder_jwt-Key-entiteit. Die Sleutel gebruikt de Instellingen-provider, dus de sleutel wordt nog steeds geëxporteerd alskey.key.dxpr_builder_jwt. Schakel hem om naar de provider Bestand of Omgeving op/admin/config/system/keysom hem uit exports te houden. - Instellingen-exports bevatten nu de twee AI-vocabulaires en hun termen.
- Profielen exporteren CKEditor 5-knopnamen in
inline_buttonsenmodal_buttons.
Problemen oplossen
Als inhoud na de update niet correct wordt weergegeven:
- Draai
drush cache:rebuild. - Controleer
/admin/reports/dblogop berichten uit hetdxpr_builder-kanaal; batchmigraties loggen de items die ze overslaan. - Bevestig dat de weergave van elk builderveld nog de formatter DXPR Builder gebruikt.
- Bevestig dat het thema Bootstrap 5 laadt, of schakel bijladen in op
/admin/dxpr_studio/dxpr_builder/settings.

Wat nu?
- Bijwerken: routine-updates binnen een reeks
- Wijzigingenlog: wat elke release wijzigde
- Instellingenreferentie: elke sleutel die de updatehooks raken