Module Filter
Proporciona mecanismos de filtrado para las páginas de administración de Drupal, incluyendo la página Extend, la página de Desinstalación, el informe de estado de Actualizaciones y la página de Permisos.
module_filter
Install
composer require 'drupal/module_filter:^5.0'
Overview
Module Filter es un módulo de mejora de la administración de Drupal que proporciona potentes capacidades de filtrado para las páginas de gestión de módulos. El módulo aborda un desafío común que enfrentan los administradores de sitios: encontrar módulos específicos en sitios con muchos módulos instalados.
El módulo ofrece filtrado basado en texto que es significativamente más efectivo que las funciones de búsqueda del navegador, ya que filtra elementos en lugar de resaltar coincidencias en toda la página. Junto con el campo de texto del filtro, las casillas de verificación de estado (Habilitado, Deshabilitado, No disponible) ayudan a reducir aún más las búsquedas.
Una de las características destacadas es la interfaz opcional con pestañas para la página Extend. En lugar de mostrar los módulos como fieldsets colapsables por paquete, la vista de pestañas convierte cada paquete en una pestaña vertical, mejorando enormemente la navegación. Pestañas especiales como 'Todos', 'Recientemente habilitados' y 'Recién disponibles' proporcionan vistas organizativas adicionales.
El módulo también admite operadores de filtro avanzados que permiten buscar por descripción del módulo, dependencias y más. Se pueden combinar múltiples filtros, y el estado del filtro persiste entre cargas de página usando localStorage.
Features
- Filtrado basado en texto para páginas de módulos, desinstalación, estado de actualizaciones y permisos
- Interfaz opcional con pestañas para la página Extend que organiza los módulos por paquete
- Casillas de verificación de estado para filtrar por módulos Habilitados, Deshabilitados o No disponibles
- Operadores de filtro: description: (filtrar por descripción), requires: (filtrar por dependencias), requiredBy: (filtrar por dependientes), perm: (filtrar por texto de permiso)
- Seguimiento de módulos recientemente habilitados con resaltado visual
- Detección de módulos recién disponibles (módulos añadidos en la última semana)
- Persistencia en localStorage para estados de filtro y preferencias
- Integración con jQuery UI Autocomplete para sugerencias de filtro
- Detección de módulos faltantes con enlaces a páginas de proyectos en drupal.org
- Navegación por pestañas con soporte para historial del navegador (URLs basadas en hash)
- Visualización del recuento de módulos por pestaña mostrando módulos habilitados/coincidentes
- Ayudas visuales que muestran los módulos a habilitar/deshabilitar durante el filtrado
Use Cases
Encontrar un módulo específico en sitios grandes
En sitios con más de 100 módulos, encontrar un módulo específico puede ser tedioso. Escribe el nombre del módulo en el campo de filtro para reducir instantáneamente la lista. Usa las casillas de verificación de estado para filtrar por estado habilitado/deshabilitado. La interfaz de pestañas agrupa los módulos por paquete para organización adicional.
Identificar dependencias de módulos
Usa el operador de filtro 'requires:' para encontrar todos los módulos que dependen de un módulo específico. Por ejemplo, escribir 'requires:views' muestra todos los módulos que requieren el módulo Views. De manera similar, 'requiredBy:' muestra los módulos que son requeridos por otros.
Revisar módulos recientemente modificados
Después de habilitar o deshabilitar módulos, aparecen en la pestaña 'Recientemente habilitados' durante una semana. Esto ayuda a rastrear cambios recientes durante el desarrollo o la resolución de problemas. Los nuevos módulos (añadidos al sistema de archivos en la última semana) aparecen en la pestaña 'Recién disponibles'.
Filtrar permisos por módulo
En sitios con muchos módulos, la página de permisos se vuelve muy larga. Con el filtro de permisos habilitado, los administradores pueden encontrar rápidamente permisos escribiendo nombres de módulos o texto de permisos. Usa el operador 'perm:' para búsquedas específicas de permisos.
Verificar actualizaciones de seguridad
En la página del informe de estado de Actualizaciones, usa los filtros de radio para mostrar rápidamente solo los módulos con actualizaciones de seguridad disponibles o módulos no soportados que necesitan atención, haciendo las auditorías de seguridad más eficientes.
Localizar archivos de módulos
Habilita 'Mostrar ruta del módulo' en la configuración para mostrar la ruta del sistema de archivos de cada módulo. Esto ayuda a los desarrolladores a identificar rápidamente si los módulos están en directorios core, contrib o custom.
Tips
- Usa comillas dobles para buscar frases con espacios: 'requires:"chaos tools"'
- Combina múltiples filtros con espacios: 'description:ctools views' encuentra módulos con 'ctools' en la descripción Y 'views' en el nombre
- Haz clic en una pestaña activa para deseleccionarla y volver a la vista 'Todos los módulos'
- Al filtrar con pestañas, las pestañas sin coincidencias muestran el recuento de módulos coincidentes, ayudando a localizar dónde están las coincidencias
- Pasa el cursor sobre los módulos en la vista 'Todos' para ver a qué pestaña de paquete pertenecen (la pestaña se resalta)
- El valor del filtro se preserva en la cadena de consulta de la URL, permitiéndote guardar vistas filtradas como marcadores o compartir enlaces
Technical Details
Admin Pages 1
/admin/config/user-interface/module-filter
Página de configuración para los ajustes de Module Filter. Permite a los administradores personalizar cómo el módulo mejora varias páginas de administración.
Permissions 1
Hooks 7
hook_form_system_modules_alter
Altera el formulario de Extend (system modules) para añadir capacidades de filtrado incluyendo filtro de texto, casillas de verificación de estado e interfaz con/sin pestañas.
hook_form_system_modules_confirm_form_alter
Preserva el valor del filtro cuando se muestra el formulario de confirmación de habilitar/deshabilitar módulo.
hook_form_system_modules_uninstall_alter
Añade filtrado a la página de desinstalación de módulos con filtro de texto por nombre de módulo, descripción o machine name.
hook_form_user_admin_permissions_alter
Añade capacidades de filtrado a la página de administración de permisos de usuario si está habilitado en la configuración.
hook_theme_registry_alter
Sobrescribe la plantilla system-modules-details para añadir personalizaciones de Module Filter incluyendo clases requires/required-by y visualización de ruta del módulo.
hook_preprocess_system_modules_details
Preprocesa los detalles del módulo para añadir la variable de ruta del módulo cuando la configuración 'Mostrar ruta del módulo' está habilitada.
hook_help
Proporciona texto de ayuda para la página de ayuda de Module Filter explicando el propósito del módulo y enlazando a la página del proyecto en drupal.org.
Troubleshooting 5
Asegúrate de que el módulo jQuery UI Autocomplete esté instalado y habilitado. Ejecuta update.php para ejecutar la actualización 9403 que instala esta dependencia automáticamente.
Verifica la configuración de Module Filter en /admin/config/user-interface/module-filter y asegúrate de que 'Mejorar la página Extend con pestañas' esté marcado.
Verifica que 'Permisos' esté habilitado en la sección Filtros de la configuración de Module Filter. Limpia la caché de Drupal después de cambiar esta configuración.
Module Filter usa localStorage para persistir los estados del filtro. Asegúrate de que localStorage no esté bloqueado por la configuración del navegador o extensiones de privacidad.
Module Filter añade automáticamente enlaces a drupal.org para dependencias faltantes. Si los enlaces no aparecen, asegúrate de que JavaScript esté habilitado y no haya errores en la consola.
Security Notes 3
- El permiso 'administer module_filter' debe otorgarse con cuidado ya que proporciona acceso a los ajustes de configuración del módulo
- Module Filter no modifica ninguna funcionalidad relacionada con la seguridad; solo proporciona mejoras de interfaz de usuario para páginas de administración
- Todo el filtrado ocurre del lado del cliente vía JavaScript; no se transmiten datos sensibles durante las operaciones de filtrado