Content-Staging.

Learn DXPR BuilderBuild pagesVolg een tutorial

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:

  1. Es lädt die Standardrevision der Seite, in der gerade bearbeiteten Sprache.
  2. Es prüft, ob die aktuelle Person die Seite aktualisieren darf.
  3. Es schreibt das neue HTML in das Feld.
  4. 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 builder und der Anfragezeit.
  5. 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.

  1. Die Redaktion baut und ändert Seiten auf der Staging-Website.
  2. Prüfende nehmen sie dort ab.
  3. Bewegen Sie die freigegebenen Inhalte mit einer der Methoden unten nach Produktion.
  4. 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:

  1. Speichern Sie auf Staging das Layout mit More > Save as template auf der Containerleiste. Das erzeugt eine Benutzervorlage.

  2. Gehen Sie zu DXPR Studio > DXPR Builder > User Templates und wählen Sie Create page template in den Aktionen dieser Vorlage.

  3. Konfiguration exportieren:

    drush config:export
    
  4. Deployen Sie die Datei dxpr_builder.page_template.*.yml und importieren Sie sie auf Produktion:

    drush config:import
    
  5. 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:

  1. Öffnen Sie den Tab Revisions der Seite.
  2. Finden Sie die Revision vor dem unerwünschten Speichern; jedes Builder-Speichern zeigt Saved with DXPR builder.
  3. 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?