Beedon için takvim bloğu yazmayı düşünüyordum ve deneme amaçlı (beedon şablonları kullanmadan) ufak bir script yazdım. Kodlar aşağıda
<?php
//takvim scripti
//Osman Yüksel ~ 13 Mart 2005
function return_month_name($num){ //1 gibi bir girdiyi Ocak olarak döndürür
$num=(int)$num;
$months=array("1"=>"Ocak",
"2"=>"Şubat",
"3"=>"Mart",
"4"=>"Nisan",
"5"=>"Mayıs",
"6"=>"Haziran",
"7"=>"Temmuz",
"8"=>"Ağustos",
"9"=>"Eylül",
"10"=>"Ekim",
"11"=>"Kasım",
"12"=>"Aralık",
);
return $months[$num];
}
function return_dayname($name){ //gün değeri döndür
$days=array("Monday"=>"Pazartesi",
"Tuesday"=>"Salı",
"Wednesday"=>"Çarşamba",
"Thursday"=>"Perşembe",
"Friday"=>"Cuma",
"Saturday"=>"Cumartesi",
"Sunday"=>"Pazar");
return $days[$name];
}
function return_url($value){
//2005 03 gibi bir değeri "?month=03&year=2005 gibi döndürür
$exp=explode(" ",$value);
return "?month=$exp[1]&year=$exp[0]";
}
if($_GET['year']) $year=$_GET['year']; else $year=date('Y'); //yılı al eğer yoksa şimdi yıl
if($_GET['month']) $month=$_GET['month']; else $month=date('m'); //ayı al eğer yoksa şimdiki ay
if($_GET['day']) $day=$_GET['day']; else $day=date('d'); //günü al eğer yoksa şimdiki gün
$dayname=return_dayname(date('l')); //Pazartesi gibi günün adı
$monthname=return_month_name($month); //Mart gibi ayın adı
$startday_of_month=date("w",mktime(0,0,0,$month,1,$year)); //ayın başlangıç gününü bulalım
//date("w") ile alınan değerlerde Pazar gününün değeri 0 oluyor,
//bunu haftanın 7. günü yapalım
if($startday_of_month=="0") $startday_of_month=7;
else $startday_of_month=$startday_of_month;
$totaldaysofmonth=intval(date('t', mktime(12, 0, 0, $month, 1, $year, 0))); //ayın kaç gün çektiğini bulalım
$cseven=1; //haftanın günleri değeri için başlangıç
//verileri tablo içine yazdır
$output="<table align="center">"; //tablo başlangıcı
//kısa gün adları
$output.="<tr><th>Pzt</th><th>Sal</th><th>Çrş</th><th>Prş</th><th>Cum</th><th>Cts</th><th>Paz</th><tr>";
$output.="<tr>"; //tr aç
for($items=1;$items<$totaldaysofmonth+$startday_of_month;$items++){
if($cseven==7) {//eğer haftanın son günü ise yeni bir tr aç
$put_tr="</tr>n<tr>";
$cseven=0;
} #if
else $put_tr=""; //değilse açma
if($items<$startday_of_month){ //haftanın başlangıç gününe kadar olan yerleri boş bırak
$output.="<td></td>";
$cseven++;
} #if
else{ //değilse gün sayısını arttır ve değeri yaz
$daycount++;
$output.="<td>$daycount</td>$put_tr";
$cseven++;
} #else
}#for
$previous_month=date("Y m",mktime(0,0,0,$month-1,$day,$year)); //önceki ay
$next_month=date("Y m",mktime(0,0,0,$month+1,$day,$year)); //sonraki ay
$previous_year=date("Y m",mktime(0,0,0,$month,$day,$year-1)); //önceki yıl
$next_year=date("Y m",mktime(0,0,0,$month,$day,$year+1)); //sonraki yıl
//sırayla "önceki yıl linki", "önceki ay linki", "ay ve yıl adı", "sonraki ay linki" ve "sonraki yıl linkini yazdır
echo "<div align="center"><a href="".return_url($previous_year).""><< </a> ".
"<a href="".return_url($previous_month).""> < </a> ".return_month_name($month)." $year ".
"<a href="".return_url($next_month).""> > </a> <a href="".return_url($next_year).""> >> </a></div><br>";
$output.="</tr></table>"; //tr'ı ve tabloyu kapat
echo $output; //değeri ekrana yazdır
?>
|