Entity Reference Override

Extiende el campo de referencia de entidad de Drupal con un campo de texto acompañante que puede sobrescribir aspectos de las entidades referenciadas como título, clases CSS, modo de visualización o valores de campos.

entity_reference_override
2,026 sites
31
drupal.org

Overview

El módulo Entity Reference Override proporciona un tipo de campo de referencia de entidad mejorado que combina la funcionalidad estándar de referencia de entidad con un campo de texto personalizado. Este texto personalizado puede usarse para sobrescribir aspectos específicos de la entidad referenciada cuando se muestra en la página de la entidad que la referencia.

Esto es particularmente útil para editores de contenido que necesitan personalización específica del contexto para el contenido referenciado. Por ejemplo, al referenciar el mismo perfil de autor desde múltiples artículos, cada artículo puede mostrar un título o biografía diferente para ese autor sin modificar la entidad de autor original.

El módulo soporta sobrescritura de:

  • Título/etiqueta de entidad - reemplazar completamente o añadir al título de la entidad referenciada
  • Clases CSS - añadir clases de estilo personalizadas a la referencia renderizada
  • Modo de visualización - renderizar la entidad referenciada en un modo de vista diferente
  • Campos de texto - sobrescribir cualquier campo de cadena, texto o correo electrónico en la entidad referenciada (experimental)

El texto de sobrescritura puede ser texto plano o HTML formateado dependiendo de la configuración, haciéndolo lo suficientemente flexible para sobrescrituras de etiquetas simples y sustitución de contenido enriquecido.

Features

  • Proporciona un tipo de campo personalizado 'Entity reference w/custom text' que extiende el campo de referencia de entidad del núcleo con columnas adicionales de sobrescritura y formato
  • Widget de autocompletado con campo de entrada de texto personalizado en línea para seleccionar entidades e ingresar texto de sobrescritura simultáneamente
  • Widget de menú desplegable para elegir de una lista de entidades referenciables con campo de texto de sobrescritura acompañante
  • Formateador de etiqueta que muestra etiquetas de entidades referenciadas con opciones para reemplazar título, añadir al título, agregar sufijo después del título, o añadir clase CSS al enlace
  • Formateador de entidad renderizada que muestra la vista completa de la entidad con opciones para sobrescribir el título de la entidad, añadir clase CSS, cambiar modo de visualización, o sobrescribir cualquier valor de campo de texto/cadena/correo electrónico
  • Soporte para texto formateado (HTML) en el campo de sobrescritura cuando se configura con un formato de texto, habilitando edición WYSIWYG para sobrescrituras de contenido enriquecido
  • Integración con Views proporcionando tanto relaciones directas (desde la entidad que referencia a la entidad referenciada) como relaciones inversas (desde la entidad referenciada a las entidades que la referencian)
  • Integración con el módulo Entity Usage para seguimiento de relaciones de entidades a través de campos entity_reference_override
  • Protección contra renderizado recursivo para prevenir bucles infinitos cuando las entidades se referencian mutuamente
  • Hooks de actualización de esquema de base de datos para migración sin problemas desde versiones anteriores con límites de tamaño de campo más pequeños

Use Cases

Artículo con líneas de autor personalizadas

Cuando múltiples artículos referencian el mismo perfil de autor, cada artículo puede mostrar una línea de crédito o título diferente para ese autor. Por ejemplo, un artículo podría mostrar 'Dr. Jane Smith, CEO' mientras otro muestra 'Jane Smith, Columnista de Tecnología' - todos referenciando la misma entidad de autor.

Catálogo de productos con descripciones específicas del contexto

Una entidad de producto referenciada desde diferentes páginas de categoría puede mostrar texto promocional o descripciones específicas de la categoría sin duplicar la entidad del producto. El texto de sobrescritura reemplaza o complementa la descripción estándar del producto según el contexto.

Ponentes de eventos con biografías específicas de la sesión

El contenido de sesiones de conferencias puede referenciar perfiles de ponentes mientras proporciona introducciones o credenciales específicas de la sesión relevantes para cada charla particular, en lugar de usar la biografía genérica del ponente.

Menús de navegación con títulos de enlace personalizados

Al construir navegación que referencia entidades de contenido, usar texto de sobrescritura para proporcionar títulos específicos del menú que difieren del título real del contenido - útil para etiquetas de menú más cortas o frases apropiadas al contexto.

Bloques de contenido destacado con texto promocional

Una sección de contenido destacado puede referenciar artículos o productos mientras añade contexto promocional o editorial específico para esa ubicación, como insignias de 'Selección del Editor' o texto de adelanto personalizado.

Contenido relacionado con contexto de relación

Al mostrar contenido relacionado, el texto de sobrescritura puede explicar la relación: 'Ver también: Nuestra cobertura anterior de este tema' o 'Relacionado: Escrito por el mismo autor'.

Tips

  • Configurar el ajuste de formato de texto a NULL para sobrescrituras simples como títulos o clases CSS para mantener la interfaz limpia y evitar opciones de formato innecesarias
  • Usar un formato de texto mínimo cuando se necesiten sobrescrituras de texto enriquecido para prevenir que HTML complejo rompa los diseños
  • El campo de texto de sobrescritura soporta hasta 4094 caracteres, haciéndolo adecuado para sobrescrituras de contenido del tamaño de un párrafo
  • Al sobrescribir clases CSS, asegurar que los nombres de clase no conflictúen con los estilos del tema existentes
  • Para el formateador de entidad renderizada, la entidad se clona antes de la modificación, por lo que las entidades originales nunca se ven afectadas
  • Considerar las implicaciones de caché al usar sobrescrituras de modo de visualización, ya que cada sobrescritura única crea una entrada de caché separada
  • La protección contra renderizado recursivo previene bucles infinitos, pero evitar crear referencias circulares por razones de rendimiento

Technical Details

Hooks 2
hook_entity_usage_track_info_alter

Se integra con el módulo Entity Usage para rastrear relaciones de entidades creadas a través de campos entity_reference_override. Cuando Entity Usage está habilitado, los campos entity_reference_override se rastrean automáticamente junto con los campos entity_reference estándar.

hook_field_views_data

Proporciona integración con Views para campos entity_reference_override, añadiendo tanto relaciones directas como inversas. La relación directa permite unir desde la entidad que referencia a la entidad referenciada. La relación inversa permite filtrar y mostrar contenido que referencia una entidad específica.

Troubleshooting 4
El editor WYSIWYG aparece demasiado estrecho en el widget

El módulo incluye correcciones CSS para este problema a través de la librería form-fixes. Si los problemas persisten, verificar conflictos CSS con tu tema de administración.

El texto de sobrescritura no aparece al usar el formateador de entidad renderizada

Asegurar que el ajuste override_action en la configuración del formateador coincida con el tipo de sobrescritura que estás intentando. Para sobrescrituras de campos, verificar que el campo destino existe en el bundle de la entidad referenciada.

La relación de Views no aparece para el campo entity_reference_override

Limpiar la caché de Views después de añadir el campo. La relación debería aparecer tanto bajo el grupo del tipo de entidad que referencia como del tipo de entidad referenciada.

La selección de formato de texto no funciona en el widget

El formato de texto debe configurarse en los ajustes del campo (no en los ajustes del widget). Editar la configuración del campo y seleccionar un formato de texto bajo 'Custom text format'.

Security Notes 3
  • El texto de sobrescritura se almacena y muestra según lo configurado por el ajuste de formato de texto. Al usar formatos de texto que permiten HTML, asegurar que el filtrado apropiado esté configurado para prevenir vulnerabilidades XSS.
  • El módulo clona las entidades antes de aplicar sobrescrituras, por lo que los datos de la entidad original nunca se modifican a través del mecanismo de sobrescritura.
  • Los permisos de campo y controles de acceso de entidad se aplican normalmente tanto a la entidad que referencia (donde existe el campo) como a las entidades referenciadas.