Coffee
Un cuadro de búsqueda de navegación rápida inspirado en Alfred/Spotlight que permite a los usuarios navegar rápidamente a cualquier página de administración o ejecutar comandos dentro de Drupal usando atajos de teclado y búsqueda con autocompletado.
coffee
Install
composer require 'drupal/coffee:^2.0'
composer require 'drupal/coffee:8.x-1.4'
composer require 'drupal/coffee:8.x-1.2'
Overview
El módulo Coffee proporciona una potente interfaz de búsqueda similar a Alfred/Spotlight para una navegación rápida dentro de la interfaz administrativa de Drupal. Permite a los administradores y editores saltar rápidamente a cualquier página de administración, crear contenido o ejecutar comandos personalizados sin tener que navegar a través de estructuras de menú complejas.
Cuando se activa mediante el atajo de teclado (Alt+D) o el botón de la barra de herramientas, aparece un elegante diálogo de búsqueda donde los usuarios pueden escribir parte del título o ruta de una página. El módulo filtra instantáneamente y muestra los resultados coincidentes de los menús configurados, permitiendo a los usuarios navegar con solo unas pocas pulsaciones de teclas. Por ejemplo, escribir 'ap' y presionar Enter navegará directamente a la página de administración de Apariencia.
Coffee es altamente extensible a través de la API hook_coffee_commands(), permitiendo que otros módulos añadan comandos personalizados y resultados de búsqueda. El módulo viene con comandos integrados como :front para ir a la página principal y :add para la creación rápida de contenido de cualquier tipo de contenido.
Features
- Cuadro de búsqueda de navegación rápida activado mediante el atajo de teclado Alt+D o el botón de la barra de herramientas
- Filtrado de autocompletado en tiempo real a través de múltiples menús, incluyendo el menú de administración, el menú de cuenta y cualquier otro menú configurado
- Comando integrado :front para navegar rápidamente a la página principal
- Comando integrado :add para la creación rápida de contenido con soporte para todos los tipos de contenido (ej., :add Article)
- Extensible mediante hook_coffee_commands() permitiendo que los módulos añadan comandos personalizados y elementos de navegación
- Número configurable de resultados de búsqueda (1-50, predeterminado 7)
- Soporte de navegación por teclado con teclas de flecha para explorar resultados y Enter para seleccionar
- Abrir resultados en una nueva ventana con Ctrl+Enter (Windows) o Cmd+Enter (macOS)
- Integración perfecta con la barra de herramientas con un botón 'Ir a' para usuarios de ratón
- Control de acceso con permisos separados para usar y administrar Coffee
- La verificación automática de acceso asegura que los usuarios solo vean los elementos del menú a los que tienen permiso para acceder
- Soporte para tareas locales que proporcionan navegación adicional a páginas de traducción cuando Config Translation está habilitado
- Incluye páginas de Configuration Translation en los resultados de búsqueda cuando están disponibles
- Interfaz oscura limpia estilo modal con transiciones suaves
- Manejo de token CSRF para navegación segura
Use Cases
Navegación rápida a páginas de administración
Como administrador de sitio gestionando un sitio Drupal complejo, necesitas acceder frecuentemente a varias páginas de administración como Contenido, Estructura, Personas o Informes. En lugar de hacer clic a través de múltiples niveles de menú, simplemente presiona Alt+D, escribe unos pocos caracteres (ej., 'cont' para Contenido, 'peo' para Personas, o 'rep' para Informes), y presiona Enter para navegar instantáneamente.
Creación rápida de contenido
Los editores de contenido que crean nuevo contenido frecuentemente pueden usar el comando :add para acceder rápidamente al formulario de creación de nodos. Presiona Alt+D, escribe ':add Article' o ':add Page', y presiona Enter para ir directamente al formulario de creación de contenido para ese tipo. Esto evita completamente la navegación del menú Contenido > Añadir contenido.
Acceso rápido a la página principal
Cuando trabajas en el área de administración y necesitas previsualizar la página principal del sitio, usa el comando :front. Presiona Alt+D, escribe ':front', y presiona Enter para navegar a la página principal del sitio inmediatamente.
Integración de módulos personalizados
Los desarrolladores pueden extender Coffee implementando hook_coffee_commands() en sus módulos. Por ejemplo, un módulo de panel personalizado podría añadir comandos como ':dashboard' para saltar a un panel de administración personalizado, o ':reports' para acceder a páginas de informes personalizados. Esto hace que la funcionalidad específica del módulo sea fácilmente accesible a través de Coffee.
Configuración de búsqueda en múltiples menús
Para sitios que usan múltiples menús (ej., administración, navegación principal, pie de página), los administradores pueden configurar Coffee para buscar en todos ellos. Esto permite a los editores encontrar cualquier página enlazada en el sitio rápidamente, no solo páginas de administración. Habilita menús adicionales en /admin/config/user-interface/coffee.
Abrir páginas de administración en nuevas pestañas
Cuando necesitas abrir múltiples páginas de administración simultáneamente (ej., comparar configuraciones o editar contenido mientras referencias otra página), usa Coffee con Ctrl+Enter (Windows) o Cmd+Enter (Mac) para abrir resultados en nuevas pestañas del navegador sin abandonar tu página actual.
Integración con el módulo Devel
Cuando el módulo Devel está instalado, sus elementos de menú se vuelven buscables a través de Coffee. Escribe 'clear' para encontrar y navegar a la página de limpieza de caché (devel/cache/clear) o 'phpinfo' para acceder a la página de información de PHP, agilizando los flujos de trabajo de desarrollo.
Tips
- Usa términos de búsqueda cortos y memorables - Coffee coincide con títulos de página, rutas y comandos, así que escribir solo 2-3 caracteres a menudo es suficiente
- Prefija los comandos con dos puntos (:) para comandos integrados como :front y :add
- Configura menos menús para resultados más rápidos y enfocados cuando principalmente necesitas navegación de administración
- Aumenta max_results en la configuración si frecuentemente necesitas ver más opciones antes de hacer una selección
- Combina Coffee con el módulo Devel para acceso rápido a herramientas de desarrollo y limpieza de caché
- Recuerda que Coffee respeta los permisos de acceso - los usuarios solo verán elementos del menú a los que tienen permiso para acceder
- Usa la tecla Escape para cerrar rápidamente el diálogo de Coffee si cambias de opinión
Technical Details
Admin Pages 1
/admin/config/user-interface/coffee
Configurar qué menús debe buscar Coffee y cuántos resultados mostrar en el desplegable de autocompletado.
Permissions 2
Hooks 1
hook_coffee_commands
Extender la funcionalidad de Coffee con comandos personalizados y elementos de navegación. Este hook permite a los módulos añadir sus propios elementos buscables a la interfaz de Coffee, habilitando la navegación rápida a páginas personalizadas o la ejecución de comandos específicos del módulo.
Troubleshooting 5
Asegúrate de que el usuario tenga el permiso 'Access Coffee'. Verifica que la biblioteca de coffee se esté cargando inspeccionando el código fuente de la página para coffee.js. Limpia todas las cachés e intenta de nuevo.
Verifica que al menos un menú esté seleccionado en la configuración de Coffee en /admin/config/user-interface/coffee. Asegúrate de que los menús seleccionados contengan elementos y que el usuario tenga permisos de acceso a esos elementos del menú.
El botón de la barra de herramientas solo aparece para usuarios con los permisos 'Access Coffee' y 'Access toolbar'. Instala y habilita el módulo Toolbar si no está activo, y asegúrate de que se otorguen los permisos adecuados.
Asegúrate de que tu implementación esté en un archivo .coffee.inc (como se define en hook_hook_info()) o en el archivo principal .module. Limpia todas las cachés después de añadir nuevos comandos. Verifica que el hook devuelva un array con las claves 'value', 'label' y 'command' para cada elemento.
En algunos navegadores (particularmente Opera e Internet Explorer), usa Alt+Shift+D o Alt+Ctrl+D respectivamente. También puedes hacer clic en el icono de Coffee en la barra de herramientas si los atajos de teclado son problemáticos.
Security Notes 4
- Coffee aplica automáticamente verificaciones de acceso a todos los elementos del menú, asegurando que los usuarios solo vean opciones de navegación a las que tienen permiso para acceder
- Los tokens CSRF se manejan adecuadamente para las rutas que los requieren, previniendo potenciales vulnerabilidades de seguridad
- El módulo crea permisos separados para usar (access coffee) y administrar (administer coffee) la funcionalidad, siguiendo el principio de mínimo privilegio de Drupal
- Todos los títulos de elementos del menú se escapan correctamente usando Html::escape() para prevenir vulnerabilidades XSS