आप जो देख रहे हैं, वह है कि कैसे द्रुपाल एक रूप में खेतों का प्रतिनिधित्व करता है। यह इस तरह टूट जाता है:
- बाहरी सरणी के बच्चों के लिए
$form['field_back']['und']
(के 'und'
लिए 'undefined'
), विभिन्न भाषाओं में क्षेत्र का अनुवाद किया गया है। Drupal में, आप उपयोग करने के लिए सिफारिश कर रहे हैं LANGUAGE_NONE
के लिए 'und'
कोड में।
- प्रत्येक भाषा सरणी के अंदर के बच्चे, जैसे
$form['field_feedback']['und'][0]
, क्षेत्र के लिए विभिन्न प्रविष्टियों का प्रतिनिधित्व करते हैं। उदाहरण के लिए, अगर एक क्षेत्र असीमित प्रमुखता है, और वहाँ है कि क्षेत्र के लिए कई प्रविष्टियों रहे हैं, वे दिखाई देने लगेंगे $form['field_feedback']['und'][0]
, $form['field_feedback']['und'][1]
आदि
- अंत में आपके पास प्रपत्र इनपुट तत्व (ओं) हैं, क्षेत्र के मूल्यों के लिए स्वयं, उदा
$form['field_feedback']['und'][0]['value']
। इस स्थिति में, स्तंभ का नाम है value
, नोड संदर्भ फ़ील्ड प्रकार के लिए यह होगा nid
, और इसी तरह। यदि किसी फ़ील्ड में कई डेटा कॉलम जुड़े हैं, तो आप और भी बच्चों को देखेंगे। इन्हें टेक्स्ट फ़ील्ड / सेलेक्ट बॉक्स / स्पेशल विजेट द्वारा दर्शाया जाता है, और अंततः फ़ील्ड के लिए मूल्य प्रदान करेगा।
तथ्य यह है कि पदानुक्रम के दौरान विभिन्न तत्वों में शीर्षक जोड़े गए हैं, ईमानदार होना आकस्मिक है। फार्म पर उन शीर्षकों को प्रदर्शित किया जाता है या नहीं, यह रेंडर सरणी की विशेष सेटिंग्स के नीचे है जिसमें प्रत्येक #title
समाहित है।
वास्तविक रूप विजेट पर शीर्षक बदलने के लिए, आपको केवल सरणी के बहुत नीचे स्थित फ़ॉर्म तत्व के बारे में चिंता करने की आवश्यकता है: अर्थात वास्तविक इनपुट तत्व ( $form['field_feedback']['und'][0]['value']
, आदि)।
यह शायद ध्यान देने योग्य है कि किसी विशेष क्षेत्र के लिए उपयोग किया जाने वाला तत्व / विजेट काफी जटिल हो सकता है। यदि आपके पास पहले से नहीं है, तो आपको डेवेल मॉड्यूल स्थापित करना चाहिए और सरणी dpm()
का निरीक्षण करने के लिए फ़ंक्शन का उपयोग करना चाहिए $form
; यह आपको दिखाएगा कि आप जिस सरणी में लक्ष्य बनाने की कोशिश कर रहे हैं, वह सरणी कहां है।