Migrare da DXPR Builder 1.x o 2.x.
DXPR Builder 3.x si aggiorna sul posto da qualsiasi release 1.x o
2.x. Composer cambia il codice, e
drush updatedb esegue gli hook di aggiornamento in
dxpr_builder.install che convertono configurazione
e contenuti. Questa pagina elenca cosa fanno quegli hook,
cosa è cambiato per il codice personalizzato, e come verificare
il risultato. Le date delle release vengono dai tag git; vedi
Release precedenti.
Storia delle versioni in breve
| Serie | Drupal | Note |
|---|---|---|
| 7.x-1.x | Drupal 7 | Venduto come Glazed Builder, poi rinominato. |
| 1.x (8.x-1.x) | Drupal 8 e 9 | Nome macchina del modulo dxpr_builder dalla prima release 1.x di maggio 2020. Ultima release 1.8.8. |
| 2.x | Drupal 9.3 a 11 | CKEditor 5, supporto modulo Key, prime funzioni AI. Ultima release 2.8.1. |
| 3.x | Drupal 10.2 e 11 | Solo Bootstrap 5, modulo Key obbligatorio, migrazioni di contenuti, generazione AI di pagine e immagini. |
Il nome macchina non è cambiato tra 1.x e 3.x. I contenuti che portano ancora markup dell’era Glazed vanno migrati su 1.x o 2.x prima di aggiornare; 3.x non riscrive più il nome Glazed (vedi sotto).
Requisiti prima di iniziare
- Drupal 10.2 o superiore, o Drupal 11
(
core_version_requirementindxpr_builder.info.yml). - Il modulo Key. È una dipendenza obbligatoria in 3.x;
dxpr_builder_update_9020()lo installa sedrush updatedblo trova mancante. - Una chiave prodotto emessa per DXPR Builder 2.0.0 o
successivi. Chiavi senza claim
dxpr_tiersono rifiutate dal modulo delle impostazioni. - Un tema che fornisce Bootstrap 5, o l’opzione Bootstrap 5 di caricamento esterno. Il caricamento di Bootstrap 3 e 4 non esiste più.
Passi di migrazione
-
Fai un backup di database e file:
drush sql:dump --result-file=backup.sql -
Aggiorna il codice con Composer. 3.x è al momento pubblicato come pre-release, quindi permettile:
composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies -
Esegui gli hook di aggiornamento e ricostruisci le cache:
drush updatedb drush cache:rebuildDiversi hook 3.x elaborano ogni valore campo DXPR Builder in batch (vedi sotto). Sui siti grandi ci vogliono minuti, non secondi.
-
Apri
/admin/dxpr_studio/dxpr_builder/settingse controlla la sezione Licenza. Dopo l’aggiornamento 9020 il Metodo di archiviazione è Modulo Key e la Chiave èDXPR Builder JWT(dxpr_builder_jwt). -
Controlla File Bootstrap esterni nella stessa pagina. I siti con Bootstrap 3 o 4 selezionato sono ora su Bootstrap 5.
-
Apri
/admin/dxpr_studio/dxpr_builder/ai_settingse decidi se i tre interruttori AI, predefiniti attivi, devono restare attivi. -
Visita pagine che usano DXPR Builder e conferma che vengono rese e si modificano correttamente.
Cosa fanno gli hook di aggiornamento
Gli hook numerati da 8005 a 8025 sono usciti in 1.x. Un
sito 1.x esegue tutto da 8026 in poi; un sito 2.8.0
o 2.8.1 esegue 8040 e 9014 in poi. I nomi delle funzioni
sono dxpr_builder_update_NNNN().
Aggiunti in 2.x (eseguiti arrivando da 1.x)
| Hook | Cosa fa |
|---|---|
| 8026 | Aggiorna l’archiviazione utenti centrale di DXPR Builder. |
| 8027 | Aggiunge il blocco info licenza e una colonna “Utente DXPR Builder” alla vista Persone. |
| 8028 | Crea la tabella dxpr_lock per il blocco contenuti. |
| 8029 | Aggiunge il blocco licenze alla dashboard licenze utente. |
| 8030 | Cambia l’impostazione Bootstrap dopo la rimozione dell’opzione “Bootstrap 3 Light”. |
| 8031 | Abilita il blocco info licenza dove era installato disabilitato. |
| 8032 | Rimuove gli utenti bloccati dall’archiviazione licenze. |
| 8033 | Inizializza drm_last_contact. |
| 8034 | Installa il campo utente dxpr_user_is_disavowed e le azioni utente avow/disavow. |
| 8035 | Inizializza l’impostazione hide_reminders. |
| 8036 | Migra i nomi dei pulsanti della barra CKEditor 4 nei profili a CKEditor 5. |
| 8037 | Aggiunge uno stile immagine predefinito per immagini a caricamento rapido. |
| 8038 | Svuota le cache per registrare i servizi di integrazione del modulo Key. |
| 8039 | Ripara gli stili immagine con impostazioni image_scale_and_crop incomplete. |
| 9007 | Crea i vocabolari ai_tone_of_voice e ai_agent_commands con termini predefiniti. |
| 9008 | Imposta ai_enabled a true e rimuove la vecchia chiave ai_page_enabled. |
| 9009 | Sposta drm_last_contact dalla configurazione allo stato. |
| 9010 | Svuota le cache. |
| 9011 | Abilita i pulsanti Assistente AI e Tono di voce AI in ogni profilo. |
| 9012 | Ripristina ai_page_enabled con predefinito true. |
| 9013 | Imposta i predefiniti del filtro output AI (ai_output_allowed_domains). |
| 9015 | Aggiunge ai_image_enabled con predefinito true. |
Aggiunti in 3.x (eseguiti arrivando da 1.x o 2.x)
| Hook | Cosa fa |
|---|---|
| 8040 | Normalizza bootstrap a bs5; i valori 1 (Bootstrap 3) e bs4 vengono riscritti. |
| 9014 | Batch: converte il markup Owl Carousel nei contenuti nel carosello Bootstrap (src/Migration/OwlCarouselMigration.php). |
| 9016 | Aggiunge ai_user_model_selection con predefinito true. |
| 9017 | Batch: converte i contatori circolari circliful in markup di avanzamento Bootstrap (CircleCounterMigration.php). |
| 9018 | Batch: converte il markup legacy della barra di avanzamento nella struttura di avanzamento Bootstrap (ProgressBarMigration.php). |
| 9020 | Installa il modulo Key, sposta json_web_token nell’entità Chiave dxpr_builder_jwt, imposta api_key_storage a key e svuota il valore in testo in chiaro. |
| 9021 | Riempie la proprietà type dei modelli utente dal loro markup. |
| 9022 | Batch: aggiunge data-entity-type e data-entity-uuid ai link interni /node/N (EntityLinkMigration.php). |
| 9023 | Batch: ripara formato testo, riassunto e delta eliminati che l’aggiornamento 9022 ha perso sui campi text_with_summary. |
| 9024 | Batch: arricchisce allo stesso modo i link interni con alias come 9022 (AliasLinkMigration.php). |
| 9025 | Svuota tone_of_voice_vocabulary quando punta a un vocabolario che non esiste più. |
| 9026 | Svuota un json_web_token in testo in chiaro rimasto nelle impostazioni quando la chiave sta in un’entità Chiave. |
Non esiste l’aggiornamento 9019.
Migrazioni dei contenuti
3.x esegue le migrazioni dei contenuti solo in batch; non c’è più
alcuna conversione al rendering. La pagina di stato migrazione
(/admin/dxpr_studio/dxpr_builder/migration-status)
e il report di stato elencano i contenuti in sospeso. Gli hook di
aggiornamento sopra li migrano, e così fanno le azioni Esegui
ora e Esegui tutte le migrazioni in sospeso su
quella pagina. Le migrazioni sono servizi taggati
dxpr_builder.content_migration
(dxpr_builder.services.yml). Un batch che
registra errori non è marcato completo; gli elementi
falliti sono registrati e restano in sospeso.
La riscrittura stringa glazed_to_dxpr applicata al rendering
in 1.x e 2.x è stata rimossa. Il nome Glazed è stato abbandonato
con 1.0.0 a maggio 2020 e si assume che tutti i contenuti dell’era
Glazed e Carbide siano stati migrati da quelle release. La riscrittura
era una semplice sostituzione di stringhe. Sui siti i cui contenuti
menzionano soltanto Glazed (articoli di supporto, link di
documentazione), avrebbe riscritto la prosa e rotto i link invece di
migrare il markup. I siti che conservano ancora nomi classe Glazed nei
contenuti archiviati dovrebbero eseguire prima la release 2.x.
Modifiche per il codice personalizzato
Formattatore campo
L’id del formattatore campo è dxpr_builder_text
(etichetta “DXPR Builder”,
src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php),
invariato da 1.x. Ha un’impostazione,
profile, vuota per il predefinito basato sul ruolo
o un id profilo. Controlla che ogni campo builder
usi ancora questo formattatore nella sua visualizzazione;
la riparazione dell’aggiornamento 9023 è limitata ai campi
che lo fanno.
Hook
dxpr_builder.api.php documenta gli hook 3.x.
Rinomina quelli di Glazed Builder come segue:
| Hook di 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() |
Rimosso; nessun hook sostitutivo. |
| none | hook_dxpr_builder_icon_sets_alter(array &$icon_sets), nuovo. I set di icone sono dichiarati in file MODULE.dxpr_icon_sets.yml. |
CSS e classi di utilità
Il CSS personalizzato che punta ai nomi classe Glazed deve
usare i nomi DXPR, come dxpr-theme-util,
panel-dxpr e dxpr-builder.
Le classi di utilità esposte nell’editor sono fornite
tramite hook_dxpr_builder_classes_alter().
Configurazione e distribuzione
- Rimuovi
json_web_tokenda qualsiasi configurazione nel repository; dopo l’aggiornamento 9020 la chiave sta nell’entità Chiavedxpr_builder_jwt. Quella Chiave usa il provider Configurazione, quindi la chiave è comunque esportata comekey.key.dxpr_builder_jwt. Passala al provider File o Ambiente in/admin/config/system/keysper tenerla fuori dalle esportazioni. - Le esportazioni di configurazione includono ora i due vocabolari AI e i loro termini.
- I profili esportano i nomi pulsanti CKEditor 5 in
inline_buttonsemodal_buttons.
Risoluzione dei problemi
Se i contenuti non si mostrano bene dopo l’aggiornamento:
- Esegui
drush cache:rebuild. - Controlla
/admin/reports/dblogper messaggi dal canaledxpr_builder; le migrazioni batch registrano gli elementi saltati. - Conferma che la visualizzazione di ogni campo builder usi ancora il formattatore DXPR Builder.
- Conferma che il tema carichi Bootstrap 5, o abilita il
caricamento esterno in
/admin/dxpr_studio/dxpr_builder/settings.

Passi successivi
- Aggiornamento: aggiornamenti di routine dentro una serie
- Changelog: cosa ha cambiato ogni release
- Riferimento di configurazione: ogni chiave toccata dagli hook di aggiornamento