दो तरह के नोड संदर्भ कैसे लागू करें?


20

नोड-रेफरेंस मॉड्यूल (CCK का एक घटक) एक संदर्भ एक नोड को दूसरे से बनाने का एक शानदार तरीका प्रदान करता है। दोनों के बीच दो-तरफ़ा रिश्ते को उजागर करने का सबसे अच्छा तरीका क्या है? नीचे उदाहरण:

उदाहरण के लिए, दो टिकट (नोड्स) ए एंड बी के साथ एक टिकट ट्रैकिंग सिस्टम में, आप टिकट ए -> बी से नोड संदर्भ बना सकते हैं और बी को एक बच्चे के रूप में चिह्नित कर सकते हैं। टिकट ए देखते समय यह जानकारी प्रदर्शित करना तुच्छ होगा। हालाँकि, मैं इस रिश्ते को टिकट बी को देखने और टिकट ए को इसके माता-पिता के रूप में प्रदर्शित करना चाहूंगा।

यही आवश्यकता गैर-पदानुक्रमित स्थितियों (टिकट C & D) में C -> D के संदर्भ के साथ भी लागू होगी, रिश्ते को टिकट D के साथ-साथ C पर भी उजागर किया जाना चाहिए।

जवाबों:


25

कई मॉड्यूल उपलब्ध हैं, आपके लाभ भिन्न हो सकते हैं:

पिछला संदर्भ (केवल 6 ड्रुपल)

NodeReferrer (Drupal 7 beta release)

नोड संबंध (केवल 6 ड्रुपल)

अनुरुप नोड संदर्भ (Drupal 7 स्थिर रिलीज)

अनुरुप इकाई संदर्भ (Drupal 7 dev release)

सामग्री निर्भरता (Drupal 7 स्थिर रिलीज)


नोड संदर्भों को पूरी तरह से मेरे लिए काम करता है, और एक बार सीईआर स्थिर होने के बाद मैं उस पर स्विच कर दूंगा।


4

Drupal 6 के लिए, सबसे अच्छा विकल्प शायद NodeReferrer मॉड्यूल है । Drupal 7 के लिए, Relation बिल फिट बैठता है, लेकिन अभी तैयार नहीं है।


मैं हमेशा NodeReferrer मॉड्यूल का उपयोग करता हूं, इसके लायक क्या है
Marbl


हां, संबंध काफी शक्तिशाली विकल्प लगता है। अन्यथा, सीईआर एक अच्छा हल्का विकल्प भी है।
शिवाम्स

4

यदि आप Drupal 7 / Views का उपयोग कर रहे हैं, तो आप नोड्स की एक सूची प्राप्त करने के लिए एक 'रिवर्स' संबंध बना सकते हैं जो किसी दिए गए नोड (या, शायद, उपयोगकर्ताओं को जो किसी दिए गए नोड को संदर्भित करते हैं) को संदर्भित करते हैं। इस समस्या में पैच देखें: http://drupal.org/node/1043260

मेरी राय में, जब तक आपको डेटाबेस में संग्रहीत स्पष्ट, पूर्व-निर्मित रिवर्स संबंध की आवश्यकता नहीं होती है (यह कभी-कभी प्रदर्शन कारणों के लिए सहायक हो सकता है), अन्य समाधानों में से एक का उपयोग करना ओवरकिल है। यदि आप की जरूरत है तो आप हमेशा अपनी खुद की SQL क्वेरी में एक रिश्ता देख सकते हैं ...

[संपादित करें: मूल रूप से इस पोस्ट को लिखने के बाद से, ऊपर के मुद्दे में पैच D7 के लिए संदर्भ के लिए प्रतिबद्ध है, और बैकरेफ्रेंसिंग का पसंदीदा तरीका होना चाहिए (महान काम करता है जब केवल नोड्स या उपयोगकर्ताओं की सूची की आवश्यकता होती है जो किसी अन्य नोड या उपयोगकर्ता का संदर्भ देते हैं) ।]

[संपादित करें 2: यदि आप इकाई संदर्भ का उपयोग कर रहे हैं, तो ऐसा लगता है कि पसंदीदा समाधान कॉरस्पॉन्डिंग एंटिटी संदर्भों का उपयोग करना है , और इसमें कम-व्यापक रूप से उपयोग किया जाने वाला एंटिटी संदर्भ क्षेत्र सिंक्रनाइज़ेशन भी है ।]


ऐसा लगता है कि संदर्भ संदर्भ संदर्भ के पक्ष में पदावनत होने जा रहा है। यकीन नहीं होता कि यह जवाब कहां छोड़ता है।
Jay

1
जब तक D7 एक दूर की स्मृति है, तब तक संदर्भ इधर-उधर चिपके रहेंगे ... लेकिन यदि आप ER का उपयोग कर रहे हैं, तो आप उसी चीज़ को करने के लिए कॉरस्पॉन्डिंग एंटिटी रेफ़रेंस का उपयोग कर सकते हैं जैसे संदर्भ बॉक्स से बाहर प्रदान करता है।
geerlingguy

3

में ड्रुपल 7 (जो आप इंगित) ऐसा लगता है समाधान का उपयोग करने के लिए है इकाई संदर्भ मॉड्यूल के साथ संयोजन में (इकाई) संदर्भ फील्ड तुल्यकालन मॉड्यूल जो रिश्तों synched रखने के लिए आवश्यक कार्यक्षमता जोड़ता।

इसे cnr मॉड्यूल के साथ संदर्भ मॉड्यूल के साथ प्राप्त किया जा सकता है - यह समाधान काम करता है (मैं वर्तमान में एक Drupal 7 साइट पर इसका उपयोग कर रहा हूं), लेकिन मेरे द्वारा दिए गए पहले समाधान के पक्ष में अप्रचलित / पदावनत हो रहा है।

उपरोक्त उत्तर में वर्णित सभी अन्य समाधान केवल Drupal 6 के लिए प्रासंगिक हैं ( संबंध को छोड़कर जो एक महान मॉड्यूल बनने की क्षमता है, लेकिन अभी, वास्तव में बहुत कुछ नहीं करता है और बहुत सारे मुद्दे हैं)।


इस जवाब को वोट करना क्योंकि यह हाल ही में है और मोशे द्रुपाल समुदाय का एक वरिष्ठ सदस्य है। स्वीकृत उत्तर में, एकमात्र स्थिर D7 मॉड्यूल CNR है, और यह CER के पक्ष में मूल्यह्रास किया जा रहा है (जिसका अभी तक कोई स्थिर रिलीज नहीं है)।
aendrew

1
मार्च में वापस संबंध बहुत सारे मुद्दे नहीं थे। और मोशे एशेल Drupal.org/user/168876 ! = मोशे वेत्ज़मैन drupal.org/user/23 (उस uid को देखें ...) btw।

@chx मुझे आश्चर्य हुआ कि मुझे एक वरिष्ठ सदस्य के रूप में दिखाया गया है ... मैं एक बेहतर योगदानकर्ता बनने की कोशिश कर रहा हूं, लेकिन मुझे नहीं लगता कि मैं कभी मूल मोशे के स्तर तक बढ़ूंगा। संबंध मॉड्यूल के बारे में, मुझे पता है कि किसी के फीडबैक पर आधारित है (मैं नाम नहीं बताऊंगा) - मुझे उस समय वास्तव में इसका परीक्षण करने का अवसर नहीं मिला, और उस राय पर भरोसा किया। मैं वर्तमान में एक डी 7 परियोजना पर काम कर रहा हूं - मुझे लगता है कि मुझे इसकी आवश्यकता है इसलिए मैं अपनी अद्यतन राय यहां दे दूंगा जब मैं काम कर रहा हूं।
मोशे एशेल

2

वैकल्पिक रूप से, यदि आप एक कस्टम कार्यान्वयन पर काम कर रहे हैं और वापस संदर्भित करने का एक सीधा आगे रास्ता चाहते हैं, तो आप हुक कर सकते हैं nodeapi, saveऑपरेशन के लिए सुन सकते हैं और प्रोग्राम से संदर्भित नोड को अपडेट कर सकते हैं।




0

आप सामग्री निर्भरता मॉड्यूल का उपयोग कर सकते हैं ।

यह आपको टैब के माध्यम से उल्टा संदर्भ प्रदान करता है और निम्नलिखित मॉड्यूल का समर्थन करता है: नोड संदर्भ / इकाई संदर्भ


1
वास्तव में निश्चित नहीं है कि आपसी संदर्भ बनाने के लिए इसका उपयोग कैसे किया जा सकता है?
mpdonadio
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.