थीम इंस्टॉल पर विशेष क्षेत्रों के लिए ब्लॉक कैसे असाइन करें?


9

Drupal 8 डिफ़ॉल्ट रूप से कुछ ब्लॉक प्रदान करता है। उदाहरण के लिए। Site Branding, Main Navigation, Powered by Drupal, Searchआदि

मैंने एक थीम बनाई है जिसमें ऐसे क्षेत्र हैं जिनके नाम हैं Site brandingऔर Main Navigationसंबंधित ब्लॉक रखे जा सकते हैं।

जब मैं अपने विषय सक्षम Site Brandingऔर Main Navigationब्लॉक में रखा जाता है Headerऔर First Sidebarक्रमश: डिफ़ॉल्ट रूप से मेरे विषय के क्षेत्र।

मैं थीम स्थापित पर डिफ़ॉल्ट रूप से अपने संबंधित क्षेत्रों में कैसे स्थान Site Brandingऔर Main Navigationब्लॉक कर सकता हूं ?


2
आपको ब्लॉक इंस्टेंसेस बनाना होगा जो कॉन्फ़िगरेशन ऑब्जेक्ट हैं और उन्हें अपने थीम के कॉन्फ़िगरेशन / इंस्टॉल डायरेक्टरी में डालें।

जवाबों:


8

सबसे पहले, आपको प्रत्येक वांछित ब्लॉक क्षेत्र को बदलना चाहिए जिसे आप मैन्युअल रूप से चाहते हैं Administration>Structure>Block layout Tabऔर फिर
Administration>Configuration>Development>Configuration synchronization>Export Tab>Single itemअपने विषय के लिए प्रत्येक ब्लॉक सेटिंग्स को निर्यात करने के लिए : पर कॉन्फ़िगर करें निर्यात फ़ंक्शन पर जाएं।
फिर आपको जनरेट किए गए YAML फ़ाइलों पर एक नज़र डालनी चाहिए और इसे अपने विषय के भीतर एक नए फ़ोल्डर में रखना चाहिए /config/install। आपने तब थीम को अनइंस्टॉल कर दिया और फिर इसे डिफ़ॉल्ट के रूप में पुनः इंस्टॉल किया।

सारांश:
1. स्थापित करें MY_THEME
। वांछित क्षेत्रों में ब्लॉकों को रखें
3. कॉन्फ़िगरेशन फ़ाइलों को निर्यात करें और उन्हें हटा दें uuidऔर
उदाहरण के Site Brandingब्लॉक block.block.MY_THEME_branding.ymlफ़ाइल के लिए कोर कॉन्फ़िगरेशन हैश

langcode: en
status: true
dependencies:
  module:
    - system
  theme:
    - DEPENDENT_THEME
id: MY_THEME_branding
theme: MY_THEME
region: site_branding
weight: 0
provider: null
plugin: system_branding_block
settings:
  id: system_branding_block
  label: 'Site branding'
  provider: system
  label_display: '0'
  use_site_logo: true
  use_site_name: true
  use_site_slogan: true
visibility: {  }
  1. कॉन्फ़िगरेशन फ़ाइलों को निर्देशिका MY_THEME/config/optionalया स्थान पर ले जाएं MY_THEME/config/install(यदि आपको पूरा यकीन है कि सभी निर्भरताएँ पूरी हो गई हैं)
  2. MY_THEMEसभी कैश को अनइंस्टॉल और साफ़ करें
  3. MY_THEMEफिर से पुनर्स्थापित करें

7

उत्तर मिला:

यह theme/config/installफ़ोल्डर में प्रत्येक ब्लॉक के लिए एक yml फ़ाइल (ब्लॉक उदाहरण) जोड़कर किया जा सकता है ।

उदाहरण के लिए, Site Brandingब्लॉक (मशीन का नाम system_branding_block) Site Brandingक्षेत्र (मशीन का नाम site_branding) को असाइन करने के लिए config/install/block.block.THEME_NAME_branding.ymlफ़ाइल में निम्न कोड जोड़ें :

langcode: en
status: true
dependencies:
  module:
    - system
  theme:
    - DEPENDENT_THEME
id: THEME_NAME_branding
theme: THEME_NAME
region: site_branding
weight: 0
provider: null
plugin: system_branding_block
settings:
  id: system_branding_block
  label: 'Site branding'
  provider: system
  label_display: '0'
  use_site_logo: true
  use_site_name: true
  use_site_slogan: true
visibility: {  }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.