web-gelistirme-sc.com

Bir temada nasıl özel bölgeler oluşturabilirim?

Site çapında yeni bir alan eklemek istiyorum. Bu yeni bölgeyi temama dahil etme sürecini açıklayın, mümkünse herhangi bir yeni, özel bölge eklemek için genelleştirin.

58
palbakulich

Temalar .info dosyanızdaki bölgeleri tanımlarsınız. Bakınız: .info dosyasının yapısı

Daha sonra, ilgili şablon etiketlerini page.tpl.php dosyanıza koymanız gerekir.

Örneğin, temalar .info dosyanızda sidebar bölgesini tanımladıysanız, page.tpl.php dosyasındaki ilgili yere <?php print render($page['sidebar']); ?> eklersiniz.

68
Camsoft

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 noktada açıklığa kavuşturmak için: Kendi bölgelerinizi 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 bir bölge tanımlarsanız, hepsini tanımlamanız gerekir.

20
laura

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 esasen:

  • Bölgeler Drupal 5'te yapıldığı gibi bir mytheme_regions() işlevi kullanılarak tanımlanmaz, ancak mytheme.info içinde regions[] Yönergeleri kullanılarak tanımlanır. Drupal 6 tema ile de yapılır.
  • Bölgeler, bir değişkenin içeriğini yazdırmak yerine Drupal işlevi render() kullanılarak oluşturulur.

Varsayılan Drupal 7 bölgeleri şunlardır:

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ı artık Drupal 6'daki görev bildirimi alanıyla aynı ekranı kullanan 'vurgulanmış' adlı bir bölge içeriyor; ayrıca varsayılan olarak Drupal 6 tarafından kullanılan $help değişkeniyle aynı içeriğe sahip olan 'help' adlı bir bölge içerir.

9
kiamlaluno

Tema bölgeleri, tema .info dosyanızda tanımlanır - bkz. docs . Köşe bölgesi almak için regions[corner] = Corner İle bir satır eklemeniz yeterli.

Ardından page.tpl.php dosyasını düzenlemeniz ve bölgenin görünmesini istediğiniz yere <php print render($corner); ?> eklemeniz gerekir. Temanızın bir page.tpl.php dosyası yoksa, temel temadan veya sistem modülünden kopyalayın.

Ortak tuzaklar:

  • Theme.info dosyasında hiçbir bölge bildirilmediyse, Drupal varsayılan bölgeler kullanıyordu.) Eklemek isterseniz, varsayılan bölgeleri yeniden bildirmeniz gerekir. herhangi bir bölgeyi kaldırın ancak lütfen gerekli bölgeleri destekleyin. Bkz. docs .

  • .İnfo dosyasındaki değişiklikler veya temaya yeni dosyalar ekleme (sayfa.tpl.php gibi) yalnızca önbellekleri temizledikten sonra fark edilir.

  • Çok popüler bir temel tema olan Omega, page.tpl.php dosyasında herhangi bir değişikliğe ihtiyaç duymaz, sadece .info dosyasıdır. Ancak kullanıcı arayüzündeki tema ayarlarını ziyaret etmeniz ve bölgenizi bir bölgeye atamanız gerekir.

4
Capi Etheriel

Temanızda özel bölge oluşturmak için aşağıdaki adımları izleyin:

  1. Theme.info dosyanıza gidin ve bu satırı ekleyin.

    regions[machine_name_of_your_region] = Name of your region
    
  2. 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 etrafında oluşturulan sayfalarda görünür. 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; ?>
    
  3. Yapılandırma - Performans - Tüm önbellekleri temizle

2
Astha chauhan

Tema'da Yeni bir bölge oluşturma

Sadece iki dosyada tanımlamanız gerekir.

  • 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

Ş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ıyoruz, temanızda yeni bir bölge var. Bunu blok yapılandırma sayfanızda görebilirsiniz.

Daha fazla ziyaret için http://drupal.org/node/171205

0
gsjha