Contentstaging.

Learn DXPR BuilderManage the siteNaar productie

Contentstaging is builderpagina's bouwen en reviewen voordat bezoekers ze zien. Er zijn twee manieren: een aparte stagingsite waarvan je inhoud naar productie verplaatst, of Drupal-revisies en Content Moderation op één site. Deze pagina behandelt beide en vermeldt precies wat een builderopslagactie met revisies en moderatiestatussen doet, omdat dat bepaalt welke aanpak voor jou werkt.

Wat een builderopslagactie doet

Elke opslagactie vanuit de editor doorloopt deze stappen:

  1. Hij laadt de default revision van de pagina, in de taal die wordt bewerkt.
  2. Hij controleert of de huidige gebruiker de pagina mag bijwerken.
  3. Hij schrijft de nieuwe HTML in het veld.
  4. Als het entiteitstype revisies heeft, maakt hij een nieuwe revisie aan en maakt die de default revision. De huidige gebruiker wordt de auteur, met het logbericht Saved with DXPR builder en de aanvraagtijd.
  5. Hij verwijdert de bewerkingsvergrendeling voor die pagina en revisie en slaat daarna de pagina op.

Het verzoek achter een opslagactie staat beschreven onder API-endpoints.

Elke opslagactie op een node of een Drag and Drop Block maakt dus een nieuwe revisie aan, of het inhoudstype Create new revision heeft aangevinkt of niet, en het tabblad Revisions toont elke opslagactie met het logbericht van de builder. Drush dxb:page:update maakt ook een revisie aan, met het logbericht Updated via dxb:page:update Drush command.

De builder heeft geen bediening voor een moderatiestatus en zet nooit moderation_state. Wanneer Content Moderation op het inhoudstype is ingeschakeld, behoudt de nieuwe revisie de status van de revisie die de builder laadde en past Content Moderation de regels van die status toe bij het opslaan:

  • Een gepubliceerde pagina blijft gepubliceerd en de nieuwe revisie gaat meteen live.
  • Een ongepubliceerde pagina in Draft blijft in Draft.
  • Een pagina met een gepubliceerde default revision en een nieuwere openstaande draft is een probleem: de builder laadt de gepubliceerde revisie, niet de draft, dus een opslagactie maakt een nieuwe gepubliceerde revisie van de gepubliceerde inhoud en laat de wijzigingen van de draft buiten beschouwing.

Gebruik het nodebewerkformulier om statussen te wijzigen. Houd voor een reviewproces binnen één site pagina's ongepubliceerd (Draft) terwijl redacteurs er in de builder aan werken, en publiceer via het formulier wanneer de review klaar is.

Stagingsiteworkflow

Een aparte stagingsite omzeilt de moderatiebeperkingen hierboven en laat stakeholders de echte pagina reviewen.

  1. Redacteurs bouwen en wijzigen pagina's op de stagingsite.
  2. Reviewers keuren ze daar goed.
  3. Verplaats de goedgekeurde inhoud naar productie met een van de methoden hieronder.
  4. Controleer de pagina op productie als anonieme bezoeker.

Databasekopie

Kopieer de hele database van staging naar productie:

drush sql:sync @staging @production

Dit vervangt alle productie-inhoud, dus maak eerst een back-up van productie en reken erop wijzigingen kwijt te raken die na de kopie op productie zijn gemaakt. Bestanden zitten er niet bij; synchroniseer die zoals hieronder beschreven.

Selectieve inhoudsexport

Om losse pagina's te verplaatsen, exporteer je de node met een module zoals Default Content, inclusief de media en bestanden waarnaar de pagina verwijst, en importeer je die op productie. De builder bewaart zijn HTML in het tekstveld, dus de veldwaarde reist met de node mee. Afbeeldingspaden in de HTML wijzen naar sites/default/files/dxpr_builder_images, dus kopieer die bestanden ook.

Deployment van alleen configuratie

Als wat je bouwde een herbruikbare lay-out is in plaats van een specifieke pagina:

  1. Sla op staging de lay-out op met More > Save as template op de containerbalk. Dit maakt een gebruikerssjabloon.

  2. Ga naar DXPR Studio > DXPR Builder > User Templates en kies Create page template bij de bewerkingen van dat sjabloon.

  3. Exporteer de configuratie:

    drush config:export
    
  4. Deploy het bestand dxpr_builder.page_template.*.yml en importeer het op productie:

    drush config:import
    
  5. Redacteurs beginnen nieuwe pagina's op productie vanuit het sjabloon. Paginasjablonen verschijnen in lege containers.

Bestandssynchronisatie

Uploads van de builder gaan naar dxpr_builder_images, dxpr_builder_videos en dxpr_builder_files in de standaard files-map van de site. Synchroniseer ze met de inhoud:

rsync -avz staging:/path/to/files/ production:/path/to/files/

Een gedeelde bestandsopslag zoals S3, gemount op beide omgevingen, maakt deze stap overbodig.

Revisies en terugdraaien

Omdat elke opslagactie een revisie is, is terugdraaien een Drupal-bewerking:

  1. Open het tabblad Revisions van de pagina.
  2. Zoek de revisie van vóór de ongewenste opslagactie; elke builderopslagactie toont Saved with DXPR builder.
  3. Klik op Revert.

Terugdraaien maakt weer een revisie aan, dus de geschiedenis blijft intact.

Bewerkingsvergrendelingen

Wanneer een redacteur voor het eerst in een container klikt, stuurt de editor een dxpr_toggle_content_lock-verzoek naar /dxpr_builder/ajax en legt de tabel dxpr_lock de entiteit, revisie, taal en gebruiker vast. Wanneer een andere redacteur de pagina opent, vraagt de editor dxpr_content_lock_status op, verbergt de containerbediening en toont een Locked-knop met de naam van de vergrendelaar. De opslagactie verwijdert de rij. Een andere redacteur kan ook op Locked klikken en bevestigen om de vergrendeling te overrulen; vanaf dan wint de laatste opslagactie.

Wat nu?