थीम में क्षेत्र (Regions) जोड़ना
थीम में क्षेत्र (Regions) जोड़ने के लिए आवश्यक है:
- THEMENAME.info.yml फ़ाइल में क्षेत्र का मेटाडेटा जोड़ना।
- page.html.twig फ़ाइल को संपादित करना और नए क्षेत्रों को प्रिंट करना।
ध्यान दें. यदि आप अपनी थीम में कोई भी क्षेत्र घोषित करते हैं, चाहे केवल एक ही क्यों न हो, डिफ़ॉल्ट क्षेत्र अब लागू नहीं होंगे, और आपको उन सभी क्षेत्रों को घोषित करने की ज़िम्मेदारी होगी जिन्हें आप उपयोग करना चाहते हैं।
जो भी ब्लॉक उन क्षेत्रों में थे जो अब मौजूद नहीं हैं (क्योंकि आपने उन्हें परिभाषित नहीं किया) अब निष्क्रिय कर दिए जाएंगे — खासकर यदि आप THEMENAME.info.yml को संपादित करते हैं और drush cr के माध्यम से कैश को पुनर्निर्मित करते हैं, तो आपको प्रत्येक के लिए इस तरह का संदेश दिखाई देगा:
ब्लॉक themename_breadcrumbs को अमान्य क्षेत्र breadcrumb में असाइन किया गया था और उसे निष्क्रिय कर दिया गया।
यदि आप /admin/structure/block पर जाते हैं, तो सभी निष्क्रिय ब्लॉक्स सबसे ऊपर के क्षेत्र में सूचीबद्ध होंगे, जिन पर (disabled) का संकेतक होगा। आप या तो उन्हें खींच सकते हैं या "Region" ड्रॉपडाउन का उपयोग करके उन्हें पुनः असाइन कर सकते हैं या उन ब्लॉक्स को हटा सकते हैं जिनकी आपको अब आवश्यकता नहीं है।
सुनिश्चित करें कि आप page_top और page_bottom क्षेत्रों को बनाए रखते हैं। ये "छिपे हुए" क्षेत्र हैं, जिन्हें पेज के बिल्कुल ऊपर और नीचे की मार्कअप के लिए उपयोग किया जाता है, जैसे कि एनालिटिक्स या एडमिन टूलबार। आपको उन्हें THEMENAME.info.yml फ़ाइल में सूचीबद्ध करने की आवश्यकता नहीं है, बस उन्हें html.html.twig टेम्पलेट से न हटाएँ। मॉड्यूल उनके उपस्थित होने पर निर्भर हो सकते हैं।
अपने info फ़ाइल में क्षेत्र जोड़ना
THEMENAME.info.yml फ़ाइल में किसी भी नए क्षेत्रों की घोषणा करके प्रारंभ करें। क्षेत्र regions कुंजी के बच्चे के रूप में घोषित किए जाते हैं, जैसे:
regions: header: 'Header' content: 'Content' footer: 'Footer'
क्षेत्र कुंजी अल्फ़ान्यूमेरिक होनी चाहिए और इसमें अंडरस्कोर (_) शामिल हो सकते हैं। कुंजी एक अक्षर से शुरू होनी चाहिए। कुंजी कंप्यूटर का नाम है (जिसका आप कोड में उपयोग करते हैं), और मान एक मानव-पठनीय संस्करण है, जो एडमिन इंटरफ़ेस में प्रदर्शित होता है।
अपने टेम्पलेट्स में क्षेत्र जोड़ना
ताकि क्षेत्र उसमें रखी गई किसी भी सामग्री को प्रदर्शित कर सकें, आपको यह सुनिश्चित करना होगा कि आपके नए क्षेत्र आपके page.html.twig फ़ाइल में भी जोड़े गए हों। क्षेत्र Twig वेरिएबल्स के रूप में प्रस्तुत किए जाएंगे, जिनका नाम THEMENAME.info.yml फ़ाइल में उपयोग की गई कुंजी के अनुरूप होगा, जिसके आगे page. होगा।
उदाहरण:
header: 'Header'
...बन जाएगा:
{{ page.header }}
वे किसी भी अन्य Twig वेरिएबल की तरह व्यवहार करते हैं और आपके उपयोग के मामले के लिए उपयुक्त किसी भी मार्कअप में रखे जा सकते हैं।
(डिफ़ॉल्ट छिपे हुए क्षेत्रों का सिंटैक्स अलग है, नीचे देखें।)
डिफ़ॉल्ट क्षेत्र
डिफ़ॉल्ट क्षेत्रों की सूची के लिए page.html.twig डॉक्स देखें।
- page.header
- page.primary_menu
- page.secondary_menu
- page.highlighted
- page.help (डायनामिक हेल्प टेक्स्ट, मुख्यतः एडमिन पेजों के लिए)
- page.content (वर्तमान पेज की मुख्य सामग्री)
- page.sidebar_first
- page.sidebar_second
- page.footer
- page.breadcrumb
यदि आपकी थीम क्षेत्र घोषित नहीं करती है, तो Drupal इस डिफ़ॉल्ट सेट को मान लेगा।
ये क्षेत्र डिफ़ॉल्ट फ़ाइल core/modules/system/templates/page.html.twig द्वारा अपेक्षित होते हैं, साथ ही दो छिपे हुए क्षेत्रों page_top और page_bottom के साथ — यदि आप डिफ़ॉल्ट मानों को ओवरराइड करते हैं, तो भी आपको इन अंतिम दो को घोषित करने की आवश्यकता नहीं है, लेकिन Twig वेरिएबल्स {{page_top}} और {{page_bottom}} को html.html.twig टेम्पलेट में संरक्षित करना चाहिए।