Views Block Exposed Filter Blocks
Permite que los filtros expuestos en las visualizaciones de bloques de Views se coloquen como bloques separados e independientes.
views_block_filter_block
Install
composer require 'drupal/views_block_filter_block:^2.1'
Overview
Views Block Exposed Filter Blocks es un módulo de utilidad que extiende la funcionalidad de Views de Drupal permitiendo que los filtros expuestos en las vistas de tipo bloque se rendericen y coloquen como bloques estándar. Por defecto en Drupal core, esta funcionalidad de "Formulario expuesto en bloque" solo está disponible para vistas de tipo página, no para vistas de tipo bloque.
Una vez instalado, este módulo no requiere configuración adicional. Automáticamente añade una opción "Exposed form in block" bajo el panel "Advanced" en la interfaz de Views para todas las vistas de tipo bloque. Cuando se habilita para un bloque de vista específico, un nuevo bloque está disponible en el sistema de diseño de bloques que contiene solo los filtros expuestos para esa vista, permitiendo a los constructores de sitios colocar el formulario de filtros en cualquier lugar de la página, separado de los resultados de la vista.
El módulo funciona extendiendo el plugin de visualización Block de ctools_views y sobrescribiendo métodos clave para habilitar el renderizado de formularios expuestos en bloques. También modifica la visibilidad del botón de reinicio en formularios expuestos para mostrarlo solo cuando hay elementos de filtro visibles.
Features
- Habilita la opción 'Exposed form in block' para visualizaciones de bloque de Views, que normalmente solo está disponible para visualizaciones de página
- Crea un bloque separado y posicionable que contiene solo los filtros expuestos para una visualización de bloque de vista
- Muestra/oculta automáticamente el botón de reinicio según si hay elementos de filtro visibles
- No requiere configuración - funciona inmediatamente después de la instalación
- Se integra perfectamente con la interfaz de Views bajo la sección Advanced
Use Cases
Colocar filtros expuestos en una barra lateral
Cuando tienes un bloque de Views mostrando contenido en el área de contenido principal, puede que quieras que los filtros expuestos (como desplegables de categoría o búsqueda por palabras clave) aparezcan en una barra lateral. Este módulo te permite colocar el formulario de filtros expuestos como un bloque separado en cualquier región mientras los resultados de la vista permanecen en el área de contenido principal.
Crear una página de búsqueda con bloques de vista habilitados para AJAX
Para una página de comercio electrónico o listado de productos usando bloques de Views, puedes colocar el formulario de filtros/facetas en una ubicación prominente (como encima de los productos o en un panel colapsable) mientras la cuadrícula de productos se actualiza via AJAX cuando se aplican los filtros.
Páginas de destino con múltiples filtros
Crea una página de destino donde múltiples bloques de Views comparten un bloque de filtros común. El formulario de filtros expuestos puede colocarse una vez en la parte superior de la página, y filtrará el bloque de vista asociado dondequiera que se muestre en la página.
Colocación de filtros optimizada para móviles
Coloca el bloque de filtros expuestos en una ubicación que funcione mejor para diseños móviles, como en un menú deslizable o sección colapsable, mientras mantienes los resultados de la vista en el flujo de contenido principal.
Tips
- El bloque de filtros expuestos se llamará 'Exposed form: [view_machine_name]-[display_id]' en la biblioteca de bloques
- Puedes usar CSS para estilizar el bloque de filtros expuestos independientemente de los resultados de la vista
- Considera usar AJAX en tu bloque de Views para una experiencia de usuario más fluida cuando se aplican filtros
- El módulo funciona con filtros contextuales y filtros expuestos regulares
Technical Details
Hooks 3
hook_views_plugins_display_alter
Altera los plugins de visualización de Views para reemplazar la clase de visualización de bloque predeterminada con la clase personalizada ViewsBlockFilterBlockPluginDisplayBlock del módulo, que habilita el renderizado de formularios expuestos en bloques.
hook_form_views_exposed_form_alter
Altera el formulario expuesto de Views para controlar la visibilidad del botón de reinicio. El botón de reinicio solo se muestra cuando hay elementos de filtro visibles en el formulario.
hook_help
Proporciona texto de ayuda para el módulo en la página admin/help, explicando el propósito y funcionalidad del módulo.
Troubleshooting 4
Asegúrate de que el módulo esté correctamente habilitado. Verifica que estés editando una visualización de tipo Block (no una visualización de tipo Page). La opción aparece bajo Advanced > Other en la interfaz de Views.
Después de habilitar 'Exposed form in block' para una vista, debes guardar la vista. Luego navega a Structure > Block layout y busca un bloque llamado 'Exposed form: [view_name]-[display_id]'.
Si estás actualizando desde una versión anterior, ejecuta las actualizaciones de base de datos (drush updb) para activar el hook de actualización que instala ctools_views. Alternativamente, habilita manualmente ctools_views antes de habilitar este módulo.
El botón de reinicio solo aparece cuando hay elementos de filtro visibles. Si todos tus filtros están ocultos o no tienen opciones, el botón de reinicio estará oculto. Este es un comportamiento intencional para evitar mostrar un botón de reinicio sin nada que reiniciar.