Posted by knsrdm on January 29, 2010 at 10:22am
Selam arkadaşlar benim yapmaya çalıştığım Viewte oluşturduğum tabloda bir tarih alanı var ve ben tabloda bu tarihten öncesi için o satırın renk değiştirmesi istiyorum alan adı : field_yayintarihi bunu view theme'de if içerisinde nasıl belirtmeliyim?
Yardımı olacak arkadaşlara şimdiden çok teşekkürler.
Comments
Arkadaşlar site adresimde
Arkadaşlar site adresimde http://www.dizidownload.com
buradaki gerisayım(http://www.dizidownload.com/gerisayim) kısmındaki tabloyu renklendirmek için bunu öğrenmek istiyorum. yardımcı olabilecek varmı?
views ta style setting altında theme diye bir bölüm var
orada kullanabileceğin template(tpl) ler belirtilmiş. Bunlardan Display output u tıkladığında onun içeriğini gösterir.Bu içerikte gerekli yere if koyup bu dosyayı oradaki en spesifik örnek(views-view--Gerisayim2--default.tpl.php gibi bişi) ismiyle kaydedip tema dosyaları(ikarev) içine koy. Sonuç elde edemezsen o dosyanın içeriğini buraya yazarsan belki yardımcı olabiliriz. Yazdıklarımdan ben bile bişi anlamadım. Umarım sen anlarsın:)
views-view-table--Gerisayim2-
views-view-table--Gerisayim2--page-1.tpl
Dosyasının içeriği
<?phpif (!empty($title)) :
?>
<?phpprint $title;
?>
<?phpendif;
?>
<?phpforeach ($header as $field => $label):
?>
<?php">print $fields[$field];
?>
<?phpprint $label;
?>
<?phpendforeach;
?>
<?phpforeach ($rows as $count => $row):
?>
<?php">print implode(' ', $row_classes[$count]);
?>
<?phpforeach ($row as $field => $content):
?>
<?php">print $fields[$field];
?>
<?phpprint $content;
?>
<?phpendforeach;
?>
<?phpendforeach;
?>
Şunu bir dene
Dosyanın html kısımları input filtre'a takılmış sanki. implode'lu kısımda şöyle birşeyler yapman gerekiyor muhtemelen:
<?phpprint implode(' ', $row_classes[$count]);
?>
yerine
<?php$row_classes[$count][] = ($row['field_yayintarihi']['value'] < time()) ? "past" : "future";
print implode(' ', $row_classes[$count]);
?>
bu sayede her tablo satırına "past" veya "future" diye bir class ekleyip daha sonra css'yle o satırların rengini ayarlayabilirsin. HTML koduna bakıp bu class'lar eklenmiş mi kontrol et. Şayet yukarıdaki çalışmazsa şunu bir dene ve mesaj olarak gösterilen çıktıyı buraya gönder. Yine aynı yerde:
<?phpif ($count == 0) drupal_set_message(print_r($row, true));
print implode(' ', $row_classes[$count]);
?>
Dediğiniz eklemeyi yaptım
Dediğiniz eklemeyi yaptım fakat sayfa kaynağına baktığımda bütün satırlar şu halde gözüküyor
tr class="odd past"
ve
tr class="even past"
hiçbir satır
tr class="odd future"
haline gelmedi!
field_yayintarihi'nin formatına baktım! Time zone handling: User's Time Zone olarak ayarlandı. bundan kaynaklanan bir sorun olabilirmi!
ben
tr bgcolor="---- Eğer tarih bugünse #CCCCCC ---- bugünden eskiyse #999999 ---- bugünden büyükse #FFFFFF"
şeklinde yapmayı düşünmüştüm fakat neyi neyle karşılaştırmak gerektiğini anlayamadım.
Ek: Bu alan!
ContentTemplate Eklentisinde
$node->field_yayintarihi[0]['value'] **
2009-05-17T08:00:00
<?phpif ($count == 0) drupal_set_message(print_r($row, true));
print implode(' ', $row_classes[$count]);
?>
bu kısmı eklediğimde ise şu hata mesajını aldım!
Array ( [field_dizi_adi_value] => The Vampire Diaries [field_sezonno_value] => 01 [field_bolumno_value] => 12 [field_bolumadi_value] => Unpleasantville [field_yayintarihi_value] => Cum, 01/29/2010 - 03:00 [field_yayintarihi_value_1] => 5 gün 7 saat önce )
field value timestamp değilmiş demek
Views anlaşılan timestamp'i alıp biçimlendiriyor. O zaman şunu deneyebilirsin:
<?php$row_classes[$count][] = (strpos($row['field_yayintarihi_value_1'], "sonra") === false) ? "past" : "future";
print implode(' ', $row_classes[$count]);
?>
style dosyanın uygun bir yerine de şöyle birşey ekleyebilirsin:
div.gerisayim table tbody tr.past {
background-color : #999999;
}
div.gerisayim table tbody tr.future {
background-color : #FFFFFF;
}
dediklerinizi yaptım ve sonuç
dediklerinizi yaptım ve sonuç olumlu
yardımınız için çok teşekkür ederim
Son olarak http://www.tvcountdown.com/ adresindeki gibi dizileri kullanıcıların seçebilmesi için checkbox kullanabilirmiyim bu konuda bilginiz varmı?
Kodun son hali!!!
Biraz değiştirip şu hale getirdim.
<?phpif(stripos($row["field_yayintarihi_value_1"], "sonra")) {
print "future ";
}
if(stripos($row["field_yayintarihi_value_1"], "sonra") == false && stripos($row["field_yayintarihi_value_1"], "dak") == false) {
print "past ";
}
if(stripos($row["field_yayintarihi_value_1"], "sonra") == false && stripos($row["field_yayintarihi_value_1"], "dak") == true) {
print "bugun ";
};
print implode(' ', $row_classes[$count]);
?>
işe yaramasına sevindim
checkbox'lar için views eklentisinin exposed filtre özelliğini bir şekilde kullanman lazım:
http://groups.drupal.org/node/12830
http://www.google.com.tr/search?q=drupal+views+exposed+filter
şu eklentiler de işine yarayabilir belki:
http://drupal.org/project/betterselect
http://drupal.org/project/hierarchical_select