Le module de référence de nœud (un composant de CCK) fournit un excellent moyen de créer une référence d'un nœud à partir d'un autre. Quelle est la meilleure façon d'exposer une relation bidirectionnelle entre les deux? Exemple ci-dessous:
Par exemple, dans un système de suivi des tickets avec deux tickets (nœuds) A et B, vous pouvez créer une référence de nœud à partir du ticket A -> B et marquer B comme enfant. Lors de la visualisation du ticket A, il serait trivial d'afficher ces informations. Cependant, je voudrais également afficher cette relation lors de l'affichage du ticket B et afficher le ticket A comme parent.
Cette même exigence s'appliquerait également dans des situations non hiérarchiques (tickets C & D) avec une référence de C -> D, la relation devrait être exposée sur le ticket D ainsi que sur C.
Le module de référence d'entité fonctionne désormais avec les références d'entité correspondantes . Ceci est idéal pour tous les nœuds et entités non nœuds.
la source
Pour Drupal 6, la meilleure option est probablement le module NodeReferrer . Pour Drupal 7, Relation fait l'affaire mais n'est pas encore prêt.
la source
Si vous utilisez Drupal 7 / Views, vous pouvez créer une relation `` inverse '' pour obtenir une liste des nœuds qui se réfèrent à un nœud donné (ou, peut-être, des utilisateurs qui se réfèrent à un nœud donné). Découvrez le correctif dans ce problème: http://drupal.org/node/1043260
À mon avis, à moins que vous n'ayez besoin de la relation inverse explicite et prédéfinie stockée dans la base de données (cela peut parfois être utile pour des raisons de performances), l'utilisation de l'une des autres solutions est exagérée. Vous pouvez toujours rechercher une relation dans votre propre requête SQL si vous devez ...
[Modifier: depuis la rédaction de cet article, le correctif dans le problème ci-dessus a été validé dans Références pour D7, et devrait être le moyen préféré de rétro-référence (fonctionne très bien lorsque vous avez simplement besoin de listes de nœuds ou d'utilisateurs référençant un certain autre nœud ou utilisateur) .]
[Edit 2: Si vous utilisez la référence d'entité, il semble que la solution préférée consiste à utiliser les références d'entité correspondantes , et il y a aussi la synchronisation de champ de référence d'entité moins utilisée .]
la source
Dans Drupal 7 (que vous avez indiqué), il semble que la solution consiste à utiliser le module de référence d'entité en combinaison avec le module de synchronisation de champ de référence (entité) qui ajoute les fonctionnalités nécessaires pour maintenir les relations synchronisées.
La même chose peut être obtenue avec le module Références avec le module cnr - cette solution fonctionne (je l'utilise actuellement sur un site Drupal 7), mais devient obsolète / obsolète au profit de la première solution que j'ai donnée.
Toutes les autres solutions mentionnées dans les réponses ci-dessus ne concernent que Drupal 6 (à l'exception de Relation qui a le potentiel de devenir un excellent module, mais pour le moment, ne fait pas vraiment grand-chose et a beaucoup de problèmes).
la source
Alternativement, si vous travaillez sur une implémentation personnalisée et que vous souhaitez une méthode de référence simple, vous pouvez vous connecter
nodeapi
, écouter l'save
opération et mettre à jour par programmation le nœud référencé.la source
Vous pouvez également essayer le module Reverse Node Reference .
la source
Utilisez simplement Rules et cette règle http://drupal.org/node/1836240
la source
Vous pouvez utiliser le module Content Dependency .
Il vous fournit des références inversées via l'onglet et prend en charge les modules suivants: référence de nœud / référence d'entité .
la source