Staging de contenidos.

Aprende DXPR BuilderGestionar el sitioPuesta en producción

El staging de contenidos es crear y revisar páginas de DXPR Builder antes de que las vean las visitas. Hay dos formas de hacerlo: un sitio de staging separado cuyo contenido mueves a producción, o las revisiones de Drupal y Content Moderation en un solo sitio. Esta página cubre ambas e indica con exactitud lo que un guardado del constructor hace con las revisiones y los estados de moderación, porque eso decide qué enfoque te sirve.

Lo que hace un guardado del constructor

Cada guardado desde el editor ejecuta estos pasos:

  1. Carga la revisión predeterminada de la página, en el idioma que se edita.
  2. Comprueba que la persona usuaria actual puede actualizar la página.
  3. Escribe el nuevo HTML en el campo.
  4. Si el tipo de entidad tiene revisiones, crea una nueva revisión y la convierte en la revisión predeterminada. La persona usuaria actual pasa a ser su autora, con el mensaje de registro Saved with DXPR builder y la hora de la petición.
  5. Quita el bloqueo de edición de esa página y revisión, y luego guarda la página.

La petición detrás de un guardado se describe en API endpoints.

Así que cada guardado en un nodo o un Drag and Drop Block crea una nueva revisión, tenga o no el tipo de contenido marcado Create new revision, y la pestaña Revisions enumera cada guardado con el mensaje de registro del constructor. Drush dxb:page:update también crea una revisión, con el mensaje de registro Updated via dxb:page:update Drush command.

El constructor no tiene ningún control de estado de moderación y nunca fija moderation_state. Cuando Content Moderation está habilitado en el tipo de contenido, la nueva revisión conserva el estado de la revisión que cargó el constructor, y Content Moderation aplica las reglas de ese estado al guardar:

  • Una página publicada sigue publicada, y la nueva revisión se publica al momento.
  • Una página sin publicar en Draft sigue en Draft.
  • Una página con una revisión predeterminada publicada y un borrador pendiente más reciente es un problema: el constructor carga la revisión publicada, no el borrador, así que un guardado crea una nueva revisión publicada desde el contenido publicado y deja de lado los cambios del borrador.

Usa el formulario de edición del nodo para cambiar estados. Para un proceso de revisión dentro de un sitio, mantén las páginas sin publicar (Draft) mientras las personas que editan trabajan en ellas en el constructor, y publica desde el formulario cuando la revisión termina.

Flujo con sitio de staging

Un sitio de staging separado evita los límites de moderación de arriba y deja que las partes interesadas revisen la página real.

  1. Las personas que editan crean y cambian páginas en el sitio de staging.
  2. Quienes revisan las aprueban allí.
  3. Mueve el contenido aprobado a producción con uno de los métodos siguientes.
  4. Comprueba la página en producción como visita anónima.

Copia de base de datos

Copia toda la base de datos de staging a producción:

drush sql:sync @staging @production

Esto reemplaza todo el contenido de producción, así que haz antes una copia de producción y cuenta con perder los cambios hechos en producción tras la copia. Los archivos no están incluidos; sincronízalos como se describe abajo.

Exportación selectiva de contenido

Para mover páginas sueltas, exporta el nodo con un módulo como Default Content, incluidos los medios y archivos que la página referencia, e impórtalo en producción. El constructor guarda su HTML en el campo de texto, así que el valor del campo viaja con el nodo. Las rutas de imagen en el HTML apuntan a sites/default/files/dxpr_builder_images, así que copia también esos archivos.

Despliegue solo de configuración

Si lo que creaste es un diseño reutilizable en lugar de una página concreta:

  1. En staging, guarda el diseño con More > Save as template en la barra del contenedor. Esto crea una plantilla de usuario.

  2. Ve a DXPR Studio > DXPR Builder > User Templates y elige Create page template en las operaciones de esa plantilla.

  3. Exporta la configuración:

    drush config:export
    
  4. Despliega el archivo dxpr_builder.page_template.*.yml e impórtalo en producción:

    drush config:import
    
  5. Las personas que editan empiezan páginas nuevas desde la plantilla en producción. Las plantillas de página aparecen en contenedores vacíos.

Sincronización de archivos

Las subidas del constructor van a dxpr_builder_images, dxpr_builder_videos y dxpr_builder_files en el directorio de archivos predeterminado del sitio. Sincronízalos con el contenido:

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

Un almacén de archivos compartido como S3 montado en ambos entornos elimina este paso.

Revisiones y reversión

Como cada guardado es una revisión, revertir es una operación de Drupal:

  1. Abre la pestaña Revisions de la página.
  2. Busca la revisión anterior al guardado no deseado; cada guardado del constructor muestra Saved with DXPR builder.
  3. Haz clic en Revert.

Revertir crea otra revisión, así que el historial queda intacto.

Bloqueos de edición

Cuando una persona que edita hace clic por primera vez en un contenedor, el editor envía una petición dxpr_toggle_content_lock a /dxpr_builder/ajax y la tabla dxpr_lock registra la entidad, la revisión, el idioma y la persona usuaria. Cuando otra persona abre la página, el editor consulta dxpr_content_lock_status, oculta los controles del contenedor y muestra un botón Locked con el nombre de quien tiene el bloqueo. El guardado elimina la fila. Otra persona también puede hacer clic en Locked y confirmar para anular el bloqueo; desde entonces, gana el último guardado.

¿Qué sigue?