मैं यह जानने की कोशिश कर रहा हूं कि सीखने के उद्देश्यों के लिए फ़ील्ड में नोड्स कैसे मैप किए जाते हैं। यह कैसे किया जाता है?ड्रूपल 7 नोड -> डाटाबेस में फ़ील्ड मैपिंग
उत्तर
ड्रूपल 7 में आपके पास संस्थाएं और फ़ील्ड हैं; क्षेत्र इकाइयों से जुड़े हुए हैं। एक नोड एक इकाई का कार्यान्वयन होता है (नोड मॉड्यूल hook_entity_info()
और अन्य ऐसे हुक लागू करता है) ताकि इसमें फ़ील्ड हो सकें।
सभी क्षेत्र/संस्था रिलेशनल डेटा तालिकाओं field_data_field_x
और field_revision_field_x
या इसी तरह में संग्रहित है (फ़ील्ड डेटा के उत्तरार्द्ध संभावित भंडारण संशोधन करता है, तो नोड संशोधन लागू किए गए हैं)।
entity_id
उन तालिकाओं में कॉलम नोड की आईडी है, और bundle
नोड की सामग्री प्रकार है। revision_id
नोड की संशोधन आईडी है, फिर नोड संशोधन पुन: सक्षम होने पर केवल वास्तव में उपयोगी है।
अद्यतन
Drupal शब्दावली में किसी सामग्री प्रकार एक bundle
और bundle
रों संस्थाओं से जुड़े होते हैं (इस मामले node
इकाई में) है। जब आप कोई नई सामग्री प्रकार बनाते हैं तो यह node_type
तालिका में संग्रहीत हो जाता है, और जब कैश साफ़ हो जाते हैं (जो सभी मॉड्यूल पर hook_entity_info
को आमंत्रित करता है) node_entity_info()
फ़ंक्शन सामग्री प्रकारों से बंडलों की एक सूची बनाता है (बिट में एक नज़र डालें वह कार्य जो foreach (node_type_get_names() as $type => $name) {
से शुरू होता है, node_type_get_names
सभी सामग्री प्रकारों की एक सूची प्राप्त करता है)।
जैसा ऊपर चर्चा की गई है, उपरोक्त क्षेत्रों को इकाइयों से जोड़ा जा सकता है, इसलिए फ़ील्ड bundle
के डेल्टा (यदि आपको पसंद है) के साथ नोड्स से जोड़ा जा सकता है।
GUI कार्यान्वयन hook_entity_info में एक सामग्री प्रकार कैसे बनाया जाता है? मैं समझता हूं कि फील्ड डेटा कैसे संग्रहीत होता है, लेकिन फ़ॉर्म कैसे बनाया जाता है? –
क्या यह field_config_instance है जो परिभाषित करता है कि कौन से फ़ील्ड किसके साथ जाते हैं? –
@ChrisMuench: अगर मैंने आपको किसी भी स्पष्टीकरण की आवश्यकता है तो मुझे जवाब बता दिया गया है कि अगर आप कोर मॉड्यूल के अंदर घूमते नहीं हैं तो यह काफी जटिल है! – Clive