logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

6.6. Drupal में टेम्पलेट्स के साथ काम करना। Drupal कोर में कौन-कौन से टेम्पलेट्स होते हैं।

17/10/2025, by Ivan

Menu

हम पहले ही देख चुके हैं कि Drupal में Twig बिल्ट-इन आता है और इसे कैसे उपयोग किया जाता है। इस लेख में, हम Drupal टेम्पलेट्स के साथ काम करना सीखेंगे — Drupal की Stable थीम में कौन-कौन से टेम्पलेट्स होते हैं, उन्हें कैसे ओवरराइड किया जा सकता है, और विभिन्न Drupal एंटिटीज़ के टेम्पलेट्स को कैसे पुनर्परिभाषित (redefine) किया जा सकता है।

तो चलिए शुरू करते हैं Stable थीम के टेम्पलेट्स से। Stable थीम की templates फ़ोल्डर में जाएँ:

Drupal 8 में टेम्पलेट्स

टेम्पलेट्स को उनकी कार्यात्मक श्रेणी (functional category) के अनुसार विभाजित किया गया है:

/core/themes/stable/templates/admin — Views UI, प्रशासनिक पेजों, संदेशों और रिपोर्टों के टेम्पलेट्स।
/core/themes/stable/templates/block — ब्लॉक टेम्पलेट्स।
/core/themes/stable/templates/content — नोड, टिप्पणी (comment), टैक्सोनॉमी टर्म, RSS आइटम और सर्च रिज़ल्ट्स के टेम्पलेट्स।
/core/themes/stable/templates/content-edit — एडिटिंग फॉर्म और फ़िल्टर टेम्पलेट्स।
/core/themes/stable/templates/dataset — फ़ोरम, RSS चैनल, तालिकाओं और लिस्ट (ul) के टेम्पलेट्स।
/core/themes/stable/templates/field — विभिन्न प्रकार के फ़ील्ड टेम्पलेट्स।
/core/themes/stable/templates/form — फ़ॉर्म एलिमेंट्स (विभिन्न प्रकार के फ़ील्ड्स) के टेम्पलेट्स।
/core/themes/stable/templates/layout — पेज संरचना (page.html.twig), रीजन, और मुख्य HTML टेम्पलेट (html.html.twig) जो अन्य सभी टेम्पलेट्स को लोड करता है।
/core/themes/stable/templates/misc — RSS, RDF मार्कअप आइकन, Drupal संदेश और प्रोग्रेस बार के टेम्पलेट्स।
/core/themes/stable/templates/navigation — मेनू, बुक मॉड्यूल, पेजर, टूलबार, वर्टिकल टैब्स और ब्रेडक्रंब्स के टेम्पलेट्स।
/core/themes/stable/templates/user — उपयोगकर्ता पेज, उपयोगकर्ता नाम, और फ़ोरम पोस्ट के लेखक की जानकारी वाले टेम्पलेट्स।
/core/themes/stable/templates/views — Views मॉड्यूल के विभिन्न एलिमेंट्स के टेम्पलेट्स।

जैसा कि आप देख सकते हैं, Stable थीम Drupal के टेमिंग सिस्टम के लिए बहुत विस्तृत टेम्पलेट सेट प्रदान करती है। इन टेम्पलेट्स को पुनर्परिभाषित (override) करने के लिए, बस आवश्यक टेम्पलेट को अपनी सबथीम में कॉपी करें और वहां अपनी आवश्यकता अनुसार बदलें। आप सभी टेम्पलेट्स कॉपी कर सकते हैं, लेकिन सलाह दी जाती है कि केवल उन्हीं टेम्पलेट्स को कॉपी करें जिनमें बदलाव की आवश्यकता है।

कंटेंट टेम्पलेट्स को ओवरराइड करना (Template Suggestions)

आप न केवल मौजूदा टेम्पलेट्स को ओवरराइड कर सकते हैं, बल्कि विभिन्न नोड्स, टैक्सोनॉमी टर्म्स, ब्लॉक्स आदि के लिए अपने कस्टम टेम्पलेट्स भी जोड़ सकते हैं। नीचे कुछ उदाहरण दिए गए हैं।

HTML टेम्पलेट

HTML टेम्पलेट में पेज की बेसिक HTML संरचना होती है।

मुख्य टेम्पलेट: html.html.twig (स्थान: core/modules/system/templates/html.html.twig)

इस टेम्पलेट को ओवरराइड करने के कुछ उदाहरण:

  1. html--internalviewpath.html.twig
  2. html--node--id.html.twig
  3. html.html.twig

यहां internalviewpath Drupal का आंतरिक पथ होता है, जैसे node/15, taxonomy/term/46, user/2 आदि।

अधिक जानकारी के लिए देखें html.html.twig दस्तावेज़

Page टेम्पलेट

ओवरराइड विकल्प: page--[front|internal/path].html.twig

मुख्य टेम्पलेट: page.html.twig (स्थान: core/modules/system/templates/page.html.twig)

पेज टेम्पलेट्स के कई प्रकार हो सकते हैं। होमपेज का टेम्पलेट उच्च प्राथमिकता पर होता है, जबकि अन्य टेम्पलेट्स आंतरिक पथों पर निर्भर करते हैं।

उदाहरण: यदि एड्रेस है http://example.com/node/1/edit, तो आप निम्न टेम्पलेट्स का उपयोग कर सकते हैं:

page--node--edit.html.twig
page--node--1.html.twig
page--node.html.twig
page.html.twig

अधिक जानकारी के लिए देखें page.html.twig

Regions

ओवरराइड विकल्प: region--[region].html.twig

मुख्य टेम्पलेट: region.html.twig (स्थान: core/modules/system/templates/region.html.twig)

Region टेम्पलेट ब्लॉक सिस्टम या hook_page_build() के माध्यम से बनाए गए रीजन की सामग्री को प्रदर्शित करने के लिए उपयोग किया जाता है। आप अपने .info.yml फ़ाइल में रीजन के नाम परिभाषित कर सकते हैं।

Blocks

ओवरराइड विकल्प: block--[module|--delta].html.twig

मुख्य टेम्पलेट: block.html.twig (स्थान: core/modules/block/templates/block.html.twig)

  1. block--module--delta.html.twig
  2. block--module.html.twig
  3. block.html.twig

यहां ‘module’ ब्लॉक प्रदर्शित करने वाले मॉड्यूल का नाम है और ‘delta’ ब्लॉक का आंतरिक ID है।

उदाहरण के लिए, block--block--1.html.twig उपयोगकर्ता द्वारा जोड़ा गया पहला ब्लॉक है। यदि आपके पास एक कस्टम मॉड्यूल है और आपने एक ब्लॉक बनाया है जिसका delta "my-block" है, तो उसका टेम्पलेट होगा block--custom--my-block.html.twig

Views मॉड्यूल के लिए ब्लॉक टेम्पलेट का नाम इस प्रकार बनता है:

block--views-block--front-news-block-1.html.twig

ध्यान दें कि underscores को hyphens से बदल दिया जाता है।

Nodes (सामग्री)

ओवरराइड विकल्प: node--[type|nodeid]--[viewmode].html.twig

मुख्य टेम्पलेट: node.html.twig (स्थान: core/modules/node/templates/node.html.twig)

ओवरराइड के उदाहरण:

  1. node--nodeid--viewmode.html.twig
  2. node--type--viewmode.html.twig
  3. node--type.html.twig
  4. node.html.twig

यहां type = सामग्री का प्रकार (जैसे Article, Page), nodeid = नोड का ID, और viewmode = डिस्प्ले मोड (Full, Teaser, RSS आदि)।

Taxonomy Terms

ओवरराइड विकल्प: taxonomy-term--[vocabulary-machine-name|tid].html.twig

मुख्य टेम्पलेट: taxonomy-term.html.twig (स्थान: core/modules/taxonomy/templates/taxonomy-term.html.twig)

underscores को hyphens से बदलना न भूलें।

Fields

ओवरराइड विकल्प: field--[type|name[--content-type]|content-type].html.twig

मुख्य टेम्पलेट: field.html.twig (स्थान: core/modules/system/templates/field.html.twig)

उदाहरण:

  1. field--field-name--content-type.html.twig
  2. field--content-type.html.twig
  3. field--field-type.html.twig
  4. field.html.twig

Comments

ओवरराइड विकल्प: comment--node-[type].html.twig

मुख्य टेम्पलेट: comment.html.twig (स्थान: core/modules/comment/templates/comment.html.twig)

उदाहरण: comment--node-article.html.twig

Views

हर View के लिए कम से कम दो टेम्पलेट उपयोग किए जाते हैं:

  • views-view.html.twig
  • डिस्प्ले स्टाइल के अनुसार जैसे views-view-unformatted.html.twig

यदि आप Fields के साथ Views का उपयोग कर रहे हैं, तो views-view-fields.html.twig टेम्पलेट का उपयोग होता है।

Forum

ओवरराइड विकल्प: forums--[[container|topic]--forumID].html.twig

मुख्य टेम्पलेट: forums.html.twig (स्थान: core/modules/forum/templates/forums.html.twig)

Maintenance Mode

ओवरराइड विकल्प: maintenance-page--[offline].html.twig

मुख्य टेम्पलेट: maintenance-page.html.twig (स्थान: core/modules/system/templates/maintenance-page.html.twig)

Search Results

ओवरराइड विकल्प: search-result--[searchType].html.twig

मुख्य टेम्पलेट: search-result.html.twig (स्थान: core/modules/search/templates/search-result.html.twig)

उदाहरण के लिए, यदि आप नोड्स पर सर्च कर रहे हैं:

/search/node/Search+Term → search-result--node.html.twig

यदि आप उपयोगकर्ताओं पर सर्च कर रहे हैं:

/search/user/bob → search-result--user.html.twig