Content staging.
Il content staging è costruire e revisionare le pagine di DXPR Builder prima che i visitatori le vedano. Ci sono due modi: un sito di staging separato i cui contenuti sposti in produzione, oppure revisioni e Content Moderation di Drupal su un sito. Questa pagina copre entrambi, e dice esattamente cosa fa un salvataggio del builder a revisioni e stati di moderazione, perché è questo a decidere quale approccio funziona per te.
Cosa fa un salvataggio del builder
Ogni salvataggio dall’editor esegue questi passaggi:
- Carica la default revision della pagina, nella lingua in modifica.
- Verifica che l’utente corrente possa aggiornare la pagina.
- Scrive il nuovo HTML nel campo.
- Se il tipo di entità ha revisioni, crea una nuova revisione e
ne fa la revisione predefinita. L’utente corrente ne diventa autore,
con il messaggio di registro
Saved with DXPR buildere l’ora della richiesta. - Rimuove il blocco di modifica per quella pagina e revisione, poi salva la pagina.
La richiesta dietro un salvataggio è descritta in Endpoint API.
Quindi ogni salvataggio su un nodo o un Drag and Drop Block crea una nuova
revisione, che il tipo di contenuto abbia o no Create new
revision spuntato, e la scheda Revisions elenca ogni salvataggio con
il messaggio di registro del builder. Anche Drush dxb:page:update crea una
revisione, con il messaggio di registro Updated via dxb:page:update Drush command.
Il builder non ha controlli per lo stato di moderazione e non imposta mai
moderation_state. Quando Content Moderation è attivo sul tipo di contenuto,
la nuova revisione mantiene lo stato della revisione caricata dal builder,
e Content Moderation applica le regole di quello stato al salvataggio:
- Una pagina pubblicata resta pubblicata, e la nuova revisione va online subito.
- Una pagina non pubblicata in Draft resta in Draft.
- Una pagina con una revisione predefinita pubblicata e una bozza in sospeso più recente è un problema: il builder carica la revisione pubblicata, non la bozza, quindi un salvataggio crea una nuova revisione pubblicata dal contenuto pubblicato e lascia da parte le modifiche della bozza.
Usa il form di modifica del nodo per cambiare stati. Per un processo di revisione dentro un sito, tieni le pagine non pubblicate (Draft) mentre gli editor ci lavorano nel builder, e pubblica tramite il form a revisione finita.
Flusso con sito di staging
Un sito di staging separato evita i limiti di moderazione sopra e lascia che gli stakeholder revisionino la pagina reale.
- Gli editor costruiscono e modificano pagine sul sito di staging.
- I revisori le approvano lì.
- Sposta i contenuti approvati in produzione con uno dei metodi sotto.
- Controlla la pagina in produzione come visitatore anonimo.
Copia del database
Copia l’intero database da staging a produzione:
drush sql:sync @staging @production
Questo sostituisce tutti i contenuti di produzione, quindi fai prima il backup della produzione e aspettati di perdere le modifiche fatte in produzione dopo la copia. I file non sono inclusi; sincronizzali come descritto sotto.
Esportazione selettiva dei contenuti
Per spostare singole pagine, esporta il nodo con un modulo come Default Content,
inclusi media e file citati dalla pagina, e importalo in produzione. Il builder
memorizza il suo HTML nel campo di testo, quindi il valore del campo viaggia con il nodo.
I percorsi delle immagini nell’HTML puntano in sites/default/files/dxpr_builder_images,
quindi copia anche quei file.
Distribuzione di sola configurazione
Se ciò che hai costruito è un layout riutilizzabile invece di una pagina specifica:
-
Su staging, salva il layout con More > Save as template sulla barra del contenitore. Questo crea un modello utente.
-
Vai in DXPR Studio > DXPR Builder > User Templates e scegli Create page template nelle operazioni di quel modello.
-
Esporta la configurazione:
drush config:export -
Distribuisci il file
dxpr_builder.page_template.*.ymle importalo in produzione:drush config:import -
Gli editor iniziano nuove pagine dal modello in produzione. I modelli di pagina compaiono nei contenitori vuoti.
Sincronizzazione dei file
I caricamenti dal builder vanno in dxpr_builder_images,
dxpr_builder_videos e dxpr_builder_files nella directory dei file
predefinita del sito. Sincronizzali con i contenuti:
rsync -avz staging:/path/to/files/ production:/path/to/files/
Un archivio file condiviso come S3 montato su entrambi gli ambienti elimina questo passaggio.
Revisioni e rollback
Poiché ogni salvataggio è una revisione, il rollback è un’operazione Drupal:
- Apri la scheda Revisions della pagina.
- Trova la revisione precedente al salvataggio indesiderato; ogni salvataggio
del builder mostra
Saved with DXPR builder. - Fai clic su Revert.
Il ripristino crea un’altra revisione, così la cronologia resta intatta.
Blocchi di modifica
Quando un editor fa clic per la prima volta in un contenitore, l’editor invia una
richiesta dxpr_toggle_content_lock a /dxpr_builder/ajax e la
tabella dxpr_lock registra entità, revisione, lingua e utente.
Quando un altro editor apre la pagina, l’editor interroga
dxpr_content_lock_status, nasconde i controlli del contenitore e mostra
un pulsante Locked con il nome del detentore del blocco. Il salvataggio
elimina la riga. Un altro
editor può anche fare clic su Locked e confermare per forzare il blocco;
da quel momento vince l’ultimo salvataggio.
Prossimi passi
- Backup e ripristino prima di eseguire una copia del database.
- Version control per distribuire configurazione come i modelli di pagina.