
इस ट्यूटोरियल में, हम देखेंगे कि Drupal 8 में कस्टम मॉड्यूल के माध्यम से ब्लॉक्स को प्रोग्रामेटिकली कैसे आउटपुट किया जाता है।
कोड उदाहरण GitHub पर देखे जा सकते हैं:
https://github.com/levmyshkin/drupalbook8
आइए हम एक PHP क्लास वाली फ़ाइल जोड़ने से शुरुआत करें, इस तरह Drupal में कस्टम मॉड्यूल के माध्यम से ब्लॉक्स बनाए जाते हैं। फ़ाइल बनाने की प्रक्रिया वही है जैसा हमने पेज के लिए किया था, जैसा कि हम यहाँ करते हैं:


इस ट्यूटोरियल में, हम Drupal Form API के साथ काम करेंगे और मॉड्यूल के लिए एक सेटिंग्स फॉर्म बनाएंगे। हमने पहले ही पेज और ब्लॉक को प्रदर्शित करने के लिए मॉड्यूल बनाए हैं, अब हम एक कॉन्फ़िगरेशन फॉर्म बनाएंगे जिसमें हम कंडीशनल सर्विस से कनेक्ट करने के लिए डेटा स्टोर करेंगे। मान लीजिए कि हमें साइट पर API Key और API Client ID स्टोर करना है, उदाहरण के लिए, Google Maps API के लिए।
कोड के उदाहरण आप github पर देख सकते हैं:
https://github.com/levmyshkin/drupalbook8


पिछले पाठों में हमने जाना कि हुक क्या होते हैं, इस पाठ में हम hook_form_alter() हुक्स के साथ अभ्यास करेंगे और मौजूदा फॉर्म में कार्यक्षमता जोड़ेंगे।
कोड के उदाहरण आप github पर देख सकते हैं:
https://github.com/levmyshkin/drupalbook8
इस पाठ में हम हुक्स को व्यवहार में देखना शुरू करेंगे, बाद में हम हुक्स पर वापस लौटेंगे और कुछ अन्य उदाहरण देखेंगे। अब, चलिए hook_form_alter() से शुरू करते हैं।


इस लेख में हम Drupal 8 में Form API को समझना जारी रखेंगे और एक मल्टी-स्टेप फॉर्म बनाएंगे। हम पहले ही मॉड्यूल के लिए सामान्य कॉन्फ़िगरेशन फॉर्म बना चुके हैं, मल्टी-स्टेप फॉर्म उसी तरह बनाया जाता है, जिसमें $form_state का उपयोग डेटा को फॉर्म स्टेप्स के बीच स्टोर करने के लिए किया जाता है।
कोड के उदाहरण आप github पर देख सकते हैं:
https://github.com/levmyshkin/drupalbook8
एक मल्टी-स्टेप फॉर्म के लिए आपको एक फॉर्म क्लास जोड़ने की आवश्यकता होती है:
/modules/custom/drupalbook/src/Form/MultiStepForm.php


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


जब आप एक साइट से दूसरी साइट पर एक कॉन्फ़िगरेशन इम्पोर्ट करते हैं, तो कुछ कॉन्फ़िगरेशन कंटेंट को आउटपुट करने के लिए आवश्यक होते हैं, लेकिन कॉन्फ़िगरेशन कंटेंट खुद में कोई डेटा नहीं होता। इस ट्यूटोरियल में, हम समझेंगे कि एक साइट से दूसरी साइट पर ब्लॉक्स, नोड्स और टैक्सोनॉमी टर्म्स को कैसे ट्रांसफर किया जा सकता है।


अक्सर, 3rd पार्टी सेवाओं तक पहुँच को डेव और लाइव इंस्टेंसेस पर अलग-अलग किया जाता है। इसे कॉन्फ़िगरेशन्स के माध्यम से करने के लिए, आपको Configuration Split मॉड्यूल का उपयोग करना होगा:
https://www.drupal.org/project/config_split
Config Split मॉड्यूल को सक्षम करने के बाद, आप इंस्टेंस के लिए फोल्डर निर्दिष्ट कर सकेंगे। आइए हम Configuration मॉड्यूल के Configuration Split सेटिंग पेज पर जाएं:
/admin/config/development/configuration/config-split


इस लेख में हम समझेंगे कि Drupal में फील्ड्स कैसे काम करती हैं, इन्हें क्यों आवश्यकता होती है, और फील्ड्स कैसे Drupal में साइटों के त्वरित विकास में मदद करती हैं।
हम पहले ही पिछले लेखों में फील्ड्स के साथ काम कर चुके हैं:


इस ट्यूटोरियल में हम देखेंगे कि Link मॉड्यूल का Field Widget कैसे काम करता है। यह एक समीक्षा लेख है, इसलिए यदि आप अपना Field Widget लिखना शुरू करना चाहते हैं, तो कृपया निम्नलिखित लेखों पर जाएं।
पिछले पाठ में हमने नोड्स और ब्लॉक्स के लिए Link फील्ड जोड़े थे। अब हम देखेंगे कि Link फील्ड का फॉर्म किस प्रकार से बनता है।
हम पहले ही Drupal में PHP क्लासेस के ऑटोलोडिंग से परिचित हो चुके हैं, और फील्ड्स के लिए एक WidgetBase फील्ड विजेट क्लास भी है:
core/lib/Drupal/Core/Field/WidgetBase.php


इस लेख में हम Field Formatters पर विचार करेंगे, जो हमें फील्ड्स की डिस्प्ले को संपादित करने और पेज पर उन्हें प्रदर्शित करने की अनुमति देते हैं।
पिछले लेखों में, हमने Link फील्ड टाइप बनाया था, इस लेख में हम देखेंगे कि ये फील्ड्स पेज पर कैसे प्रदर्शित होते हैं और इसके लिए कौन सा क्लास जिम्मेदार है। प्रत्येक फील्ड जिसे आप Drupal के माध्यम से जोड़ते हैं, उसे पेज पर प्रदर्शित किया जा सकता है और पेज Manage display पर इसके सेटिंग्स को संपादित किया जा सकता है।
