
Тема — это набор файлов, которые определяют уровень представления. Вы также можете создать одну или несколько «подтем» или вариантов темы. Обязателен только файл .info.yml, но большинство тем и подтем будут использовать и другие файлы. На этой странице перечислены файлы и папки, которые находятся в типичной теме или подтеме.


थीम में क्षेत्र (Regions) जोड़ने के लिए आवश्यक है:
- THEMENAME.info.yml फ़ाइल में क्षेत्र का मेटाडेटा जोड़ना।
- page.html.twig फ़ाइल को संपादित करना और नए क्षेत्रों को प्रिंट करना।
ध्यान दें. यदि आप अपनी थीम में कोई भी क्षेत्र घोषित करते हैं, चाहे केवल एक ही क्यों न हो, डिफ़ॉल्ट क्षेत्र अब लागू नहीं होंगे, और आपको उन सभी क्षेत्रों को घोषित करने की ज़िम्मेदारी होगी जिन्हें आप उपयोग करना चाहते हैं।


यह डॉक्यूमेंटेशन थीम्स के लिए है। मॉड्यूल्स की जानकारी देखें Drupal 8 मॉड्यूल में स्टाइलशीट्स (CSS) और JavaScript (JS) जोड़ना अनुभाग में।
Drupal 8 में स्टाइलशीट्स (CSS) और JavaScript (JS) मॉड्यूल्स (कोड) और थीम्स दोनों के लिए एक ही सिस्टम के जरिए लोड किए जाते हैं: लाइब्रेरीज़।
स्पष्टता के लिए, ये निर्देश केवल थीम्स के लिए हैं और मॉड्यूल्स पर लागू नहीं होते।


Twig — यह PHP के लिए एक टेम्पलेट इंजन है, जो Symfony2 फ्रेमवर्क का हिस्सा है।
Drupal 8 में Twig, PHPTemplate को डिफ़ॉल्ट टेम्पलेट इंजन के रूप में बदल देता है। इस बदलाव के परिणामस्वरूप सभी theme_* फ़ंक्शन्स और *.tpl.php फ़ाइलें, जो PHPTemplate पर आधारित थीं, उन्हें *.html.twig टेम्पलेट फ़ाइलों से बदल दिया गया।


Drupal आपको सभी टेम्पलेट्स को ओवरराइड करने की अनुमति देता है, जो HTML मार्कअप उत्पन्न करने के लिए उपयोग किए जाते हैं, ताकि आप पूरी तरह नियंत्रित कर सकें कि आपकी कस्टम थीम में आउटपुट के रूप में कौन-सा मार्कअप दिखे। पेज के हर एलिमेंट के लिए टेम्पलेट मौजूद हैं — उच्च-स्तरीय HTML से लेकर छोटे फ़ील्ड्स तक।
टेम्पलेट्स ओवरराइड करना
आप Drupal के कोर टेम्पलेट्स को ओवरराइड कर सकते हैं, अपनी थीम फ़ोल्डर में उन टेम्पलेट्स को जोड़कर जो विशिष्ट नामकरण सम्मेलनों का पालन करते हों।


Drupal कुछ निश्चित नामकरण सम्मेलनों (naming conventions) के आधार पर टेम्पलेट्स लोड करता है। यह आपको अपने थीम में टेम्पलेट जोड़कर और उन्हें विशिष्ट नाम देकर टेम्पलेट्स को ओवरराइड करने की अनुमति देता है।
टेम्पलेट जोड़ने के बाद, आपको कैश को पुनर्निर्माण (rebuild) करना होगा ताकि Drupal आपके नए टेम्पलेट को पहचान सके।


Twig के बारे में
Twig एक PHP-आधारित कंपाइल्ड टेम्पलेट भाषा है। जब आपकी वेब-पेज रेंडर होती है, तो Twig इंजन टेम्पलेट लेता है और उसे एक “कंपाइल्ड” PHP टेम्पलेट में बदल देता है, जो सुरक्षित डायरेक्टरी sites/default/files/php/twig में संग्रहीत होता है। कंपाइलेशन केवल एक बार किया जाता है, टेम्पलेट फाइलें पुन: उपयोग के लिए कैश की जाती हैं और Twig कैश साफ़ होने पर फिर से कंपाइल की जाती हैं।


Twig टेम्पलेट फ़ाइल के साथ काम करते समय अधिकांश वेरिएबल्स टेम्पलेट फ़ाइल की टिप्पणियों (comments) में प्रलेखित होते हैं। हालाँकि, जब ऐसा नहीं होता, या जब थीम्स या मॉड्यूल नए वेरिएबल्स जोड़ते हैं, तो हमें सभी उपलब्ध वेरिएबल्स को खोजने का तरीका चाहिए। Twig टेम्पलेट फ़ाइलों में वेरिएबल्स का पता लगाने और जाँच करने के लिए dump()
फ़ंक्शन प्रदान करता है।
यदि डिबगिंग सक्षम नहीं है तो dump()
फ़ंक्शन कोई आउटपुट प्रदर्शित नहीं करेगा। जानें, Twig डिबगिंग कैसे सक्षम करें।


Twig टेम्पलेट इंजन एक डिबगिंग टूल प्रदान करता है।
Drupal 8 की реализация भी एक अतिरिक्त टूल जोड़ती है, जो आपको यह पता लगाने की अनुमति देती है कि कौन सा टेम्पलेट मार्कअप आउटपुट कर रहा है।
चेतावनी: Twig डिबगिंग सक्षम करने से साइट के कुछ हिस्से टूट सकते हैं, विशेष रूप से Views। इस समस्या को देखें।
डिबग सक्षम करें
आप Twig डिबगिंग को sites/default/services.yml में सक्षम करते हैं।


Twig обычно как работает
По умолчанию Twig шаблонный движок компилирует шаблоны в PHP-код и сохраняет скомпилированный код в памяти. Такой скомпилированный код не удобен для разработки, потому что изменения в Twig-шаблонах не сразу отражаются на сайте Drupal.
После того как Twig закончил с разметкой, в Render API включается дополнительный уровень кеширования. Он берет HTML, сгенерированный Twig, и кэширует его так, что Twig больше не участвует в повторных запросах страницы. Поэтому параметры отладки Twig в этом случае игнорируются.
