3.6. Webforms — एक शक्तिशाली फ़ॉर्म बिल्डर।
इस वीडियो में हम Drupal के शक्तिशाली फ़ॉर्म बिल्डर Webform के साथ काम करना सीखेंगे। चलिए मॉड्यूल्स पेज पर चलते हैं। Webforms बनाने के लिए हमें Webform और Webform UI मॉड्यूल्स को सक्षम (enable) करना होगा। यदि आप Webform को नोड पेज के रूप में प्रदर्शित करना चाहते हैं, तो आपको Webform Node मॉड्यूल की भी आवश्यकता होगी।
Drupal 6 और 7 में, Webform नोड पेजों के माध्यम से काम करता था — एक Webform को Webform कंटेंट टाइप के साथ जोड़ा जाता था। लेकिन Drupal 8 और उसके बाद के संस्करणों में, अब एक अलग नोड पेज की आवश्यकता नहीं है, क्योंकि प्रत्येक Webform का अपना स्वतंत्र पेज होता है, और इसे किसी भी पेज पर ब्लॉक के रूप में प्रदर्शित किया जा सकता है।
एक बार जब Webform मॉड्यूल सक्षम हो जाता है, तो हम नए वेबफॉर्म बनाना शुरू कर सकते हैं।
यदि आपने Webform Node मॉड्यूल सक्षम किया है, तो नया Webform बनाने का लिंक यहाँ मिलेगा: Content → Add content → Webform। नए पेज पर Title और Description जोड़ें। आप चाहें तो Form फ़ील्ड में मौजूदा Webform चुन सकते हैं, या इसे खाली छोड़कर नया Webform बना सकते हैं।
/node/add/webform
फ़ॉर्म बनाने के लिए, मेनू में जाएँ: Structure → Webforms, और फिर उसे नोड पेज में एम्बेड करें।
अभी हमारे पास केवल एक डिफ़ॉल्ट संपर्क फ़ॉर्म (Contact form) है, लेकिन चलिए एक नया बनाते हैं ताकि हम Webform के फ़ील्ड्स को बेहतर समझ सकें:
/admin/structure/webform
अब हम अपने नए फ़ॉर्म में तत्व (Elements) जोड़ सकते हैं:
Text field – Our Name
Phone field – Phone
Webform मॉड्यूल Drupal के Fields API का उपयोग करता है। इसका अर्थ है कि आप किसी भी Entity के लिए उपलब्ध फ़ील्ड्स का उपयोग कर सकते हैं — जैसे नोड्स, ब्लॉक्स, टैक्सोनॉमी टर्म्स या अन्य Entities पर प्रयुक्त फ़ील्ड्स।
किसी भी फ़ील्ड को संपादित (Edit) करने पर, आपको बहुत सारी सेटिंग्स दिखाई देंगी। आप निर्भर (dependent) फ़ील्ड्स भी बना सकते हैं — यानी किसी फ़ील्ड का प्रदर्शन दूसरे फ़ील्ड के मान पर निर्भर हो। उदाहरण के लिए, यदि आपकी संपर्क फ़ॉर्म में "कानूनी संस्था" या "व्यक्तिगत" विकल्प हैं, तो आप प्रत्येक चयन के अनुसार अलग-अलग फ़ील्ड दिखा सकते हैं।
आप Regular Expressions का उपयोग करके फ़ील्ड वेलिडेशन भी कर सकते हैं। साथ ही, कस्टम मॉड्यूल में hook_form_alter()
के माध्यम से प्रोग्रामेटिक वेलिडेशन भी जोड़ा जा सकता है।
आप फ़ील्ड्स के लिए कस्टम क्लासेज़ सेट कर सकते हैं — उदाहरण के लिए, यदि आप Bootstrap का उपयोग कर रहे हैं, तो आप फ़ील्ड Wrapper में कॉलम क्लास जैसे col-md-6
जोड़ सकते हैं ताकि फ़ील्ड्स दो कॉलम लेआउट में संरेखित हों।
Form Display सेक्शन में, आप यह कॉन्फ़िगर कर सकते हैं कि लेबल दिखाना है या नहीं, फ़ील्ड के पहले या बाद में विवरण जोड़ना है, Placeholder निर्धारित करना है, या फ़ील्ड की न्यूनतम और अधिकतम लंबाई सेट करनी है।
हमें अभी एक Email फ़ील्ड जोड़नी है ताकि हम भेजने वाले को उत्तर दे सकें, और एक Textarea फ़ील्ड संदेश की सामग्री के लिए।
Webform सेटिंग्स
- आप एक कस्टम संदेश निर्धारित कर सकते हैं जो फ़ॉर्म के न चलने पर प्रदर्शित होगा।
- Submit बटन का टेक्स्ट बदल सकते हैं, और लेआउट क्लासेज़ जोड़ सकते हैं।
- Wizard settings में, बहु-पृष्ठ फ़ॉर्म (multi-page forms) के लिए Next / Previous बटन के लेबल बदल सकते हैं।
- अन्य सेटिंग्स का विवरण यहाँ किया जा सकता है।
- Thank you message सेटिंग्स में, सबमिट करने के बाद उपयोगकर्ता को दिखाया जाने वाला संदेश बदला जा सकता है।
- Webform को किसी भी कॉलम (जैसे बाएँ साइडबार) में ब्लॉक के रूप में प्रदर्शित किया जा सकता है।
- Webform में Notifications सेटिंग्स के माध्यम से ईमेल सूचनाएँ (email notifications) कॉन्फ़िगर की जा सकती हैं।