Sitewide Alert

Proporciona la capacidad de mostrar mensajes de alerta en la parte superior de todas las páginas sin requerir configuración de bloques.

sitewide_alert
5,018 sites
58
drupal.org

Install

Drupal 11, 10 v3.0.1
composer require 'drupal/sitewide_alert:^3.0'
Drupal 9 v2.2.1
composer require 'drupal/sitewide_alert:^2.2'

Overview

Sitewide Alert es un módulo integral que permite a los administradores del sitio mostrar mensajes de alerta prominentes en todas las páginas de un sitio Drupal. A diferencia de las soluciones basadas en bloques, las alertas se renderizan automáticamente en la parte superior de cada página independientemente de la configuración del tema.

El módulo proporciona un tipo de entidad de contenido personalizado con control total de revisiones, soporte de traducción y capacidad de campos. Las alertas pueden programarse para aparecer durante ventanas de tiempo específicas, ser descartadas por los visitantes (con persistencia en localStorage), y filtrarse por patrones de ruta de página. Se pueden mostrar múltiples alertas simultáneamente con ordenamiento configurable.

Para optimización del rendimiento, el módulo ofrece modos de renderizado tanto del lado del cliente (JavaScript AJAX) como del lado del servidor. El enfoque del lado del cliente es amigable con la caché y es el predeterminado, mientras que el renderizado del lado del servidor está disponible cuando no se desea JavaScript. El módulo incluye actualización automática configurable para mostrar nuevas alertas sin recargar la página.

Features

  • Renderizado automático en la parte superior de la página sin requerir configuración de bloques
  • Múltiples alertas simultáneas con orden de visualización ascendente/descendente
  • Estilos visuales configurables (colores/apariencia) mediante ajustes de administración
  • Descarte opcional por visitantes con persistencia en localStorage por navegador
  • Restricciones de visibilidad basadas en ruta con soporte de comodines
  • Alertas programadas con rangos de fecha y hora de inicio y fin
  • Opciones de renderizado del lado del servidor o del lado del cliente (AJAX)
  • Soporte multilingüe completo con capacidades de traducción
  • Control de revisiones para versionado y reversión de contenido
  • Entidad con campos que permite agregar campos personalizados
  • Sondeo de actualización automática para actualizaciones de alertas en tiempo real
  • Comandos Drush para gestión de alertas basada en CLI
  • Integración con módulo Domain mediante submódulo para configuraciones multi-sitio
  • Opción de colocación en bloque mediante submódulo para control del tema

Use Cases

Notificación de mantenimiento planificado

Programe una alerta para que aparezca 24 horas antes del mantenimiento planificado. Establezca la fecha de inicio cuando desee que los visitantes vean el aviso, y la fecha de fin cuando comience el mantenimiento. Use un estilo distintivo como 'warning' para llamar la atención. La alerta aparece y desaparece automáticamente sin intervención manual.

Anuncio de venta flash

Cree una alerta limitada en el tiempo para eventos promocionales. Habilite la programación con horarios precisos de inicio/fin. Hágala descartable para que los visitantes que regresan no sean molestados repetidamente. Use la función de reinicio de descarte si necesita volver a mostrar la alerta después de actualizar el contenido.

Aviso de emergencia del sitio

Cree rápidamente una alerta no programada usando Drush desde la línea de comandos: drush sitewide-alert:create 'Emergency' 'We are experiencing issues. Thank you for patience.' --style=danger. Deshabilite cuando se resuelva con drush sitewide-alert:disable.

Información específica por página

Muestre alertas solo en ciertas páginas usando patrones de ruta. Por ejemplo, muestre avisos de retraso de envío solo en las páginas /cart y /checkout/*, o muestre anuncios específicos de departamento en rutas /department/sales/*.

Anuncios multi-dominio

Con el submódulo domain, cree alertas que solo aparezcan en dominios específicos en una configuración multi-sitio. Útil para ventas específicas por dominio, anuncios regionales o mensajes específicos de marca.

Optimización para sitios de alto tráfico

Para sitios con caché de página agresivo, mantenga server_side_render deshabilitado (por defecto). Las alertas se cargan vía llamada JavaScript AJAX que no interfiere con el caché de página completa. Ajuste cache_max_age según qué tan rápido necesitan propagarse los cambios de alertas.

Tips

  • Use la función de actualización automática para alertas sensibles al tiempo - los visitantes verán actualizaciones sin recargar la página
  • Para alertas programadas, establezca el tiempo de fin ligeramente antes del mantenimiento real para dar tiempo a los visitantes de completar acciones
  • Cree múltiples estilos de alerta (ej., info|Información, warning|Advertencia, danger|Urgente) para distinguir visualmente la severidad de las alertas
  • Al usar el submódulo de bloque, obtiene control total sobre la colocación de alertas mediante el diseño de bloques pero pierde el posicionamiento automático en page_top
  • Para desarrollo/staging, use comandos Drush para crear rápidamente alertas de prueba sin acceder a la UI de administración
  • La función de descarte usa localStorage del navegador - considere esto para cumplimiento de GDPR ya que almacena el UUID de la alerta
  • La visibilidad por ruta soporta comodines (*) pero solo al final de las rutas - /blog/* funciona, */edit no
  • El renderizado del lado del servidor mejora la accesibilidad para usuarios sin JavaScript pero puede reducir la efectividad del caché

Technical Details

Admin Pages 3
Sitewide Alerts /admin/config/sitewide_alerts

Configurar ajustes globales para alertas del sitio incluyendo estilos visuales, orden de visualización, comportamiento de caché y modo de renderizado.

Sitewide Alerts /admin/content/sitewide_alert

Listar, crear, editar y eliminar entidades de alerta del sitio. Muestra una vista general de todas las alertas con su estado, programación y configuraciones de visibilidad.

Editar Sitewide Alert /admin/content/sitewide_alert/{sitewide_alert}

Formulario de edición para crear y modificar contenido de alertas del sitio, programación, visibilidad y opciones de descarte.

Permissions 10
Administrar configuración de Sitewide Alert

Acceso para configurar ajustes globales del módulo incluyendo estilos de alerta, intervalos de actualización y opciones de renderizado. Restringido a administradores de confianza.

Crear nuevas entidades de Sitewide Alert

Permite crear nuevas entidades de alerta.

Administrar entidades de Sitewide Alert

Acceso administrativo completo a todas las entidades de alerta incluyendo omisión de restricciones de acceso.

Eliminar entidades de Sitewide Alert

Permite eliminar entidades de alerta.

Editar entidades de Sitewide Alert

Permite editar entidades de alerta existentes.

Ver entidades de Sitewide Alert publicadas (activas)

Requerido para ver alertas activas. Otorgado a usuarios anónimos y autenticados por defecto al instalar.

Ver entidades de Sitewide Alert no publicadas

Permite ver alertas que aún no están publicadas (inactivas).

Ver todas las revisiones de Sitewide Alert

Acceso al historial de revisiones de entidades de alerta.

Revertir todas las revisiones de Sitewide Alert

Permite revertir alertas a estados de revisión anteriores.

Eliminar todas las revisiones de Sitewide Alert

Permite eliminar entradas del historial de revisiones.

Hooks 4
hook_theme

Define el hook de tema sitewide_alert para renderizar entidades de alerta.

template_preprocess_sitewide_alert

Prepara variables para la plantilla sitewide-alert.html.twig incluyendo datos de entidad, estilo y descartabilidad.

hook_theme_suggestions_sitewide_alert

Proporciona sugerencias de tema para plantillas de alerta del sitio basadas en estilo y descartabilidad.

hook_page_top

Inyecta render array de alerta del sitio en la región page_top. Se omite si el submódulo sitewide_alert_block está habilitado.

Drush Commands 4
drush sitewide-alert:create

Crear una nueva alerta del sitio desde la línea de comandos.

drush sitewide-alert:delete

Eliminar alertas del sitio que coincidan con una etiqueta.

drush sitewide-alert:disable

Deshabilitar (despublicar) alertas del sitio. Sin argumentos, deshabilita todas las alertas.

drush sitewide-alert:enable

Habilitar (publicar) una alerta del sitio.

Troubleshooting 6
Las alertas no aparecen en el sitio

Verifique que la alerta esté configurada como 'Activa' (publicada). Compruebe si la programación está habilitada y si el tiempo actual está dentro del rango programado. Asegúrese de que los usuarios anónimos tengan el permiso 'view published sitewide alert entities'. Si usa renderizado del lado del servidor, limpie las cachés de Drupal.

Las alertas descartadas siguen reapareciendo

El estado de descarte se almacena en el localStorage del navegador. Si los usuarios limpian los datos del navegador, los descartes se reinician. Para reiniciar intencionalmente los descartes (ej., después de actualizar el contenido de la alerta), edite la alerta y marque 'Ignorar descartes previos' y luego guarde.

Las alertas no se actualizan después de los cambios

Con renderizado del lado del cliente (por defecto), las alertas se actualizan según la configuración refresh_interval (15 segundos por defecto). Para actualizaciones inmediatas, reduzca cache_max_age o haga que los usuarios fuercen la recarga. Con renderizado del lado del servidor, limpie las cachés de Drupal.

Las alertas aparecen inesperadamente en páginas de administración

Por defecto, 'Mostrar en páginas de administración' está deshabilitado. Verifique la configuración en /admin/config/sitewide_alerts si las alertas no deberían aparecer en páginas de administración.

Errores de JavaScript impiden que las alertas se carguen

Asegúrese de que no haya conflictos de JavaScript. El módulo requiere las librerías core/once, core/drupal y core/drupalSettings. Revise la consola del navegador para errores específicos. Verifique que el endpoint /sitewide_alert/load devuelva JSON válido.

Las alertas no se filtran correctamente por ruta

Los patrones de ruta deben comenzar con /. Use * como comodín solo al final (ej., /products/*). Para rutas con prefijo de idioma, incluya el prefijo o use comodines. La opción 'Negar' invierte la lógica (mostrar en todas partes excepto las páginas listadas).

Security Notes 4
  • Los permisos 'administer sitewide alert' y 'administer sitewide alert entities' solo deben otorgarse a administradores de confianza ya que proporcionan control total sobre los mensajes a nivel de sitio
  • El contenido del mensaje de alerta soporta HTML - asegúrese de que solo usuarios de confianza puedan crear/editar alertas para prevenir XSS
  • El endpoint AJAX /sitewide_alert/load respeta el permiso 'view published sitewide alert entities'
  • Los datos de descarte almacenados en localStorage contienen solo UUIDs de alertas y marcas de tiempo, sin información sensible