Posted by serdark on February 10, 2014 at 5:45pm
drupal 7 kullanıyorum.
html.tpl sayfasında bir şart koşmak istiyorum.
if($is_front) { bunları yap } bu çalışıyor. anasayfa ise yazdıracaklarımı yazdırıyorum. fakat bir node sayfası açılıdığında da benzer şekilde.
bir şart koşmak ve node sayfalarında istediğimi yazdrıamk istiyorum.
$is_node, denedim diğerlerini denedim yapamadım.
html. tpl sayfasına ne yazarsam istediğimi yapabilrim?
Comments
https://api.drupal.org/api/dr
https://api.drupal.org/api/drupal/modules%21node%21node.module/function/...
kardeşim güzel demişsin buna
kardeşim güzel demişsin buna bakmıştım zaten. kullanım örneği verebilmisin acaba? bu fonksiyonlar zaten mevcut.
node_is_page($node) bu
node_is_page($node) bu sekilde kullanabilirsin.
if (node_is_page($node)) {
//Code
}
else {
//Code
}
yani node.module içinde
yani node.module içinde bahsettiğin fonksiyonu kontrol ettim. evet var. verdiğin kodu da html sayfasında denedim. hata veriyor malesef.
ve node sayfasında bile elseyi döndürüyor.
Nasil kullandigini
Nasil kullandigini gönderirsen belki yardimci olabilirim.
yani anlattığm şekilde
yani anlattığm şekilde kullanıyorum. hata veriyor o şekilde.
Çünkü istediğin fonksiyon o değil
Yukarıdaki fonksiyonda önce bir node yükleyip sonra dur bakalım yüklü sayfa bu node mu diye bakabilirsin. Yani parametre olarak geçireceğin $node'u yüklemen gerekiyor ki hata mesajından anlaşılan sen bunu yapmamışsın. Ayrıca sadece sayfa $node'a yüklediğin node ise true döner başka bir node ise yanlış döner.
Sorunu doğru anlıyorsam senin istediğin bu değil, aşağıda benim gönderdiğim fonksiyondur işini görecek olan.
Şunu dene
Yukarıdaki yüklenen sayfa filanca node mu ($nid üzerinden) diye bakıyor. Aşağıdakini dene:
<?phpif (menu_get_object('node', 1)) {
// ....
}
?>
menu_get_object
örnek kullanım
filanca node açılınca şunu
filanca node açılınca şunu yap demek istemiyorum.
eğer açılan sayfa node ise o düğümün içindeki şu belittiğiim field alanını ekrana yazdır. eğer node sayfası değilse işlemi atla.
aynı şekilde terim sayfaları için de yapmak istiyorum.
açılan sayfa bir terim ise o terimin açıklama fieldi getir. gibi.
tabi bunu views ile yapmak mümkün diyeceksin. yada page tpl içinde gayet mümkün oluyor.
önemli olan html.tpl php içne yazdırabilmek.
aklıma db den direkt çekmek vs geliyor ama bu node sayfası açıldığında iki kez veri çekimi demek olacak.
Zaten öyle
Bahsettiğim fonksiyon (ve if kodu) zaten filanca node açılınca diye çalışmıyor, dur bakalım yüklenen sayfa node mu (veya taxonomy sayfası mı, argumanını değiştirerek) diye bakıyor. Bağlantısını verdiğim örnek koda baktın mı? Tam da senin istediğin gibi bir örnek. Ayrıca node mu diye baktıktan sonra o node'a ulaşıp işlem de yapabiliyorsun. Ekstradan dur bakalım poll node mu vs gibi if'ler eklemek veya node field'ları çekmek de mümkün çünkü fonksiyonun dönderdiği nesne node'un (veya taxonomy'nin) kendisi benim anladığım.
Bağlantılar yeniden
Bağlantılarda sorun var gibi:
menu_get_object
örnek
(aslında template dosyasını değiştirmek yerine buradaki gibi hook üzerinden yaparsan tema'dan bağımsız olur yaptığın ilave)