Custom Search
Personaliza el formulario de búsqueda predeterminado de Drupal con opciones avanzadas que incluyen filtrado por tipo de contenido, selectores de taxonomía, filtros de idioma y rutas de búsqueda personalizables.
custom_search
Overview
Custom Search es un módulo potente que extiende y personaliza la funcionalidad de búsqueda predeterminada de Drupal. Proporciona un bloque de búsqueda altamente configurable que permite a los administradores del sitio controlar cada aspecto de la experiencia de búsqueda.
El módulo permite a los usuarios agregar selectores de tipo de contenido, filtros de vocabulario de taxonomía y opciones de idioma directamente en el formulario de búsqueda, en lugar de requerir que los usuarios naveguen a la página de búsqueda avanzada. Todos los elementos del formulario pueden mostrarse como listas desplegables, casillas de verificación o botones de radio, y su orden puede reorganizarse mediante una interfaz de arrastrar y soltar.
Las características adicionales incluyen etiquetas personalizables y texto de marcador de posición, la capacidad de usar una imagen en lugar de un botón de envío, campos de criterios de búsqueda avanzada (OR, frase, negativo), y soporte para rutas de búsqueda personalizadas con reemplazo de tokens. El módulo también proporciona opciones para personalizar la visualización de resultados de búsqueda, incluyendo enlaces de filtrado por tipo de contenido.
Features
- Cuadro de búsqueda personalizable con etiqueta, texto de marcador de posición, texto de sugerencia, tamaño y longitud máxima configurables
- Personalización del botón de envío con opciones de texto o imagen
- Selector de tipo de contenido que permite a los usuarios filtrar búsquedas por tipos de nodo específicos, con soporte para visualización en select, multi-select, casillas de verificación o botones de radio
- Exclusión de tipos de contenido para ocultar ciertos tipos de los resultados de búsqueda
- Filtros de vocabulario de taxonomía con profundidad, etiqueta y tipo de selector configurables para cada vocabulario
- Filtro de idioma que permite restringir las búsquedas a idiomas específicos o al idioma actual
- Campos de criterios de búsqueda avanzada incluyendo OR (que contenga cualquiera de las palabras), frase (frase exacta) y negativo (excluyendo palabras)
- Rutas de búsqueda personalizadas con soporte de tokens para reemplazo de [key], [types], [terms] y [current_path]
- Ordenamiento mediante arrastrar y soltar de todos los elementos del formulario de búsqueda
- Región emergente para ocultar opciones secundarias hasta que el campo de búsqueda reciba el foco
- Personalización de resultados de búsqueda controlando la visualización de tipo de contenido, autor e información de fecha
- Filtrado de resultados con enlaces de filtro por tipo de contenido posicionados arriba o debajo de los resultados
- Integración con Search API Page para usar Search API como backend de búsqueda
- Mejoras de JavaScript para validación de formularios, visualización emergente y manejo de casillas de verificación
- Plantillas personalizadas para resultados de búsqueda y elementos de resultado individuales
Use Cases
Búsqueda específica de contenido para sitios con múltiples tipos
En un sitio web con múltiples tipos de contenido (artículos, eventos, productos, FAQ), use Custom Search para permitir que los visitantes filtren su búsqueda a tipos de contenido específicos. Configure el bloque para mostrar casillas de verificación de tipo de contenido o un desplegable, permitiendo a los usuarios buscar solo dentro de la categoría de contenido deseada.
Búsqueda filtrada por taxonomía para contenido categorizado
Para un sitio con contenido organizado por taxonomía (ej., temas, categorías, etiquetas), agregue selectores de vocabulario al formulario de búsqueda. Los usuarios pueden buscar dentro de una categoría o tema específico, como encontrar todos los artículos etiquetados con 'Tecnología' que contengan sus términos de búsqueda.
Búsqueda en sitios multilingües
En sitios web multilingües, habilite el selector de idioma para permitir que los usuarios busquen dentro de idiomas específicos o restrinjan las búsquedas al idioma actual de la interfaz. Esto ayuda a los usuarios a encontrar contenido en su idioma preferido.
Búsqueda avanzada con campos de criterios
Habilite los campos de criterios OR, frase y negativo para proporcionar a los usuarios avanzados opciones de búsqueda avanzada directamente en el bloque de búsqueda. Los usuarios pueden buscar páginas que contengan cualquiera de ciertas palabras, una frase exacta, o excluyendo términos específicos.
Rutas de búsqueda personalizadas para búsquedas externas o especializadas
Configure rutas de búsqueda personalizadas para dirigir las búsquedas a diferentes destinos según la selección del usuario. Por ejemplo, dirija las búsquedas de productos a una página de búsqueda de comercio, o integre con servicios de búsqueda externos usando tokens de URL como [key] para los términos de búsqueda.
Búsqueda minimalista con opciones emergentes
Use la función de región emergente para mantener la interfaz de búsqueda principal limpia. Coloque el cuadro de búsqueda y el botón de envío en la región del bloque principal, y mueva los filtros de tipo de contenido, selectores de taxonomía y otras opciones a la región emergente. Aparecen solo cuando los usuarios enfocan el campo de búsqueda.
Botón de búsqueda con marca
Reemplace el botón de envío predeterminado basado en texto con una imagen personalizada que coincida con el diseño de su sitio. Cargue un icono de búsqueda o imagen de botón con marca en la configuración del bloque.
Tips
- Use la opción 'Forzar que se muestre - Cualquiera -' cuando tenga solo un tipo de contenido seleccionado pero aún quiera que los usuarios vean el selector
- Configure la opción '- Cualquiera - restringe la búsqueda' para limitar las búsquedas solo a los tipos de contenido mostrados en el selector, en lugar de buscar en todo el contenido
- Coloque las opciones menos frecuentemente usadas en la región Emergente para mantener el formulario de búsqueda principal limpio mientras proporciona opciones avanzadas bajo demanda
- Use rutas personalizadas con el token [current_path] para crear búsquedas contextuales que permanezcan dentro de la sección actual de su sitio
- Cuando use selección múltiple o casillas de verificación, la configuración del separador de argumentos determina cómo se combinan las selecciones múltiples en la consulta de búsqueda
- El módulo agrega automáticamente nuevos tipos de contenido e idiomas a las configuraciones de páginas de búsqueda cuando se crean
- Para botones de imagen, puede especificar rutas public://, rutas relativas o URIs de stream wrapper para flexibilidad en la ubicación de la imagen
Technical Details
Admin Pages 1
/admin/structure/block
Coloque y configure el bloque del formulario Custom Search. Acceda a la configuración del bloque haciendo clic en Configurar en cualquier bloque Custom Search form colocado.
Hooks 5
hook_entity_bundle_create
Agrega automáticamente nuevos tipos de nodo a la configuración de ajustes de resultados cuando se crea un nuevo tipo de contenido.
hook_form_alter
Modifica los formularios de agregar/editar páginas de búsqueda para añadir configuraciones de Custom Search, y modifica el formulario de búsqueda en las páginas de resultados para aplicar las opciones configuradas.
hook_preprocess_block
Agrega el atributo role='search' y la clase container-inline a los bloques de Custom Search.
hook_theme
Define hooks de tema personalizados para resultados de búsqueda y elementos de resultado individuales.
hook_theme_registry_alter
Anula las plantillas de resultados de búsqueda del núcleo con las plantillas de Custom Search.
Troubleshooting 5
Asegúrese de que el módulo Search esté correctamente configurado y el contenido esté indexado. Verifique que la página de búsqueda seleccionada en la configuración del bloque coincida con la configuración de búsqueda de su sitio. Limpie las cachés de Drupal después de los cambios de configuración.
Verifique que el vocabulario tenga términos y que la configuración de profundidad no esté establecida en 0 (lo que limita la profundidad). Compruebe que el tipo de selector del vocabulario no esté configurado como 'Deshabilitado' en la configuración del bloque.
Asegúrese de que las rutas estén ingresadas en el formato correcto: ruta|etiqueta, una por línea. Verifique que los tokens como [key], [types], [terms] estén escritos correctamente. Compruebe que la ruta de destino exista y sea accesible.
Limpie la caché de su navegador y las cachés de Drupal. Asegúrese de que la biblioteca custom_search/custom_search.front se esté cargando correctamente. Verifique si hay errores de JavaScript en la consola del navegador.
Configure los ajustes de Información de resultados en el formulario de configuración de la página de búsqueda (Administración > Configuración > Páginas de búsqueda > Editar). Habilite los campos de información deseados (Tipo de contenido, Autor, Fecha).