2011-02-24 16 views
6

मुझे पता है कि ड्रूपल कोर रूपों को बदलने के लिए कुछ फ़ंक्शंस का उपयोग करना संभव है: hook_form_alter()। क्या हम इसे वेबफॉर्म मॉड्यूल के साथ बनाए गए ड्रूपल रूपों के साथ उपयोग कर सकते हैं?वेबफॉर्म रूपों में ड्रूपल फॉर्म बदलते हैं

उत्तर

0

मुझे पूरा यकीन नहीं है कि आप क्या करने का प्रयास कर रहे हैं, लेकिन चूंकि वेबफॉर्म मॉड्यूल एक सामग्री प्रकार बनाता है - वेबफॉर्म - आप पूरी तरह से व्यवस्थापक इंटरफ़ेस के माध्यम से वेबफॉर्म द्वारा बनाए गए फॉर्मों को बदल सकते हैं - नए इनपुट और इनपुट प्रकार जोड़ें, निर्दिष्ट करें कि वे आवश्यक हैं या नहीं आदि

उदाहरण के लिए, "हमसे संपर्क करें" फ़ॉर्म में जो भी इनपुट हो, वह हो सकता है - मूल ड्रूपल संपर्क फ़ॉर्म के विपरीत, आईआईआरसी के पास केवल एक ईमेल पता और टेक्स्टरेरा है।

+0

मैं php में डेटा कैप्चर करना चाहता हूं और जो कुछ भी मैं चाहता हूं उसे – Mamadou

+0

के बारे में बिल्कुल यकीन नहीं है। मुझे लगता है कि वेबफॉर्म को किसी भी नोड प्रकार में जोड़ा जा सकता है। – HerrSerker

0

हां, अगर किसी कारण से आपको वेबफॉर्म में बदलाव करने की आवश्यकता है जिसे आप वेबफॉर्म नोड संपादित करके नहीं कर सकते हैं, तो आप फॉर्म को बदलने के लिए hook_form_alter का भी उपयोग कर सकते हैं, क्योंकि वेबफॉर्म द्वारा बनाया गया है फॉर्म एपीआई

उस ने कहा, वेबफॉर्म के कुछ कोनों में चारों ओर पोक करें - यह पहले से ही फॉर्म के हिस्सों को गतिशील रूप से भरने या बदलने के लिए कई विकल्पों के साथ आता है।

2

आप hook_form_alter() का उपयोग कर सकते हैं, $form['submitted'] के माध्यम से तत्वों तक पहुंच सकते हैं।

6

तुम कर सकते हो,

तुम सिर्फ नोड के आईडी की जरूरत है और उसके बाद की तरह में hook_form_ <FORMID> _alter()

FORMID उत्पन्न आईडी का उपयोग <NODEID>

webform_client_form_ है

जहां NODEID नोड

की आईडी है, तो यदि आपके पास MyModule नामक मॉड्यूल है और आईडी 44 के साथ एक नोड है ज एक वेबफ़ॉर्म

function mymodule_form_webform_client_form_44_alter(&$form, &$form_state) { 
// code here; 
} 
14

है ड्रुपल 7 में, आप hook_form_alter() या hook_form_<formid>_alter() है, जो कभी आप पसंद करते हैं का उपयोग कर सकते। बस सुनिश्चित करें कि आपको नामकरण और पैरामीटर सही मिलते हैं। ड्रूपल 6 केवल hook_form_alter() का समर्थन करता है।

जब आप इन कार्यों को बनाते हैं, तो यह भी याद रखें कि जब तक आप कैश को फ्लश नहीं करते हैं तब तक ड्रूपल हमेशा उन पर नहीं उठा सकता है।

ध्यान देने योग्य एक और महत्वपूर्ण बात यह है कि यदि आप वेबफॉर्म फ़ील्ड में परिवर्तन करना चाहते हैं, तो आपको $form['submitted'] में परिवर्तन करना होगा। मैंने मूल रूप से $form['#node']->webform['components'] संपादित करने की कोशिश की गलती की, जिसका कोई प्रभाव नहीं पड़ा।

अधिक जानकारी यहां पाया जा सकता है: http://drupal.org/node/1558246

आशा मदद कर सकते हैं।

संबंधित मुद्दे