Düğüm içersine blok oluşturmak / Create block in node.tpl.php

İlgili Konular: Drupal Genel Bilgiler     
Drupal - CMS - PHP - Jquery - Web Tasarım

İçeriklerimizin tam sayfa görünümlerinde hemen yorumların üzerine blok eklemek isteriz ancak bazı temalarda bu özellik varken bazılarında koymaya çalışsak da genel olarak başarısız oluruz.

Aramalsarın sonucu sonunda bu işlemi gerçekleştirebildim. Gerçekten çok basit bir kod grubunu kullanmakla bu sorunu çözebildim. İşlem basit olarak node.tpl.php, template.php ve tema_adi.info dosyalarına müdahale ile gerçekleştiriliyor. Eğer görselliğini şekillendirmek isterseniz tabiki ilgili CSS dosyalarına müdahale etmeniz gerekiyor.

  • Sırasıyla neler yapacağımıza değinelim:

Öncelikle template.php dosyasına eklemeniz gereken kod bölümü:

function tema_adi_preprocess_node(&$variables){
    if(!$vars['teaser']) {
       // Load region content assigned via blocks.
       foreach (array('node_bottom') as $region) {
         $variables[$region] = theme('blocks', $region);
       }
    }
}

tema_adi bölümü yerine kendi temanızın adını (info dosya adıdır genel olarak) yazınız, node_bottom kısmına da kullanmak istediğiniz blok adını yazınız. node_bottom blok adı diğer ekleyeceğimiz kodlarıda etkileyecektir.

Daha sonra tema_adi.info dosyamız içersine aşağıdaki blok tanımlama satırını regions tanımlamalarının altına ekleyiniz:

regions[node_bottom] = Node Bottom

Son olarak yapmamız gereken node.tpl.php dosyası içersinde görüntülenmesini istediğiniz yere, tercihen <div class="content"><?php print $content?></div> satırının heman altına aşağıdaki kod satırlarını ekleyiniz:

<?php if ($node_bottom) { ?>
   <div id="node_bottom">
        <?php print $node_bottom ?>
   </div>
<?php } ?>

Artık yapmamız gerekenler bitti. Şimdi ise değiştirdiğimiz dosyaları tema klasörümüzün içersine yükleyelim. Daha sonra drupal sitemizin performans sayfasına (admin/settings/performance) giderek ön bellekteki bilgileri silelim. Bu işlem için en alttaki ilgili butona tıklamanız yeterlidir.

Daha sonra blok ayarları sayfasından yeni oluşturduğumuz (Note Bottom) blok alanımızda görüntülenmesini istediğimiz blokları atayabiliriz.

Bu blok alanı ile benzer içerikler veya hemen yazının altında görünmesini istediğiniz özellikleri gösterebilirsiniz.

Yorumlar

Merhabalar,

Hocam ben nerdeyse bunu beşkez denedim ama olmuyor. Nerde hata yapıyorum bilmiyorum. Belki templates kısmında olabilir. Bu kısmı biraz daha ayrımtılı anlatırsanız mesela kodlar nereye yapıştırılcak tarzı...

Eklediğiniz kodda tema_adi olan bölümü kullandığınız temanın adı şeklinde değiştirdiniz mi?

hocam bunu AdSense Injector modulu ilede kolayca yapmak mumkun oluyor. %body kisminin tam altina ustune veya istedigin sekilde yanina ekleyebiliyorsun. bunu istersen kisa surum icinde yapabiliyorsun. Biraz daha kolay bir yontem. Bunu kullanmak icin Adsense ve AdSense Injector modullerini aktif etmek yeter. zaten ayarlari basit gorulmesini istedigimiz icerik turunu seciyoruz. %body nin atina ustune artik nasil isterseniz html kodunu ekliyoruz (reklam adsende olmasada olur html ile hersey eklenir) tamamdir. kisa surum icinde alt kutucukta yeralan %teaser kismina kod eklemek gerekir.

Bu blok dizilimi için daha değişik eklentilerde var. ancak ne kadar çok eklenti o kadar çok veri tabanı şişmesi ve performans da düşme olur. O nedenle böyle basit işlemler için kodlara başvurmalıyız.

Yeni yorum veya soru gönder

Bu alanın içeriği gizlenecek, genel görünümde yer almayacaktır.
  • PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • You may insert videos with [video:URL]

Biçimlendirme seçenekleri hakkında daha fazla bilgi


11 + 6 =
Basit matematik sorusunuz çözünüz. Örn; 1+3= 4