Corresponding Entity References

CER mantiene los campos de referencia de entidad sincronizados creando y manteniendo automáticamente referencias bidireccionales entre entidades.

cer
6,390 sites
75
drupal.org

Overview

Corresponding Entity References (CER) mantiene automáticamente relaciones bidireccionales entre entidades que usan campos de referencia de entidad. Cuando la entidad Alice referencia a la entidad Bob, CER automáticamente hace que Bob referencie de vuelta a Alice. Esta sincronización continúa cada vez que cualquiera de las entidades es creada, actualizada o eliminada.

CER funciona a través de "presets" - entidades de configuración que definen relaciones entre campos de tipo referencia. Usted especifica qué dos campos deben corresponderse entre sí y qué bundles de entidad deben participar en la relación. El módulo se integra con cualquier campo Entity Reference del core de forma nativa.

Este módulo es el sucesor para Drupal 8/9/10/11 del módulo Corresponding Node References (CNR), reconstruido desde cero para funcionar con cualquier tipo de entidad con campos, no solo nodes.

Features

  • Sincronización bidireccional automática de campos de referencia de entidad - cuando la Entidad A referencia a la Entidad B, la Entidad B automáticamente referencia a la Entidad A
  • Presets basados en entidades de configuración para definir qué campos deben corresponderse entre sí
  • Soporte para cualquier tipo de entidad con campos de referencia de entidad (nodes, términos de taxonomía, usuarios, productos de commerce, etc.)
  • Filtrado por bundle para limitar la sincronización a bundles de entidad específicos
  • Soporte de comodín para bundles (entity_type:*) para incluir todos los bundles de un tipo de entidad
  • Control de dirección de adición - elija si las nuevas referencias se anteponen (añaden al inicio) o se anexan (añaden al final) de las referencias existentes
  • Opción de habilitar/deshabilitar para cada preset de referencia correspondiente
  • Capacidad de sincronización manual para referencias existentes a través de la interfaz de administración
  • Limpieza automática - cuando una entidad es eliminada, las referencias a ella se eliminan automáticamente de las entidades correspondientes
  • API de hooks (hook_cer_differences_alter) que permite a otros módulos modificar el comportamiento de sincronización
  • Funciona con campos de referencia de entidad de múltiples valores - maneja correctamente la adición y eliminación de referencias individuales
  • Respeta los permisos de entidad/campo - la sincronización opera en el contexto de seguridad normal

Use Cases

Relaciones bidireccionales entre nodes

Cree relaciones bidireccionales entre tipos de contenido. Por ejemplo, si tiene 'Artículo' y 'Artículos Relacionados' donde los artículos referencian a otros artículos, CER asegura que cuando el Artículo A referencia al Artículo B, el Artículo B automáticamente muestra el Artículo A en su campo de artículos relacionados.

Relación entre autor y contenido creado

Vincule usuarios a su contenido bidireccionalmente. Si tiene un campo personalizado 'Creado Por' en los nodes y un campo 'Obras Publicadas' en los perfiles de usuario, CER mantiene estos sincronizados automáticamente.

Relaciones entre productos y categorías

En sitios de comercio electrónico, mantenga relaciones bidireccionales entre productos y categorías. Cuando un producto se añade a una categoría, la categoría automáticamente lista ese producto.

Gestión de eventos y ponentes

Para sitios web de eventos, vincule eventos a ponentes y ponentes a eventos. Cuando un ponente se añade a un evento, ese evento aparece automáticamente en el perfil del ponente.

Jerarquías organizacionales

Cree relaciones bidireccionales padre-hijo o entidades relacionadas dentro del mismo tipo de contenido. Útil para estructuras organizacionales, jerarquías de ubicación o cualquier relación auto-referencial.

Relaciones entre diferentes tipos de entidad

Vincule diferentes tipos de entidad como nodes, términos de taxonomía y productos de commerce. Por ejemplo, vincule publicaciones de blog a términos de taxonomía y haga que los términos automáticamente referencien las publicaciones etiquetadas con ellos.

Tips

  • CER no almacena ninguna información adicional sobre las entidades referenciadas, haciendo las actualizaciones desde versiones anteriores sencillas - simplemente configure CER después de actualizar y las relaciones existentes continuarán funcionando
  • Use la opción de comodín para bundle (entity_type:*) cuando quiera que todos los bundles de un tipo de entidad participen en la sincronización
  • El mismo campo puede usarse tanto para el Primer campo como para el Segundo campo para crear relaciones bidireccionales auto-referenciales
  • Considere la cardinalidad del campo al configurar presets - si un campo solo permite una referencia, solo se mantendrá la referencia más reciente
  • Use hook_cer_differences_alter() para añadir lógica personalizada, como sincronizar solo entidades publicadas
  • Pruebe las referencias correspondientes con un pequeño conjunto de contenido antes de aplicarlas a grandes conjuntos de contenido
  • Recuerde que CER respeta los permisos de entidad y campo - pruebe con los roles de usuario apropiados

Technical Details

Admin Pages 5
Referencias correspondientes /admin/config/content/cer

Página principal de administración que muestra una lista de todos los presets de referencia correspondiente configurados. Muestra la etiqueta de cada preset, nombre máquina, campos correspondientes, dirección de adición (anexar/anteponer) y estado de habilitación. Proporciona enlaces de operaciones para editar, eliminar y sincronizar cada preset.

Añadir referencia correspondiente /admin/config/content/cer/add

Formulario para crear un nuevo preset de referencia correspondiente que define una relación bidireccional entre dos campos de referencia de entidad.

Editar referencia correspondiente /admin/config/content/cer/{corresponding_reference}

Formulario para modificar un preset de referencia correspondiente existente. Todas las configuraciones excepto el nombre máquina pueden cambiarse.

Eliminar referencia correspondiente /admin/config/content/cer/{corresponding_reference}/delete

Formulario de confirmación para eliminar permanentemente un preset de referencia correspondiente. Esto no elimina ninguna referencia existente de las entidades - solo elimina la configuración de sincronización.

Sincronizar referencia correspondiente /admin/config/content/cer/{corresponding_reference}/sync

Formulario de confirmación para activar manualmente la sincronización de todas las entidades para este preset. Útil para sincronizar contenido existente después de crear un nuevo preset o habilitar la sincronización.

Permissions 1
Administrar Corresponding Entity References

Permite a los usuarios crear, editar, eliminar y sincronizar presets de referencia correspondiente. Los usuarios con este permiso pueden gestionar todas las configuraciones de referencia de entidad bidireccional.

Hooks 1
hook_cer_differences_alter

Permite a los módulos alterar las diferencias calculadas por CER antes de que se apliquen. Se llama durante la sincronización de entidades para modificar qué referencias se añadirán o eliminarán.

Troubleshooting 5
Las referencias no se crean automáticamente

Asegúrese de que el preset de referencia correspondiente esté habilitado. Verifique que ambas entidades referenciadas pertenezcan a bundles configurados en el campo Bundles del preset. Verifique que ambas entidades tengan los campos de referencia configurados.

Errores de permiso denegado durante la sincronización

CER opera dentro del contexto de seguridad normal. Asegúrese de que el usuario actual tenga permiso para editar las entidades referenciadas. Verifique los permisos a nivel de campo si usa el módulo Field Permissions.

El contenido existente no se sincroniza después de crear el preset

Use la operación Sincronizar en el preset para procesar las entidades existentes. Navegue a la página de edición del preset y use la pestaña de tarea Sincronizar.

El campo auto-referencial no funciona

CER soporta relaciones auto-referenciales. Asegúrese de que tanto el Primer campo como el Segundo campo estén establecidos con el mismo nombre de campo, y que los bundles estén correctamente configurados.

Las referencias aparecen en orden incorrecto

Verifique la configuración de Dirección de Adición en su preset. Use 'Anteponer' para añadir nuevas referencias al inicio o 'Anexar' para añadirlas al final de la lista de referencias.

Security Notes 4
  • CER opera dentro del contexto de seguridad normal de Drupal - no puede referenciar entidades a las que el usuario actual no puede acceder
  • Los usuarios necesitan el permiso 'administer cer' para gestionar las configuraciones de referencia correspondiente
  • Las operaciones de sincronización respetan los controles de acceso de entidad - las referencias no permitidas no se crearán
  • Tenga en cuenta los permisos a nivel de campo cuando use módulos como Field Permissions junto con CER