Site çapında olacak yeni bir alan eklemek istiyorum. Bu yeni bölgeyi temama sokma sürecini açıklayın, mümkünse yeni ve özel bir bölge eklemek için genelleştirin.
Site çapında olacak yeni bir alan eklemek istiyorum. Bu yeni bölgeyi temama sokma sürecini açıklayın, mümkünse yeni ve özel bir bölge eklemek için genelleştirin.
Yanıtlar:
Tema .info dosyanızdaki bölgeleri tanımlarsınız. Bkz: .info dosyasının yapısı
Daha sonra, ilgili şablon etiketlerini page.tpl.php dosyasına yerleştirmeniz gerekir.
Örneğin, bölgeyi sidebar
temalar .info dosyanızda tanımladıysanız, şunu eklersiniz: <?php print render($page['sidebar']); ?>
page.tpl.php içindeki ilgili yere.
Başka bir nokta: Gerekli bölgeleri kaçırmayın!
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
Bununla ilgili daha fazla bilgiyi http://drupal.org/update/themes/6/7#closure adresinde bulabilirsiniz .
Bu noktaya açıklık getirmek için: Kendi bölgelerini tanımlarsanız, gerekli olanlar da dahil olmak üzere kullandığınız her şeyi tanımlamanız gerekir. Başka bir deyişle, yalnızca ek bölgeler tanımlayamazsınız: Herhangi birini tanımlarsanız, hepsini tanımlamanız gerekir.
Drupal 7 teması için bölge oluşturmak, Drupal 6 bölgesi için bölge oluşturmaktan farklı değildir; Drupal 7 ve önceki sürümler arasındaki farklar aslında:
mytheme_regions()
Drupal 5'te yapıldığı gibi bir işlev kullanılarak tanımlanmamıştır , ancak bunlar mitinde de tanımlanmaktadır regions[]
.render()
bir değişkenin içeriğini yazdırmak yerine Drupal işlevi kullanılarak oluşturulur .Varsayılan Drupal 7 bölgeleri aşağıdaki gibidir:
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 ana temaları şimdi Drupal 6'daki görev bildirimi alanıyla aynı ekranı kullanan 'vurgulanan' adlı bir bölge içerir; Ayrıca, varsayılan olarak $help
Drupal 6 tarafından kullanılan değişkenin aynı içeriğe sahip olduğu 'help' adında bir bölge içerirler .
Tema bölgeleri, tema .info dosyanızda tanımlanır - belgelere bakın . regions[corner] = Corner
Köşe bölgesi almak için bir satır ekleyin .
Ardından page.tpl.php dosyasını düzenlemeniz ve bölgenin görünmesini <php print render($corner); ?>
istediğiniz yeri eklemeniz gerekir . Temanızda bir sayfa.tpl.php yoksa, temel temadan veya sistem modülünden kopyalayın.
Ortak tuzaklar:
Theme.info dosyasında ilan edilmiş bir bölge yoksa, Drupal varsayılan bölgelerini kullanıyordu. Eklemek istiyorsanız, varsayılan bölgeleri yeniden bildirmeniz gerekir. Elbette herhangi bir bölgeyi kaldırabilirsiniz ancak lütfen gerekli bölgeleri destekleyin. Dokümanlara tekrar bakın .
.İnfo dosyasındaki değişiklikler veya temaya yeni dosyalar (örneğin, page.tpl.php) eklendiğinde, yalnızca önbellekleri temizledikten sonra fark edilir.
Çok popüler bir temel tema olan Omega, page.tpl.php dosyasındaki herhangi bir değişikliğe ihtiyaç duymaz, sadece .info dosyasındadır. Ancak, kullanıcı arayüzündeki tema ayarlarını ziyaret etmeniz ve bölgenizi bir bölgeye atamanız gerekir.
regions[content] = Content
D7 sadece gerekli bölge? drupal.org/node/171205#regions bu ima gibi görünüyor, ama daha sonra drupal.org/node/171224 gerekli bölgeler olduğunu söylüyor content
, help
, page_top
vepage_bottom
content
kesinlikle çok önemli. help
çekirdek tarafından desteklenir (yardım mesajlarının çıktısını almak için), page_bottom
muhtemelen js altının basıldığı ve page_top
çekirdek araç çubuğu gibi gezinme çubukları için kullanıldığı görülüyor.
Temanızda özel bölge oluşturmak için aşağıdaki adımları izleyin:
Theme.info dosyasına gidin ve bu satırı ekleyin.
regions[machine_name_of_your_region] = Name of your region
Düğüm şablonunda bölge bloklarını da çağırabilseniz de, bölgeyi genellikle temanın sayfa şablonuna eklersiniz. Bu genellikle page.tpl.php'dir veya farklı sayfalar için özel şablon dosyalarınız varsa, bunları da düzenleyin. Yeni bölge, yalnızca yeni bölgeyi eklediğiniz şablonun çevresinde oluşturulan sayfalarda görünecektir. Yeni bölgenizin görünmesini istediğiniz yere yapıştırın.
<?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; ?>
Yapılandırma - Performans - Tüm önbellekleri temizle
Sadece iki dosyada tanımlamanız gerekir.
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
Şimdi bu bölgeyi oluştur
<?php if ($page['new_region']): ?>
<div class="new_region_class">
<?php print render($page['new_region']); ?>
</div>
<?php endif; ?>
Şimdi tüm önbelleği temizle, İşte başlıyorsunuz, temanızda yeni bir bölgeniz var. Blok konfigürasyon sayfanızda görebilirsiniz.
Daha fazla ziyaret için http://drupal.org/node/171205