Content-Staging.
Content-Staging heißt, DXPR Builder-Seiten zu bauen und zu prüfen, bevor Besucher sie sehen. Es gibt zwei Wege: eine separate Staging-Website, deren Inhalte Sie nach Produktion bewegen, oder Drupals Revisionen und Content Moderation auf einer Website. Diese Seite behandelt beides und hält genau fest, was ein Builder-Speichern mit Revisionen und Moderationsstatus macht, weil das entscheidet, welcher Weg für Sie funktioniert.
Was ein Builder-Speichern tut
Jedes Speichern aus dem Editor läuft in diesen Schritten:
- Es lädt die Standardrevision der Seite, in der gerade bearbeiteten Sprache.
- Es prüft, ob die aktuelle Person die Seite aktualisieren darf.
- Es schreibt das neue HTML in das Feld.
- Wenn der Entitätstyp Revisionen hat, erzeugt es eine neue Revision und
macht sie zur Standardrevision. Die aktuelle Person wird deren
Autor, mit der Logmeldung
Saved with DXPR builderund der Anfragezeit. - Es entfernt die Bearbeitungssperre für diese Seite und Revision und speichert dann die Seite.
Die Anfrage hinter einem Speichern ist unter API-Endpunkte beschrieben.
So erzeugt jedes Speichern auf einem Node oder einem Drag-and-Drop-Block eine neue
Revision, ob der Inhaltstyp Create new
revision angewählt hat oder nicht, und der Tab Revisions listet jedes Speichern mit
der Logmeldung des Builders. Drush dxb:page:update erzeugt ebenfalls eine
Revision, mit der Logmeldung Updated via dxb:page:update Drush command.
Der Builder hat keine Steuerung für einen Moderationsstatus und setzt nie
moderation_state. Wenn Content Moderation auf dem
Inhaltstyp aktiviert ist, behält die neue Revision den Status der Revision, die der
Builder geladen hat, und Content Moderation wendet die Regeln dieses Status
beim Speichern an:
- Eine veröffentlichte Seite bleibt veröffentlicht, und die neue Revision geht sofort live.
- Eine unveröffentlichte Seite in Draft bleibt in Draft.
- Eine Seite mit einer veröffentlichten Standardrevision und einem neueren offenen Draft ist ein Problem: Der Builder lädt die veröffentlichte Revision, nicht den Draft, sodass ein Speichern eine neue veröffentlichte Revision aus dem veröffentlichten Inhalt erzeugt und die Änderungen des Drafts beiseitelässt.
Nutzen Sie das Node-Bearbeitungsformular, um Status zu wechseln. Für einen Reviewprozess in einer Website halten Sie Seiten unveröffentlicht (Draft), während die Redaktion sie im Builder bearbeitet, und veröffentlichen Sie über das Formular, wenn der Review fertig ist.
Staging-Website-Workflow
Eine separate Staging-Website umgeht die Moderationsgrenzen oben und lässt Stakeholder die echte Seite prüfen.
- Die Redaktion baut und ändert Seiten auf der Staging-Website.
- Prüfende nehmen sie dort ab.
- Bewegen Sie die freigegebenen Inhalte mit einer der Methoden unten nach Produktion.
- Prüfen Sie die Seite auf Produktion als anonymer Besucher.
Datenbankkopie
Kopieren Sie die ganze Datenbank von Staging nach Produktion:
drush sql:sync @staging @production
Das ersetzt alle Produktionsinhalte, also sichern Sie Produktion zuerst und rechnen Sie damit, Änderungen zu verlieren, die nach der Kopie auf Produktion gemacht wurden. Dateien sind nicht enthalten; syncen Sie sie wie unten beschrieben.
Selektiver Inhaltsexport
Um einzelne Seiten zu bewegen, exportieren Sie den Node mit einem Modul wie
Default Content, einschließlich der Medien und Dateien, die die Seite referenziert,
und importieren Sie ihn auf Produktion. Der Builder speichert sein HTML im
Textfeld, sodass der Feldwert mit dem Node wandert. Bildpfade
im HTML zeigen in sites/default/files/dxpr_builder_images,
also kopieren Sie diese Dateien ebenfalls.
Rein konfigurationsbasiertes Deployment
Wenn das Gebaute ein wiederverwendbares Layout ist statt einer bestimmten Seite:
-
Speichern Sie auf Staging das Layout mit More > Save as template auf der Containerleiste. Das erzeugt eine Benutzervorlage.
-
Gehen Sie zu DXPR Studio > DXPR Builder > User Templates und wählen Sie Create page template in den Aktionen dieser Vorlage.
-
Konfiguration exportieren:
drush config:export -
Deployen Sie die Datei
dxpr_builder.page_template.*.ymlund importieren Sie sie auf Produktion:drush config:import -
Die Redaktion startet neue Seiten auf Produktion aus der Vorlage. Seiten- vorlagen erscheinen in leeren Containern.
Dateisynchronisierung
Uploads aus dem Builder landen in dxpr_builder_images,
dxpr_builder_videos und dxpr_builder_files im Standard-
Dateiverzeichnis der Website. Syncen Sie sie mit den Inhalten:
rsync -avz staging:/path/to/files/ production:/path/to/files/
Ein geteilter Dateispeicher wie S3, auf beiden Umgebungen gemountet, erübrigt diesen Schritt.
Revisionen und Rollback
Weil jedes Speichern eine Revision ist, ist Zurückrollen ein Drupal- Vorgang:
- Öffnen Sie den Tab Revisions der Seite.
- Finden Sie die Revision vor dem unerwünschten Speichern; jedes Builder-Speichern
zeigt
Saved with DXPR builder. - Klicken Sie auf Revert.
Zurückrollen erzeugt eine weitere Revision, sodass die Historie intakt bleibt.
Bearbeitungssperren
Wenn Bearbeitende zuerst in einen Container klicken, sendet der Editor eine
dxpr_toggle_content_lock-Anfrage an /dxpr_builder/ajax und die
Tabelle dxpr_lock erfasst Entität, Revision, Sprache und Person.
Wenn andere Bearbeitende die Seite öffnen, fragt der Editor
dxpr_content_lock_status ab, verbirgt die Containersteuerung und zeigt
einen Button Locked mit dem Namen der sperrenden Person. Das Speichern
löscht die Zeile. Andere
Bearbeitende können auch auf Locked klicken und per Bestätigung die Sperre übernehmen;
von da an gewinnt das letzte Speichern.
Wie geht es weiter?
- Backup und Wiederherstellung vor einer Datenbankkopie.
- Versionskontrolle zum Deployen von Konfiguration wie Seitenvorlagen.