मैं किसी विषय में कस्टम क्षेत्र कैसे बनाऊं?


58

मैं एक नया क्षेत्र जोड़ना चाहता हूं जो साइट चौड़ा होगा। यदि संभव हो तो किसी भी नए, कस्टम क्षेत्र को जोड़ने के लिए इस नए क्षेत्र को मेरी थीम में लाने की प्रक्रिया का वर्णन करें।


विस्तार ब्लॉग: goo.gl/kD3TZu
सुरेश कामुशी

जवाबों:


68

आप अपनी थीम .info फ़ाइल में क्षेत्रों को परिभाषित करते हैं। देखें: .info फ़ाइल की संरचना

इसके बाद आपको संबंधित टेम्पलेट टैग्स को अपनी page.tpl.php फ़ाइल में डालना होगा।

उदाहरण के लिए यदि आपने sidebarअपने थीम .info फ़ाइल में क्षेत्र को परिभाषित किया है , तो आप <?php print render($page['sidebar']); ?>अपने पेज में प्रासंगिक स्थान को जोड़ेंगे। .NET.php।


6
यदि आपकी थीम में पेज नहीं है। पीपीपी फ़ाइल में आप अपने थीम में सिस्टम मॉड्यूल से डिफ़ॉल्ट कॉपी कर सकते हैं, और उस कॉपी को संशोधित कर सकते हैं।
मिकी पी

5
ओमेगा को page.tpl.php भाग की जरूरत नहीं है, बस इस क्षेत्र को .info और CLEAR CACHES में घोषित करें।
कैपी एथरिएल

20

एक अन्य बिंदु: आवश्यक क्षेत्रों को याद मत करो!

regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom

इस पर अधिक http://drupal.org/update/themes/6/7#closure पर पाया जा सकता है ।

इस बिंदु पर स्पष्ट करने के लिए: यदि आप अपने स्वयं के क्षेत्रों को परिभाषित करते हैं, तो आपको उन सभी को परिभाषित करने की आवश्यकता है, जिनका आप उपयोग कर रहे हैं, जिनमें यह आवश्यक है। दूसरे शब्दों में, आप केवल अतिरिक्त क्षेत्रों को परिभाषित नहीं कर सकते हैं: यदि आप कोई भी परिभाषित करते हैं, तो आपको उन सभी को परिभाषित करना होगा।


9

एक ड्रुपल 7 विषय के लिए एक क्षेत्र बनाना एक ड्रुपल 6 क्षेत्र के लिए एक क्षेत्र बनाने से अलग नहीं है; Drupal 7 और पिछले संस्करणों के बीच अंतर अनिवार्य रूप से हैं:

  • क्षेत्रों को एक mytheme_regions()फ़ंक्शन का उपयोग करके परिभाषित नहीं किया जाता है जैसा कि Drupal 5 में किया गया था, लेकिन वे mytheme.info में regions[]निर्देशों का उपयोग करके परिभाषित किए गए हैं , जो कि Drupal 6 विषयों के साथ भी किया जाता है।
  • क्षेत्र render()एक चर की सामग्री को मुद्रित करने के बजाय, Drupal फ़ंक्शन का उपयोग करके प्रदान किए जाते हैं ।

डिफ़ॉल्ट Drupal 7 क्षेत्र निम्नलिखित हैं:

regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer

Drupal 7 के मुख्य विषयों में अब 'हाइलाइटेड' नाम का एक क्षेत्र शामिल है जो Drupal 6 में मिशन स्टेटमेंट क्षेत्र के समान प्रदर्शन का उपयोग करता है; उनमें 'सहायता' नाम का एक क्षेत्र भी शामिल है, जिसमें डिफ़ॉल्ट $helpरूप से Drupal 6 द्वारा उपयोग किए गए चर की सामग्री है ।


4

थीम क्षेत्र आपकी थीम .info फ़ाइल में परिभाषित किए गए हैं - डॉक्स देखें । regions[corner] = Cornerकॉर्नर क्षेत्र प्राप्त करने के लिए बस एक पंक्ति जोड़ें ।

फिर आपको page.tpl.php फ़ाइल को संपादित करने और <php print render($corner); ?>उस क्षेत्र को जोड़ने की आवश्यकता है जहां आप दिखाना चाहते हैं। यदि आपके विषय में पेज.tpl.php नहीं है, तो आधार थीम या सिस्टम मॉड्यूल से कॉपी करें।

सामान्य नुकसान:

  • यदि theme.info फ़ाइल में कोई क्षेत्र घोषित नहीं था, तो यह Drupal डिफ़ॉल्ट क्षेत्रों का उपयोग कर रहा था। यदि आप जोड़ना चाहते हैं, तो आपको डिफ़ॉल्ट क्षेत्रों को फिर से घोषित करना होगा। आप बेशक किसी भी क्षेत्र को हटा सकते हैं, लेकिन कृपया आवश्यक क्षेत्रों का समर्थन करें। डॉक्स फिर से देखें ।

  • .Info फ़ाइल में परिवर्तन या थीम में नई फ़ाइलें जोड़ना (जैसे page.tpl.php) आपको कैश साफ़ करने के बाद ही दिखाई देगा।

  • ओमेगा, एक बहुत ही लोकप्रिय आधार विषय है, केवल .info फ़ाइल में page.tpl.php में किसी भी बदलाव की आवश्यकता नहीं होगी। लेकिन आपको यूआई में थीम सेटिंग्स पर जाना होगा और अपने क्षेत्र को एक ज़ोन को सौंपना होगा।


यह आम नुकसान के साथ जवाब का एक आवरण है।
कैपी ईथरेल

क्या regions[content] = Contentडी 7 में एकमात्र आवश्यक क्षेत्र है? drupal.org/node/171205#regions इस संकेत करने लगता है, लेकिन फिर drupal.org/node/171224 का कहना है कि आवश्यक क्षेत्र हैं content, help, page_topऔरpage_bottom
जिम गैरीसन

मुझे नहीं पता कि ड्रुपल किसी भी क्षेत्र के लिए जाँच करता है, लेकिन contentनिश्चित रूप से बहुत महत्वपूर्ण है। helpकोर द्वारा समर्थित है (संदेशों को आउटपुट करने के लिए), page_bottomसंभवतया जहां नीचे js मुद्रित है और page_topऐसा लगता है कि कोर टूलबार जैसे नावबार के लिए उपयोग किया जाता है।
कैपी एथरिएल

2

अपनी थीम में कस्टम क्षेत्र बनाने के लिए नीचे दिए गए चरणों का पालन करें:

  1. अपनी theme.info फ़ाइल पर जाएं और इस लाइन को जोड़ें।

    regions[machine_name_of_your_region] = Name of your region
  2. हालाँकि, आप नोड टेम्प्लेट में रीजन ब्लॉक भी कह सकते हैं, आप आम तौर पर इस क्षेत्र को थीम के पेज टेम्प्लेट में जोड़ देंगे। यह आमतौर पर page.tpl.php है, या यदि आपके पास विभिन्न पृष्ठों के लिए कस्टम टेम्पलेट फ़ाइलें हैं, तो उन लोगों को भी संपादित करें। नया क्षेत्र केवल आपके द्वारा नए क्षेत्र को जोड़ने वाले टेम्पलेट के आसपास बने पृष्ठों पर दिखाई देगा। जहाँ भी आप अपना नया क्षेत्र प्रकट करना चाहते हैं, वहां चिपकाएँ।

    <?php if ($page['machine_name_of_your_region']): ?>
      <div id="sidebar-first" class="column sidebar"><div class="section">
      <?php print render($page['machine_name_of_your_region']); ?>
      </div></div> <!-- /.section, /#sidebar-first -->
     <?php endif; ?>
  3. कॉन्फ़िगरेशन - प्रदर्शन - सभी कैश साफ़ करें


0

थीम में एक नया क्षेत्र बनाएँ

आपको बस इसे दो फाइलों में परिभाषित करने की आवश्यकता है।

  • Theme.info
  • Page.tpl.php

Theme.info

;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;

regions[navigation]      = 'Navigation'
regions[header]          = 'Top Bar'
regions[highlighted]     = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region

Page.tpl.php

अब इस क्षेत्र को प्रस्तुत करें

  <?php if ($page['new_region']): ?>
      <div class="new_region_class">
        <?php print render($page['new_region']); ?>
     </div>
  <?php endif; ?>

अब सभी कैश को साफ़ करें, यहाँ आप जाते हैं, आपके पास अपने विषय में एक नया क्षेत्र है। आप इसे अपने ब्लॉक कॉन्फ़िगरेशन पृष्ठ पर देख सकते हैं।

अधिक यात्रा के लिए http://drupal.org/node/171205

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.