it-swarm.asia

كيفية تنفيذ مراجع عقدة ذات اتجاهين؟

توفر وحدة مرجع العقدة (أحد مكونات CCK) طريقة رائعة لإنشاء عقدة مرجعية من أخرى. ما هي أفضل طريقة لكشف علاقة ثنائية الاتجاه بينهما؟ المثال أدناه:

على سبيل المثال ، في نظام تتبع التذاكر مع تذكرتين (عقد) A و B ، يمكنك إنشاء مرجع عقدة من البطاقة A -> B ووضع علامة B كطفل. عند عرض التذكرة "أ" ، سيكون من السهل عرض هذه المعلومات. ومع ذلك ، أود أيضًا عرض هذه العلاقة عند عرض التذكرة ب وإظهار التذكرة أ بصفتها الأصل.

ينطبق هذا الشرط نفسه أيضًا في المواقف غير الهرمية (التذاكر C & D) مع مرجع من C -> D ، يجب الكشف عن العلاقة على البطاقة D وكذلك على C.

20
markdorison

هناك العديد من الوحدات المتاحة ، قد يختلف الميل الخاص بك:

BackReference (دروبال 6 فقط)

NodeReferrer (الإصدار التجريبي لدروبال 7)

علاقات العقدة (دروبال 6 فقط)

مراجع العقدة المقابلة (إصدار Drupal 7 المستقر)

مراجع الكيانات المقابلة (إصدار مطور دروبال 7)

تبعية المحتوى (إصدار Drupal 7 المستقر)

25
tim.plunkett

الوحدة المرجعية للكيانات تعمل الآن مع مراجع الكيانات المقابلة . هذا مثالي لجميع العقد والكيانات غير العقدة.

7
tmsimont

ل Drupal 6 ، ربما يكون الخيار الأفضل هو NodeReferrer module . For Drupal 7، Relation يناسب الفاتورة ولكنها ليست جاهزة بعد.

4
Pierre Buyle

إذا كنت تستخدم Drupal 7/Views ، يمكنك بناء علاقة "عكسية" للحصول على قائمة من العقد التي تشير إلى عقدة معينة (أو ربما المستخدمين الذين يشيرون إلى معين العقدة). تحقق من التصحيح في هذه المشكلة: http://drupal.org/node/104326

في رأيي ، ما لم تكن بحاجة إلى علاقة عكسية صريحة ومحددة مسبقًا مخزنة في قاعدة البيانات (قد يكون هذا مفيدًا في بعض الأحيان لأسباب تتعلق بالأداء) ، فإن استخدام أحد الحلول الأخرى هو المبالغة. يمكنك دائمًا البحث عن علاقة في استعلام SQL الخاص بك إذا كنت بحاجة إلى ...

[تحرير: منذ كتابة هذا المنشور في الأصل ، تم الالتزام بالتصحيح في المشكلة أعلاه بالمراجع لـ D7 ، ويجب أن تكون الطريقة المفضلة للإشارة الخلفية (تعمل بشكل رائع عند الحاجة إلى قوائم العقد أو المستخدمين الذين يشيرون إلى عقدة أو مستخدم آخر معين) .]

[تعديل 2: إذا كنت تستخدم Entity Reference ، فيبدو أن الحل المفضل هو استخدام مراجع الكيانات المقابلة ، وهناك أيضًا أقل استخدامًا على نطاق واسع مزامنة حقل مرجع الكيان .]

4
geerlingguy

في دروبال 7 (الذي أشرت إليه) يبدو أن الحل هو استخدام الوحدة المرجعية للوحدة بالاشتراك مع - (الكيان) وحدة تزامن المجال المرجعي التي تضيف الوظائف اللازمة للحفاظ على العلاقات متزامنة.

يمكن تحقيق نفس الشيء مع وحدة المراجع مع وحدة cnr - يعمل هذا الحل (أستخدمه على واحد Drupal 7 حاليًا ) ، لكنه أصبح مهجورًا/موقوفًا لصالح الحل الأول الذي قدمته.

جميع الحلول الأخرى المذكورة في الإجابات أعلاه ذات صلة فقط بـ دروبال 6 (باستثناء علاقة التي يمكن أن تصبح وحدة رائعة ، ولكن في الوقت الحالي ، لا تعمل كثيرًا ولديها الكثير من المشكلات).

3
Moshe Eshel

بدلاً من ذلك ، إذا كنت تعمل على تنفيذ مخصص وتريد طريقة مباشرة للأمام للرجوع ، يمكنك الربط بـ nodeapi ، والاستماع إلى عملية save ثم تحديث العقدة المشار إليها برمجيًا.

2
enikola

يمكنك أيضًا تجربة Reverse Node Reference الوحدة النمطية.

1
user580

ما عليك سوى استخدام القواعد وهذه القاعدة http://drupal.org/node/183624

0
giorgio79

يمكنك استخدام تبعية المحتوى الوحدة النمطية.

يوفر لك مراجع عكسية عبر علامة التبويب ويدعم الوحدات التالية: مرجع العقدة/مرجع الكيان.

0
drupal