Entity Browser

Proporciona un navegador/selector de entidades genérico y altamente extensible que puede utilizarse en cualquier contexto donde se necesite seleccionar entidades.

entity_browser
100,889 sites
172
drupal.org

Install

Drupal 11, 10 v8.x-2.15
composer require 'drupal/entity_browser:8.x-2.15'

Overview

Entity Browser es un módulo integral que proporciona una interfaz estandarizada y altamente personalizable para explorar, crear y seleccionar entidades en Drupal. Ofrece una arquitectura flexible basada en plugins con múltiples opciones de visualización (modal, iframe, independiente), varios tipos de widgets para la selección de entidades (Views, carga de archivos, carga de imágenes de medios) y visualizaciones de selección personalizables.

El módulo se integra perfectamente con los campos de referencia de entidades, proporcionando widgets de campo especializados que mejoran la experiencia de selección de entidades. Incluye soporte para flujos de trabajo de selección de múltiples pasos, reordenación mediante arrastrar y soltar, validación de cardinalidad y filtrado contextual de bundles. Entity Browser es particularmente útil para la gestión de medios, flujos de trabajo de edición de contenido y cualquier escenario que requiera capacidades sofisticadas de selección de entidades.

Diseñado pensando en la extensibilidad, los desarrolladores pueden crear plugins personalizados para visualizaciones, widgets, selectores de widgets, visualizaciones de selección, visualizaciones de widgets de campo y validación. El módulo también proporciona un sistema completo de eventos para personalizar el comportamiento en varias etapas del proceso de selección.

Features

  • Instancias configurables de navegador de entidades con etiquetas y nombres de máquina personalizables
  • Múltiples plugins de visualización: diálogo Modal, incrustado en iFrame y página independiente
  • Plugins de widget para selección de entidades: selección basada en Views, carga de archivos y carga de imágenes de medios
  • Plugins de selector de widgets: pestañas y menú desplegable para navegar entre múltiples widgets
  • Plugins de visualización de selección: visualización de múltiples pasos con zona de selección en progreso, y sin visualización para selección inmediata
  • Plugins de visualización de widget de campo: etiqueta de entidad, miniatura de imagen y visualizaciones de entidad renderizada
  • Widget de campo de referencia de entidad con botones de editar, eliminar y reemplazar
  • Widget de campo de archivo/imagen con edición de metadatos (alt, título, descripción)
  • Validación de cardinalidad y validación de tipo de entidad
  • Reordenación de entidades seleccionadas mediante arrastrar y soltar
  • Integración con Views con plugin de visualización personalizado y campo de formulario de selección
  • Filtrado contextual de bundles en Views
  • Soporte para preselección en modo de edición
  • Arquitectura basada en eventos para personalización
  • Callbacks de JavaScript para selección de entidades basada en AJAX
  • Soporte de tokens para ubicaciones de carga
  • Integración con el módulo Inline Entity Form para crear entidades dentro del navegador

Use Cases

Alternativa a Media Library

Crea un navegador de medios personalizado con listado de medios basado en Views, widget de carga para nuevos medios y vistas previas en miniatura. Usa visualización modal para un flujo de trabajo de edición de contenido sin interrupciones.

Campo de referencia de contenido

Reemplaza el autocompletado de referencia de Entity por defecto con un navegador visual de Entity. Configura una View que muestre contenido con imágenes y usa la visualización 'rendered_entity' para vistas previas enriquecidas.

Campo de imagen con selección de galería

Usa entity browser con el widget de Field de archivo/imagen. Configura visualización de selección en múltiples pasos para revisar las selecciones antes de confirmar. Habilita reordenamiento mediante arrastrar y soltar.

Creación de Entity en línea

Habilita el submódulo entity_browser_entity_form y añade el widget 'Entity form' junto al widget de View. Los usuarios pueden seleccionar Entities existentes o crear nuevas sin salir del navegador.

Selección contextual de Entity

Usa el filtro entity_browser_bundle y el argumento por defecto entity_browser_widget_context para mostrar solo Entities que coincidan con la configuración de bundle objetivo del Field.

Incrustación de Entity en WYSIWYG

Integra con el módulo Entity Embed para permitir a los editores navegar e incrustar Entities (media, Nodes) directamente desde el editor WYSIWYG usando entity browser.

Tips

  • Usa la opción 'Auto select' en widgets de View para selección con un solo clic sin necesidad de presionar un botón de envío
  • Habilita 'Selection hidden by default' en la visualización de múltiples pasos para una interfaz más limpia cuando el área de selección no se necesita inmediatamente
  • Usa la opción del botón 'Replace' para Fields de valor único para permitir reemplazo rápido sin el flujo manual de eliminar y luego añadir
  • Aprovecha hook_entity_browser_view_executable_alter para pasar argumentos contextuales a Views basándose en la página actual
  • Usa diferentes entity browsers para diferentes casos de uso en lugar de un navegador complejo
  • Prueba con el módulo entity_browser_example habilitado para ver configuraciones funcionales
  • Para mejor rendimiento con grandes conjuntos de Entities, usa Views habilitadas con AJAX y paginación
  • Considera la cardinalidad al elegir entre casillas de verificación y botones de radio - el widget de View cambia automáticamente según la cardinalidad

Technical Details

Admin Pages 3
Entity Browsers /admin/config/content/entity_browser

Lista todos los entity browsers configurados. Desde aquí puede agregar nuevos navegadores, editar los existentes, configurar widgets o eliminar navegadores.

Agregar Entity browser /admin/config/content/entity_browser/add

Crea una nueva configuración de entity browser con ajustes de visualización, selector de widgets y visualización de selección.

Configuración de Widgets /admin/config/content/entity_browser/{entity_browser}/widgets

Configure los widgets para el entity browser. Agregue, elimine y reordene widgets que proporcionan diferentes formas de seleccionar entidades.

Permissions 2
Administrar entity browsers

Crear y modificar entity browsers para generar navegación, creación y selección de entities. Este permiso está restringido.

Acceder a páginas de [Browser Name]

Permiso generado dinámicamente para cada entity browser que utiliza una ruta (Modal, iFrame, Standalone). Permite el acceso a las páginas del entity browser.

Hooks 9
hook_entity_browser_display_info_alter

Modifica las definiciones de plugins de visualización

hook_entity_browser_widget_info_alter

Modifica las definiciones de plugins de widget

hook_entity_browser_selection_display_info_alter

Modifica las definiciones de plugins de visualización de selección

hook_entity_browser_widget_selector_info_alter

Modifica las definiciones de plugins de selector de widgets

hook_entity_browser_field_widget_display_info_alter

Modifica las definiciones de plugins de visualización de widgets de campo

hook_entity_browser_widget_validation_info_alter

Modifica las definiciones de plugins de validación de widgets

hook_form_entity_browser_form_alter

Modifica cualquier formulario de entity browser (alteración por ID de formulario base)

hook_form_entity_browser_ENTITY_BROWSER_ID_form_alter

Modifica un formulario específico de entity browser por ID

hook_entity_browser_view_executable_alter

Modifica el ejecutable de vista en el widget de vista antes del renderizado

Troubleshooting 6
El modal de entity browser no se abre

Asegúrate de que la biblioteca de diálogo AJAX de Drupal esté cargada. Revisa la consola del navegador en busca de errores de JavaScript. Verifica que entity browser tenga una configuración válida.

El widget de View muestra 'Entity browser select form field not found'

Añade el Field 'Entity browser select form' a tu View. Este Field debe estar presente para que la selección funcione.

Las Entities seleccionadas no aparecen en el Field

Verifica la configuración de cardinalidad. Si usas el modo 'Edit selection', asegúrate de que el plugin de visualización de selección soporte preselección (usa Multi step display, no No display).

Las cargas de archivos fallan o muestran extensiones incorrectas

Verifica que la configuración 'Allowed file extensions' en el widget de carga coincida con tus requisitos. Comprueba los límites de carga de PHP.

El filtro de bundle no funciona en Views

El filtro entity_browser_bundle obtiene valores del contexto del widget. Asegúrate de que tu widget de Field pase target_bundles en widget_context.

Entity browser se abre pero está vacío

Verifica los permisos del usuario para 'access [browser_id] entity browser pages'. Comprueba que la View tenga resultados y que el tipo de visualización sea 'Entity browser'.

Security Notes 4
  • El permiso 'administer entity browsers' está restringido y solo debe otorgarse a administradores de confianza
  • Entity browser respeta el acceso a Entity - los usuarios solo pueden seleccionar Entities a las que tengan acceso de visualización
  • Los widgets de carga de archivos heredan la validación a nivel de Field para extensiones y tamaño de archivo
  • El botón de edición en widgets de Field verifica el acceso de actualización de Entity antes de mostrarse