Block Exclude Pages

Añade funcionalidad de filtro de exclusión de páginas a la configuración de visibilidad de bloques usando la notación de prefijo '!'.

block_exclude_pages
7,708 sites
51
drupal.org

Install

Drupal 11, 10 v2.2.0
composer require 'drupal/block_exclude_pages:^2.2'

Overview

Block Exclude Pages mejora el sistema nativo de visibilidad de bloques de Drupal permitiendo a los administradores del sitio excluir páginas específicas de los patrones con comodines. Esto resuelve un problema común donde se desea mostrar un bloque en la mayoría de las páginas que coinciden con un patrón, pero se necesita ocultarlo en páginas específicas dentro de ese patrón.

El módulo funciona interceptando el proceso de evaluación de visibilidad de bloques y procesando las rutas con prefijo '!' como exclusiones. Cuando la visibilidad está configurada como 'mostrar para las páginas listadas', las rutas excluidas ocultarán el bloque a pesar de coincidir con los comodines. Por el contrario, cuando está configurada como 'ocultar para las páginas listadas', las rutas excluidas mostrarán el bloque a pesar de coincidir con el patrón de ocultación.

Este módulo ligero no requiere páginas de configuración y se integra perfectamente con la interfaz de configuración de bloques existente de Drupal añadiendo texto de ayuda y modificando el comportamiento de la condición de visibilidad.

Features

  • Excluir páginas específicas de los comodines de visibilidad de bloques usando la notación de prefijo '!'
  • Funciona tanto con el modo de visibilidad 'mostrar para las páginas listadas' como con 'ocultar para las páginas listadas'
  • Soporta alias de ruta - coincide tanto con rutas internas como con alias de URL
  • Manejo de rutas consciente del idioma - gestiona automáticamente los prefijos de idioma en las URLs
  • Extiende el plugin de condición RequestPath del núcleo de Drupal con validación mejorada
  • Se integra perfectamente con la interfaz de configuración de bloques existente sin páginas de administración adicionales
  • Soporta patrones de exclusión complejos incluyendo comodines anidados (ej., !/user/jc/*)

Use Cases

Mostrar bloque de barra lateral en todas las páginas de usuario excepto perfiles específicos

Desea mostrar un bloque promocional en la barra lateral en todas las páginas relacionadas con usuarios (/user/*) pero ocultarlo en los perfiles de administradores. Configure la visibilidad del bloque con: /user/* para mostrar en todas las páginas de usuario, luego añada !/user/1 y !/user/admin para excluir las páginas de usuario administrador.

Mostrar bloque de contenido en páginas de sección con excepciones

Un sitio corporativo tiene una sección de RRHH en /offices/human-resources/* pero necesita ocultar ciertos bloques en páginas solo para gerentes. Configure la visibilidad a /offices/human-resources/current-employees/* y luego excluya con !/offices/human-resources/current-employees/manager-documents y !/offices/human-resources/current-employees/manager-resources.

Ocultar bloque de publicidad en todas partes excepto en páginas promocionales específicas

Al usar el modo 'ocultar para las páginas listadas' con /* para ocultar un bloque en todas partes, puede usar patrones con prefijo '!' para crear excepciones donde el bloque debe aparecer. Por ejemplo, ocultar en /* pero mostrar en !/promotions y !/special-offers.

Visibilidad de bloque neutral al idioma con exclusiones

En sitios multilingües, el módulo elimina automáticamente los prefijos de idioma de las rutas antes de la coincidencia. Configure /products/* con !/products/discontinued y funcionará correctamente tanto para /en/products/discontinued como para /es/products/discontinued.

Tips

  • Siempre use una barra diagonal inicial para las rutas (ej., /user/profile, no user/profile)
  • Los patrones de exclusión deben comenzar con '!' seguido de la ruta (ej., !/user/jc)
  • Los comodines también funcionan en patrones de exclusión - use !/user/jc/* para excluir todas las páginas bajo una ruta
  • El token <front> también puede ser excluido usando !<front>
  • Coloque los patrones de exclusión más específicos después de los patrones con comodín en su configuración para mayor claridad
  • Pruebe sus reglas de visibilidad visualizando el bloque en diferentes páginas después de la configuración

Technical Details

Hooks 4
hook_help

Proporciona contenido de página de ayuda describiendo cómo usar la funcionalidad de exclusión de rutas

hook_form_block_form_alter

Modifica el formulario de configuración del bloque para añadir texto de ayuda sobre la sintaxis de exclusión de rutas al campo de visibilidad de páginas

hook_block_access

Hook del núcleo que evalúa la visibilidad del bloque y procesa los patrones de exclusión. Verifica si la ruta actual coincide con algún patrón de exclusión e invierte la condición de visibilidad en consecuencia

hook_condition_info_alter

Reemplaza la clase del plugin de condición RequestPath del núcleo con la versión extendida del módulo que soporta validación con prefijo '!'