içerik alanına block ekleme
preper, Pzr, 20/12/2009 - 02:37 tarihinde.
sol orta ve sağ block alanlarından oluşan bir tema var sitede. sağ ve solda blocklar ortada ise içerik alanı yer alıyor. resimle anlatırsak şu şekilde:

ancak ben ortadaki içerik alanının üst sağ kısmına bir block ekleme istiyorum ancak bu block aktive edildiğinde o sütunun tamamını değil yalnızca yüksekliği kadar ki kısmını kaplasın ve altından içerik yine devam etsin.
yani şu şekilde:

yani block sadece boyutları kadar bölgedeki yazıları sola yaslasın, içerik blockun çevresinde olsun (sağında ve altında).
bu nasıl yapmalıyım? böyle bir block eklerken nasıl bir yol izlemeli?
- Yeni yorum ekle
- 335 kez okundu

Blok ayarlarından eğer temanız destekliyorsa content top alanına bloğunuzu yerleştirmeniz işi çözecektir. Böyle bir alan temanızda mevcut değilse o zaman kodlarla uğraşmanız gerekecek. Onu da ben bilmiyorum maalesef..
o şekilde olmuyor. o bölge zaten içerik alanına ait. yani o bölümü içerik alanından çalınması ve içeriğin L şeklinde devam etmesi gerekli. mutlaka kod kullanmam gerek ama nereden başlamalıyım ve nasıl yapacağım?
Content top diye bi bölüm varsa temanda, blokları oraya yerleştirir, daha sonra da CSS'de örneğin:
#content-top{
float: right;
width: 200px; //attım
}
yazarsan, content top bölgesindeki bütün bloklar orta sütunda, sağa dayalı şekilde görünebilir.
benim istediğim node region'ın içinde yeni bir region oluşturmak. bu yeni region ortadaki içerik bölgesinin üst köşesinden alan çalacak. ben şöyle birşey buldum ama kod bilgim fazla olmadığı için yapamadım:
http://www.nicklewis.org/node/846
herhangi bir anlatım varsa en azından bunu paylaşan olursa da çok sevinirim, ingilizce de olur.
yok mu yardımcı olabilecek biri acaba? sanırım istediğim node.tpl dosyasına (yani içerik alanına) yeni region eklemek daha sonra buraya bir block atamak.
newswire teması kullanıyorum yaptıklarım :
1-newswire.info dosyasına şunu ekledim
regions[node_advert_top]= node advert top
2-node.tpl dosyasına şu kodu ekledim:
<?php print $node_advert_top; ?>
3-template.php dosyasına şu kodu ekledim:
function newswire_preprocess_node(&$vars, $hook) {
$vars['node_advert_top'] = theme('blocks', 'node_advert_top');
}
ama 3. işlemi yaptığımda şu şekilde bir hata alıyorum:
Fatal error: Cannot redeclare newswire_preprocess_node() (previously declared in C:\xampp\htdocs\themes\newswire\template.php:202) in C:\xampp\htdocs\themes\newswire\template.php on line 234
nerede hata yapıyorum_ nasıl düzeltmeliyim?
3. adımda tanımladığın fonksiyon o dosya içinde daha önceden tanımlanmış. Bu yüzden fonksiyonu yeniden tanımlamak yerine, önceki tanımlamayı bul ve
$vars['node_advert_top'] = theme('blocks', 'node_advert_top');kodunu oraya ekle.