ฉันต้องการเพิ่มพื้นที่ใหม่ซึ่งจะกว้างทั้งไซต์ อธิบายขั้นตอนการนำภูมิภาคใหม่นี้ไปใช้ในธีมของฉันถ้าเป็นไปได้ให้กำหนดขอบเขตสำหรับการเพิ่มภูมิภาคใหม่ที่กำหนดเอง
ฉันต้องการเพิ่มพื้นที่ใหม่ซึ่งจะกว้างทั้งไซต์ อธิบายขั้นตอนการนำภูมิภาคใหม่นี้ไปใช้ในธีมของฉันถ้าเป็นไปได้ให้กำหนดขอบเขตสำหรับการเพิ่มภูมิภาคใหม่ที่กำหนดเอง
คำตอบ:
คุณกำหนดภูมิภาคในไฟล์. info ของชุดรูปแบบของคุณ โปรดดู: โครงสร้างของไฟล์. info
จากนั้นคุณต้องใส่แท็กเทมเพลตที่เกี่ยวข้องในไฟล์ page.tpl.php ของคุณ
ตัวอย่างเช่นหากคุณกำหนดพื้นที่sidebar
ในไฟล์. info ของชุดรูปแบบของคุณคุณจะเพิ่ม: <?php print render($page['sidebar']); ?>
ไปยังตำแหน่งที่เกี่ยวข้องใน page.tpl.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
ในการชี้แจงเกี่ยวกับประเด็นนี้: หากคุณกำหนดภูมิภาคของคุณเองคุณต้องกำหนดทุกสิ่งที่คุณกำลังใช้รวมถึงพื้นที่ที่ต้องการ คุณไม่สามารถกำหนดภูมิภาคเพิ่มเติมได้: หากคุณกำหนดใด ๆ คุณจะต้องกำหนดพื้นที่ทั้งหมด
การสร้างพื้นที่สำหรับธีม Drupal 7 ไม่แตกต่างจากการสร้างพื้นที่สำหรับภูมิภาค Drupal 6 ความแตกต่างระหว่าง Drupal 7 และเวอร์ชั่นก่อนหน้านี้เป็นหลัก:
mytheme_regions()
ฟังก์ชั่นเหมือนที่เคยทำใน Drupal 5 แต่พวกมันถูกกำหนดไว้ใน mytheme.info โดยใช้regions[]
คำสั่งซึ่งเป็นสิ่งที่ทำกับ Drupal 6 ด้วยrender()
แทนการพิมพ์เนื้อหาของตัวแปรค่าเริ่มต้นของภูมิภาค 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); ?>
ตำแหน่งที่คุณต้องการให้พื้นที่แสดง หากธีมของคุณไม่มี page.tpl.php ให้คัดลอกจากธีมฐานหรือจากโมดูลระบบ
ข้อผิดพลาดทั่วไป:
หากไฟล์ theme.info ไม่ได้ระบุภูมิภาคไว้แสดงว่ากำลังใช้พื้นที่เริ่มต้นของ Drupal หากคุณต้องการเพิ่มคุณจะต้องประกาศภูมิภาคเริ่มต้นอีกครั้ง แน่นอนคุณสามารถลบภูมิภาคใดก็ได้ แต่โปรดสนับสนุนภูมิภาคที่ต้องการ ดูเอกสารอีกครั้ง
การเปลี่ยนแปลงในไฟล์. info หรือการเพิ่มไฟล์ใหม่ให้กับธีม (เช่น page.tpl.php) จะสังเกตเห็นหลังจากคุณล้างแคชเท่านั้น
Omega ธีมพื้นฐานที่ได้รับความนิยมมากไม่จำเป็นต้องเปลี่ยนแปลงใน page.tpl.php เพียงแค่ไฟล์. info แต่คุณจะต้องไปที่การตั้งค่าชุดรูปแบบใน UI และกำหนดภูมิภาคของคุณในโซน
regions[content] = Content
ภูมิภาคที่จำเป็นเท่านั้นใน D7 หรือไม่ drupal.org/node/171205#regionsดูเหมือนว่าจะบ่งบอกถึงนี้ แต่แล้วdrupal.org/node/171224กล่าวว่าภูมิภาคที่ต้องการมีcontent
, help
, page_top
และpage_bottom
content
มีความสำคัญอย่างยิ่ง help
ได้รับการสนับสนุนโดย core (ไปยังข้อความช่วยเหลือเอาต์พุต) page_bottom
อาจเป็นที่ที่ js ด้านล่างถูกพิมพ์และpage_top
ดูเหมือนว่าจะใช้สำหรับ navbars เช่นแถบเครื่องมือหลัก
ทำตามขั้นตอนด้านล่างเพื่อสร้างภูมิภาคที่กำหนดเองในธีมของคุณ:
ไปที่ไฟล์ 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