1.7. फ़ील्ड, एंटिटी: फ़ील्ड्स और एंटिटीज़ के साथ कार्य करना।
Drupal में Fields और Field UI जैसे शानदार मॉड्यूल मौजूद हैं, जो हमें किसी भी ऑब्जेक्ट (जैसे कि नोड्स, कमेंट्स, यूज़र्स, टैक्सोनॉमी टर्म्स) में विभिन्न फ़ील्ड्स जोड़ने की अनुमति देते हैं। ये ऑब्जेक्ट्स Entity मॉड्यूल द्वारा बनाए जाते हैं। Entity + Fields के संयोजन से आप अपनी साइट पर वास्तविक जीवन के ऑब्जेक्ट्स के बीच किसी भी प्रकार का संबंध (relationship) स्थापित कर सकते हैं।
उदाहरण के लिए, आपके पास एक कंपनी है, कंपनी के कई विभाग (departments) हैं, और प्रत्येक विभाग में कर्मचारी (employees) हैं। इसके लिए आप Department नामक एक टैक्सोनॉमी शब्दावली (vocabulary) बना सकते हैं, उसमें कंपनी के सभी विभाग जोड़ सकते हैं, फिर एक Employee नामक कंटेंट टाइप बना सकते हैं और उसमें एक फ़ील्ड जोड़ सकते हैं जो उस टैक्सोनॉमी से लिंक हो।
इस प्रकार हमें केवल विभागों और कर्मचारियों के पेज ही नहीं मिलेंगे, बल्कि एक आपस में जुड़ा हुआ पूरा कैटलॉग मिलेगा। इस पाठ में हम ऐसा ही एक डायरेक्टरी बनाएँगे, लेकिन अभी यह समझना ज़रूरी है कि Drupal हमें विभिन्न ऑब्जेक्ट्स को जल्दी से जोड़ने और उनके बीच संबंध बनाने की सुविधा देता है।
पाठ शुरू करने से पहले सुनिश्चित करें कि आपके पास ये मॉड्यूल सक्षम (enabled) हैं: Entity, Field, Field UI, Taxonomy।
अब एक Taxonomy Vocabulary “Department” बनाएँ (हमने टैक्सोनॉमी पहले इस पाठ में सीखी थी):
अब Employee नाम का एक कंटेंट टाइप बनाएँ (हमने पहले भी कंटेंट टाइप बनाना सीखा था)। इसमें Title फ़ील्ड का नाम बदलकर Full name रखें:
अब Manage Fields पर क्लिक करें:
Manage fields
इस टैब में हम अपने कंटेंट टाइप (या किसी भी अन्य एंटिटी जैसे — कमेंट्स, यूज़र्स आदि) में नए फ़ील्ड्स जोड़ सकते हैं। अब एक फ़ील्ड जोड़ते हैं जो “Departments” टैक्सोनॉमी शब्दावली से जुड़ा हो:
प्रत्येक कर्मचारी का एक Position भी होता है, इसलिए एक नया Text टाइप का फ़ील्ड जोड़ें जिसका नाम “Position” रखें।
हम एक Birthday फ़ील्ड भी जोड़ सकते हैं (ध्यान दें कि Datetime मॉड्यूल सक्षम हो):
डेटा टाइप में “Date only” विकल्प चुनना सबसे अच्छा रहेगा:
Body फ़ील्ड का नाम बदलकर About Me रखें:
लेबल का नाम भी बदलें:
अब हमने प्रत्येक कर्मचारी के लिए कुछ अतिरिक्त फ़ील्ड्स जोड़ दिए हैं (अगले पाठ में हम फ़ोटो अपलोड करने के लिए Photo फ़ील्ड जोड़ेंगे)। अब जब हम किसी कर्मचारी को जोड़ने जाएंगे, तो हमें ये सभी अतिरिक्त फ़ील्ड्स दिखाई देंगी।
यदि आप नोड एडिटिंग फ़ॉर्म में फ़ील्ड्स का क्रम बदलना चाहते हैं, तो Manage form display टैब में जाएँ।
Manage form display
यह टैब उस फ़ॉर्म को नियंत्रित करता है जहाँ नोड जोड़ते समय जानकारी दर्ज की जाती है। और जिस क्रम में डेटा पेज पर प्रदर्शित होगा, उसे Manage display टैब से सेट किया जा सकता है।
Manage display
हम “Department” फ़ील्ड को टीज़र व्यू से छिपा सकते हैं क्योंकि विभाग पेज पर केवल उसी विभाग के कर्मचारी दिखाई देंगे। लेकिन पूर्ण नोड (Full node) व्यू में “Department” फ़ील्ड दिखाएँ ताकि उपयोगकर्ता उस विभाग के पेज पर वापस जा सके।
साथ ही, Birthday की तारीख का फ़ॉर्मेट बदलें ताकि केवल दिनांक (date) दिखे, समय (time) नहीं। इसके लिए गियर आइकन पर क्लिक करें और वांछित फ़ॉर्मेट चुनें:
हर बदलाव के बाद सेव करना न भूलें। यही प्रक्रिया Default डिस्प्ले के लिए भी करें, ताकि यदि आप “Full content” नहीं चुनते हैं तो “Default” आउटपुट उपयोग हो।
अब हम कर्मचारियों को जोड़ सकते हैं:
यदि आप “Departments” टैक्सोनॉमी शब्दावली के संपादन पेज पर जाएँ, तो वहाँ भी आप Fields जोड़ने के टैब देखेंगे:
इस प्रकार, आप प्रत्येक विभाग के लिए अतिरिक्त फ़ील्ड्स जोड़ सकते हैं — जैसे कर्मचारियों की संख्या, विभाग का लोगो आदि।
आप यही प्रक्रिया साइट के यूज़र्स के साथ भी कर सकते हैं। इसके लिए जाएँ:
/admin/config/people/accounts
अब जब आप जानते हैं कि आप Drupal में हर चीज़ में फ़ील्ड्स जोड़ सकते हैं, तो आप यह तय कर सकते हैं कि आपके लिए कौन-सा तरीका बेहतर है — टैक्सोनॉमी, यूज़र्स या नोड्स का उपयोग करना। उदाहरण के लिए, टैक्सोनॉमी डिक्शनरी की बजाय आप Department को एक कंटेंट टाइप के रूप में भी बना सकते हैं और Employee के साथ उसका संबंध Entity Reference मॉड्यूल की मदद से जोड़ सकते हैं।
Drupal में फ़ील्ड्स जोड़ने की क्षमता और Views मॉड्यूल के संयोजन से वेबसाइट बनाने की अनंत संभावनाएँ खुल जाती हैं। इसलिए यदि अभी कुछ बातें स्पष्ट नहीं हैं, तब भी आप अगले पाठ की ओर बढ़ सकते हैं।