Migrare da DXPR Builder 1.x o 2.x.

Impara DXPR BuilderInizia da quiPassa da un altro builder

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_requirement in dxpr_builder.info.yml).
  • Il modulo Key. È una dipendenza obbligatoria in 3.x; dxpr_builder_update_9020() lo installa se drush updatedb lo trova mancante.
  • Una chiave prodotto emessa per DXPR Builder 2.0.0 o successivi. Chiavi senza claim dxpr_tier sono 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

  1. Fai un backup di database e file:

    drush sql:dump --result-file=backup.sql
    
  2. 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
    
  3. Esegui gli hook di aggiornamento e ricostruisci le cache:

    drush updatedb
    drush cache:rebuild
    

    Diversi hook 3.x elaborano ogni valore campo DXPR Builder in batch (vedi sotto). Sui siti grandi ci vogliono minuti, non secondi.

  4. Apri /admin/dxpr_studio/dxpr_builder/settings e controlla la sezione Licenza. Dopo l’aggiornamento 9020 il Metodo di archiviazione è Modulo Key e la Chiave è DXPR Builder JWT (dxpr_builder_jwt).

  5. Controlla File Bootstrap esterni nella stessa pagina. I siti con Bootstrap 3 o 4 selezionato sono ora su Bootstrap 5.

  6. Apri /admin/dxpr_studio/dxpr_builder/ai_settings e decidi se i tre interruttori AI, predefiniti attivi, devono restare attivi.

  7. 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_token da qualsiasi configurazione nel repository; dopo l’aggiornamento 9020 la chiave sta nell’entità Chiave dxpr_builder_jwt. Quella Chiave usa il provider Configurazione, quindi la chiave è comunque esportata come key.key.dxpr_builder_jwt. Passala al provider File o Ambiente in /admin/config/system/keys per 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_buttons e modal_buttons.

Risoluzione dei problemi

Se i contenuti non si mostrano bene dopo l’aggiornamento:

  1. Esegui drush cache:rebuild.
  2. Controlla /admin/reports/dblog per messaggi dal canale dxpr_builder; le migrazioni batch registrano gli elementi saltati.
  3. Conferma che la visualizzazione di ogni campo builder usi ancora il formattatore DXPR Builder.
  4. Conferma che il tema carichi Bootstrap 5, o abilita il caricamento esterno in /admin/dxpr_studio/dxpr_builder/settings.

Pagina delle impostazioni generali di DXPR Builder dopo l’aggiornamento

Passi successivi