it-swarm-es.com

¿Cómo implementar referencias de nodo bidireccionales?

El módulo de referencia de nodo (un componente de CCK) proporciona una excelente manera de crear una referencia de un nodo a otro. ¿Cuál es la mejor manera de exponer una relación bidireccional entre los dos? Ejemplo a continuación:

Por ejemplo, en un sistema de seguimiento de tickets con dos tickets (nodos) A y B, puede crear una referencia de nodo desde el ticket A -> B y marcar B como elemento secundario. Al ver el boleto A, sería trivial mostrar esta información. Sin embargo, también me gustaría mostrar esta relación al ver el boleto B y mostrar el boleto A como padre.

Este mismo requisito también se aplicaría en situaciones no jerárquicas (tickets C y D) con una referencia de C -> D, la relación debe exponerse en el ticket D y en C.

20
markdorison

Hay muchos módulos disponibles, su kilometraje puede variar:

BackReference (solo Drupal 6)

NodeReferrer (versión beta de Drupal 7)

Relaciones de nodo (solo Drupal 6)

referencias de nodo correspondientes (versión estable de Drupal 7)

Referencias de entidades correspondientes (versión de desarrollo de Drupal 7)

Dependencia de contenido (versión estable de Drupal 7)

25
tim.plunkett

Módulo de referencia de entidad ahora funciona con Referencias de entidad correspondientes . Esto es ideal para todos los nodos y entidades no nodales.

7
tmsimont

Para Drupal 6, la mejor opción es probablemente el módulo NodeReferrer . Para Drupal 7, Relación cumple con los requisitos pero aún no está listo.

4
Pierre Buyle

Si está utilizando Drupal 7/Vistas, puede construir una relación 'inversa' para obtener una lista de nodos que se refieren a un nodo determinado (o, tal vez, usuarios que se refieren a un determinado nodo). Revise el parche en este número: http://drupal.org/node/104326

En mi opinión, a menos que necesite la relación inversa explícita y preconstruida almacenada en la base de datos (esto a veces puede ser útil por razones de rendimiento), usar una de las otras soluciones es excesivo. Siempre puede buscar una relación en su propia consulta SQL si necesita ...

[Editar: desde que originalmente escribí esta publicación, el parche en el tema anterior se ha comprometido con Referencias para D7, y debería ser la forma preferida de referencia inversa (funciona muy bien cuando simplemente se necesitan listas de nodos o usuarios que hacen referencia a cierto otro nodo o usuario) .]

[Edición 2: si está usando Referencia de entidad, parece que la solución preferida es usar Referencias de entidad correspondientes , y también está la menos utilizada Sincronización de campo de referencia de entidad .]

4
geerlingguy

En Drupal 7 (que usted indicó) parece que la solución es usar el Módulo de referencia de entidad en combinación con el - (Entidad) Módulo de sincronización de campo de referencia que agrega la funcionalidad necesaria para mantener las relaciones sincronizadas.

Lo mismo se puede lograr con Módulo de referencias con módulo cnr - esta solución funciona (la estoy usando en un sitio Drupal 7 actualmente ), pero se está volviendo obsoleto/en desuso a favor de la primera solución que di.

Todas las demás soluciones mencionadas en las respuestas anteriores son relevantes solo para Drupal 6 (excepto Relación que tiene el potencial de convertirse en un gran módulo, pero en este momento, realmente no hace mucho y tiene muchos problemas).

3
Moshe Eshel

Alternativamente, si está trabajando en una implementación personalizada y desea una forma directa de hacer referencia hacia atrás, puede conectarse a nodeapi, escuchar la operación save y luego actualizar programáticamente el nodo referenciado.

2
enikola

También puede probar el módulo Reverso Node Referencia .

1
user580

Simplemente use Reglas y esta regla http://drupal.org/node/183624

0
giorgio79

Puede usar el módulo Dependencia de contenido .

Le proporciona referencias inversas a través de la pestaña y admite los siguientes módulos: referencia de nodo/referencia de entidad.

0
drupal