Drupal 7 में एंटिटीज


13

Drupal 7 में Drupal Entities क्या हैं? मैं समझता हूं कि ड्रुपल कॉमर्स ने उत्पादों को एक इकाई के रूप में बनाया है। मुझे पता है कि अब एक कोर एंटिटी एपीआई है और एंटिटी एपीआई के लिए एक कंट्रीब्यू एड है।

मेरे पास इस वर्ष कुछ परियोजनाएं हैं जहां मैं Drupal 7, NoSQL और संभवतः Entity API का उपयोग करना चाहूंगा, अगर यह इसके लिए कहता है- लेकिन मुझे यह देखने में परेशानी हो रही है कि इसकी आवश्यकता कहां होगी।

यह मानते हुए कि आप एक नौकरी लिस्टिंग साइट का निर्माण कर रहे थे- एक नौकरी जरूरी नहीं कि नोड सामग्री की तरह हो, क्या आप ऐसा कर सकते हैं?

इसके अतिरिक्त, क्या आप अभी भी इकाई के साथ मॉड्यूल से बात करने की क्षमता प्राप्त कर सकते हैं और यह कैसे किया जाता है? जैसे, एक नौकरी पोस्टिंग इकाई को पथौतो के साथ उतारा जा रहा है और दृश्य में और साथ ही एक्सएमएल साइटमैप में प्रकट किया गया है।

जवाबों:


9

एक इकाई डेटा संरचना है जो हुक_एंटिटी_इन्फो () द्वारा परिभाषित की जाती है और इसे फिल्डेबल किया जा सकता है, जिसका अर्थ है कि आप इनमें फ़ील्ड जोड़ सकते हैं।

Drupal 7 Core में, नोड्स, उपयोगकर्ता, टिप्पणियाँ, Vocabularies और शर्तें संस्थाएं हैं।

कॉन्ट्रिब में, कई और भी हैं, उदाहरण के लिए निजी संदेश और वाणिज्य उनमें से एक दर्जन की तरह;)

हालांकि, मुझे लगता है कि नौकरी की पोस्टिंग पूरी तरह से नोड्स के रूप में ठीक हैं :) एंटिटीज़ में स्वचालित रूप से पथ्युटो (टोकन), दृश्य आदि एकीकरण नहीं है।


9

एंटिटी नोड्स, उपयोगकर्ताओं आदि से ऊपर एक मेटा स्तर हैं।

अनिवार्य रूप से यदि आप D6 को देखते हैं, तो इस प्रकार की चीज़ों में बहुत सारे डुप्लिकेट मॉड्यूल और कार्यक्षमता हैं। उदाहरण के लिए, उपयोगकर्ताओं को cck फ़ील्ड्स को संलग्न करने के लिए और वर्गीकरण की शर्तों के लिए मॉड्यूल हैं।

D7 में इनका इलाज उसी तरह से करने का निर्णय लिया गया था, जैसा कि वास्तुशिल्प में है, इसलिए यदि आपके पास एक मॉड्यूल है जो संस्थाओं के लिए कुछ करता है, तो इसे नोड्स, शब्दों और उपयोगकर्ताओं के लिए काम करना चाहिए।

Drupal के पिछले संस्करणों में, कॉमर्स जैसे एक मॉड्यूल के पास दो विकल्प होते, एक कस्टम नोड प्रकार बनाने के लिए, या Drupal के आंतरिक सिस्टम से पूरी तरह से बाहर जाने और अपनी खुद की प्रकार को परिभाषित करने के लिए। संस्थाओं के साथ, किसी उत्पाद को एक प्रकार की वस्तु के रूप में वर्णित करना संभव है, जो मौजूदा प्रकारों से अलग है, लेकिन फिर भी उनके मेकअप में फ़ील्ड जैसी सुविधाओं का लाभ उठाता है।

यह मानते हुए कि आप एक नौकरी लिस्टिंग साइट का निर्माण कर रहे थे- एक नौकरी जरूरी नहीं कि नोड सामग्री की तरह हो, क्या आप ऐसा कर सकते हैं?

आप ऐसा कर सकते हैं। मुझे लगता है कि आपको चीजों की संस्थाओं को भी जल्दी बनाने से सावधान रहना चाहिए। अक्सर कस्टम नोड प्रकार अभी भी वही करेंगे जो आप चाहते हैं। क्या एक नौकरी नोड के लिए एक अलग प्रकार की सूची है, या यह कुछ विशेष गुणों के साथ एक नोड है?


3

मैंने अपनी कुछ परियोजनाओं में उन चीज़ों के लिए संस्थाओं का उपयोग करना शुरू कर दिया है जो वास्तव में "सामग्री" नहीं थीं। हम उन चीजों के लिए उपयोग करते हैं जहां हम वास्तव में परवाह नहीं करते हैं जब यह प्रकाशित हुआ था या लेखक कौन था।

यदि आप अपने स्वयं के कस्टम मॉड्यूल विकसित कर रहे हैं, तो संस्थाओं को परिभाषित करने के वास्तविक लाभ हैं। आपको एक अच्छा टेबल स्ट्रक्चर और ड्रुपल नेकी (फील्डबिलिटी, व्यू इंटीग्रेशन, ...) का एक गुच्छा मुफ्त में मिलता है। अपनी खुद की कस्टम टेबल संरचना बनाने या अपनी आवश्यकताओं के लिए नोड प्रकार को फिर से तैयार करने के लिए और अधिक नहीं। इसके अलावा, मुझे यह पसंद है कि वे कितने हल्के हैं ताकि प्रदर्शन-वार इकाइयां बेहतर हों। यदि आपने D6 में कोई प्रश्न किया है, तो आप समझ जाएंगे कि मेरा क्या मतलब है।


1

नोड्स, उपयोगकर्ता, टैक्सोनोमी ड्रुपल संस्थाओं के उदाहरण हैं। एक इकाई की मुख्य विशेषता यह है कि इसे अन्य संस्थाओं को सौंपा जा सकता है: एक उपयोगकर्ता नोड के साथ जुड़ा हुआ है, और एक वर्गीकरण को नोड्स और उपयोगकर्ताओं को सौंपा जा सकता है।

यदि आप नौकरी के रूप में जो वर्णन करते हैं, वह उपयोगकर्ता, या नोड को सौंपा जा सकता है, तो मैं इसे एक इकाई बनाऊंगा। यदि आप जो "नौकरी" कर सकते हैं वह केवल एक सामग्री प्रकार है, तो मैं इसे एक इकाई नहीं बनाऊंगा।


1

यदि आप यह कहना चाहते हैं कि वास्तव में कुछ ही शब्दों में, आप कह सकते हैं कि एन एंटिटी सिर्फ आंकड़ों का एक टुकड़ा है जो ड्रुपल को पता है, और यह कहीं भी स्टोर किया जा सकता है।

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