Olay şöyle gelişti. Bahçıvan uşağa, uşak da aşçıya bir soru sormuş.
Views'te İçeriğin Eklendiği Tarih ya "Gün, Ay, Yıl" şeklinde ya da "2 Hafta 3 Gün önce" şeklinde gösteriliyor. Ben bunu sadece "X gün önce" şeklinde örneğin "16 gün önce" şeklinde göstermek istiyorum.
Ama sistem 16 günü otomatik olarak 2 Hafta 2 Gün önce şekline sokuyor. Facebook Grubu'ndan Yusuf arkadaşımızın yönlendirmesiyle bu sorunu çözdük. O çözdü daha doğrusu :) Artık 23 gün önce 16 gün önce şeklinde gösterebiliyoruz. Şöyle ki;
Views'te Basit bir görünüm oluşturun. Başlık ve Post Date alanı ekleyin. Sonra sağ kısımdaki ADVANCED'a tıklayın, açılan menünün en altında THEME: INFORMATION yazıyor. INFORMATION'a tıklayın. Açılan pencerede temanızı seçin ve CHANGE THEME'ye tıklayın. Biz POST DATE alanı eklemiştik ya işte bu listede onu göreceğiz.
Field İçerik: Post date (ID: created): Burada bir sürü şey yazıyor bize views-view-field--GORÜNÜME VERDİĞİMİZ AD--page--created.tpl.php lazım. (Views'i açık bırakıyoruz, birazdan işimiz olacak.)
views-view-field--GORÜNÜME VERDİĞİMİZ AD--page--created.tpl adlı bir php belgesi oluştur diyor bize. Oluştur ve aşağıdaki kodları içine yapıştır diyor. Kodları yapıştırıp kaydettikten sonra belgeyi TEMANIZIN ANA DİZİNİNZE ATIN.
Sonra açık bıraktığımız Views'e geliyoruz ve RESCAN TEMPLATE FILE 'a tıklıyoruz.
Çok uzun anlattım sanırım.
<?php
/**
* @file
* This template is used to print a single field in a view.
*
* It is not actually used in default Views, as this is registered as a theme
* function which has better performance. For single overrides, the template is
* perfectly okay.
*
* Variables available:
* - $view: The view object
* - $field: The field handler object that can process the input
* - $row: The raw SQL result that can be used
* - $output: The processed output that will normally be used.
*
* When fetching output from the $row, this construct should be used:
* $data = $row->{$field->field_alias}
*
* The above will guarantee that you'll always get the correct data,
* regardless of any changes in the aliasing that might happen if
* the view is modified.
*/
?>
<?php
$ago = REQUEST_TIME - $row->node_created;
$math = 60 * 60 * 24;
$gecen_gun = floor($ago / $math);
if ($gecen_gun <= 0) {
print format_interval($ago , 1);
} else {
print $gecen_gun . ' ' . t('Gun');
}
?>