मैं एक नया क्षेत्र जोड़ना चाहता हूं जो साइट चौड़ा होगा। यदि संभव हो तो किसी भी नए, कस्टम क्षेत्र को जोड़ने के लिए इस नए क्षेत्र को मेरी थीम में लाने की प्रक्रिया का वर्णन करें।
मैं एक नया क्षेत्र जोड़ना चाहता हूं जो साइट चौड़ा होगा। यदि संभव हो तो किसी भी नए, कस्टम क्षेत्र को जोड़ने के लिए इस नए क्षेत्र को मेरी थीम में लाने की प्रक्रिया का वर्णन करें।
जवाबों:
आप अपनी थीम .info फ़ाइल में क्षेत्रों को परिभाषित करते हैं। देखें: .info फ़ाइल की संरचना
इसके बाद आपको संबंधित टेम्पलेट टैग्स को अपनी page.tpl.php फ़ाइल में डालना होगा।
उदाहरण के लिए यदि आपने sidebar
अपने थीम .info फ़ाइल में क्षेत्र को परिभाषित किया है , तो आप <?php print render($page['sidebar']); ?>
अपने पेज में प्रासंगिक स्थान को जोड़ेंगे। .NET.php।
एक अन्य बिंदु: आवश्यक क्षेत्रों को याद मत करो!
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
इस पर अधिक http://drupal.org/update/themes/6/7#closure पर पाया जा सकता है ।
इस बिंदु पर स्पष्ट करने के लिए: यदि आप अपने स्वयं के क्षेत्रों को परिभाषित करते हैं, तो आपको उन सभी को परिभाषित करने की आवश्यकता है, जिनका आप उपयोग कर रहे हैं, जिनमें यह आवश्यक है। दूसरे शब्दों में, आप केवल अतिरिक्त क्षेत्रों को परिभाषित नहीं कर सकते हैं: यदि आप कोई भी परिभाषित करते हैं, तो आपको उन सभी को परिभाषित करना होगा।
एक ड्रुपल 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 द्वारा उपयोग किए गए चर की सामग्री है ।
थीम क्षेत्र आपकी थीम .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
ऐसा लगता है कि कोर टूलबार जैसे नावबार के लिए उपयोग किया जाता है।
अपनी थीम में कस्टम क्षेत्र बनाने के लिए नीचे दिए गए चरणों का पालन करें:
अपनी theme.info फ़ाइल पर जाएं और इस लाइन को जोड़ें।
regions[machine_name_of_your_region] = Name of your region
हालाँकि, आप नोड टेम्प्लेट में रीजन ब्लॉक भी कह सकते हैं, आप आम तौर पर इस क्षेत्र को थीम के पेज टेम्प्लेट में जोड़ देंगे। यह आमतौर पर 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; ?>
कॉन्फ़िगरेशन - प्रदर्शन - सभी कैश साफ़ करें
आपको बस इसे दो फाइलों में परिभाषित करने की आवश्यकता है।
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
अब इस क्षेत्र को प्रस्तुत करें
<?php if ($page['new_region']): ?>
<div class="new_region_class">
<?php print render($page['new_region']); ?>
</div>
<?php endif; ?>
अब सभी कैश को साफ़ करें, यहाँ आप जाते हैं, आपके पास अपने विषय में एक नया क्षेत्र है। आप इसे अपने ब्लॉक कॉन्फ़िगरेशन पृष्ठ पर देख सकते हैं।
अधिक यात्रा के लिए http://drupal.org/node/171205