PHP de Takvim Oluşturmak
|
#2522 |
|
Kaan
User is:
Posts: 2471
Meslek: Serbest
Age: 29
|
PHP de Takvim Oluşturmak Üst kısımda önceki ve sonraki ayların linkleri, altta ise takvimin kendisi bulunmaktadır. Seçilmiş ay ismini takip eden yıl ve ayın günlerini tablo şeklinde göstermektedir. Geliştirmenize yardımcı olması için iyi bir PHP düzenleyicisine ihtiyaç duyabilir ya da yeterince deneyimli iseniz Notepad gibi kolay anlaşılır bir metin düzenleyici kullanabilirsiniz. Öncelikle parametrelerimizi nasıl taşıyacağımıza karar vermemiz gerekmektedir. Değerleri ‘hidden’ input alanı içinde html kod olarak veya URL yoluyla taşıyabiliriz. Bu yazıda ikinci yöntemi kullanacağız. Biri “ay” için diğeri “yıl” için olan iki ayrı parametreye ihtiyaç duyacağız. Ayrıca ay isimlerinin olduğu bir diziye ihtiyacımız var. Kod: $aylar = Array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"); İlk olarak parametrelerimize değer verilmiş mi diye kontrol etmemiz gerekiyor. Eğer değer verilmemiş ise biz kendimiz şuanki ay ve yıl değerlerini vermeliyiz. Kod: if (!isset($_REQUEST["ay"])) $_REQUEST["ay"] = date("n"); if (!isset($_REQUEST["yil"])) $_REQUEST["yil"] = date("Y"); Takvimimiz içinde kullandığımız diğer değişkenlerinde değerlerini atamalıyız. Kod: $ay = $_REQUEST["ay"]; $yil = $_REQUEST["yil"]; $onceki_yil = $yil; $sonraki_yil = $yil; $onceki_ay = $ay-1; $sonraki_ay = $ay+1; if ($onceki_ay == 0 ) { $onceki_ay = 12; $onceki_yil = $yil - 1; } if ($sonraki_ay == 13 ) { $sonraki_ay = 1; $sonraki_yil = $yil + 1; } $ay ve $yil değişkenleri takvimdeki şuan ki ay ve yılı göstermek için kullanılmakta. “<<” ve “>>” linkleri karşılığı için parametrelere ihtiyacımız var. $onceki_yil ve $sonraki_yil şimdiki için ayarlıyoruz. Daha sonra bunu değiştirebiliriz, şimdilik bu yeterli. Ayrıca sonraki ve önceki ay parametreleri içinde sırasıyla 1 ekleyerek ve çıkararak değerlerini atayalım. Şimdi parametrelerimizin limitin altına veya üstüne çıkıp çıkmadığını kontrol etmeliyiz. Bir yılda 12 ay olduğuna göre eğer parametre 13’e geldiyse diğer bir yıla geçmişiz demektir ve parametremizi tekrar 1’e (Ocak) getirmeliyiz ve yıl ‘yil’ parametremize 1 eklemeliyiz. Öte yandan, biz zamanda geriye döndüğümüzde ve ‘ay’ parametremiz 0’a gider. Dolayısıyla ‘yıl’ parametremizi 1 azaltmalıyız ve ay parametresini 12 (Aralık) olarak ayarlamalıyız. Şimdi önceki ve sonraki aylar için linklerimizi ayarladığımıza göre takvimin nasıl yapıldığına dönebiliriz. Takvimimizi yerleştireceğimiz bir tablo yaratalım. Sonra tabloya günlerin belirtildiği bir satır ekleyelim. Ayrıca ilk satır ayın ismi ve yılı içermektedir. Ama diziler sıfırdan başladıklarından doğru ismi elde etmek için “ay” parametresinin değerinden 1 çıkarmamız gerekir. Kod: <table width="200"> <tr> <td align="center"> <table width="100%" border="0" cellpadding="2" cellspacing="2"> <tr align="center"> <td colspan="7" bgcolor="#999999"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="20%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "?ay=". $onceki_ay . "&yil=" . $onceki_yil; ?>" style="color:#FFFFFF"><<</a></a></a></td> <td align="center" style="color:#FFFFFF"><strong><?php echo $aylar[$ay-1].' '.$yil; ?></strong></td> <td width="20%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?ay=". $sonraki_ay . "&yil=" . $sonraki_yil; ?>" style="color:#FFFFFF">>></a> </td> </tr> </table> </td> </tr> <tr> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Pa</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Pt</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Sa</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Ça</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Pe</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Cu</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Ct</strong></td> </tr> Şimdi takvimimiz için düzgün tarihleri ayarlayalım. Tarihlerin sayı karşılıklarını girerek bu işi kolayca halledebiliriz. Seçili ayın günlerinin sayısını ve ayın ilk gününün sayısal karşılıklarını alacağız (Pazar için 0 olmak üzere 6 Cumartesi) . Bütün bu fonksiyonlar php manüelinde açıklanmaktadır. Tarihleri çıkaracak olan döngümüz sıfırda başlıyor çünkü haftanın günleri 0 (pazar) dan başlıyor. Ayın ilk gününün dengi artı günlerin sayısı boyunca döngü yapar. Her hafta için yeni bir sıra yazdırmalıyız. Bir haftadaki günlerin sayısı olan 7′yi mod kabul ediyoruz ve sayıların bu mod sisteminde değerlerini kontrol ediyoruz. Eğer sıfıra eşitse haftanın başlangıcı oluyor ve açık sıra tagi <tr> yazdırıyoruz, eğer haftanın sonu ise 6; bu hafta için kapalı sıra tagi </tr> yazdırıyoruz. Yapmamız gereken yazdırdığımız günün cumartesiden önce olup olmadığını kontrol etmek. Bu durumda boş tag yazdırıyoruz. Aksi durumda tarihi yazdırmamız gerek. Bunu cumartesiyi çıkararak yapıyoruz. Bir eklemek gerekiyor çünkü tarihlerin 0 dan başlamasını istemeyiz. Kod: <?php $zaman = mktime(0,0,0,$ay,1,$yil); $maxgun = date("t",$zaman); $buay = getdate ($zaman); $ilkgun = $buay['wday']; for ($i=0; $i<($maxgun+$ilkgun); $i++) { if(($i % 7) == 0 ) echo "<tr>\n"; if($i < $ilkgun) echo "<td style=\"color:#FFFFFF\"></td>\n"; else echo "<td align='center' valign='middle' height='20px' style=\"color:#FFFFFF\">". ($i - $ilkgun + 1) . "</td>\n"; if(($i % 7) == 6 ) echo "</tr>\n"; } ?> Şimdi son adımı yazıp takvimi bitiriyoruz. </table> </td> </tr> </table> |
Seditio Emlak Scripti Demo: http://fordcikmacisi.net/emlak/ Seditio Oto Galeri Scripti Demo: http://fordcikmacisi.net/otogaleri/ Siparişleriniz için PM veya kaan@ntka.org Mail Gönderin. Bi Dünya Müzik: http://bdmfan.com Seditio Şimdi Daha Güvenli ve Daha Hızlı Gücünü Hissedin. Takdir ediliyorsan değil, Taklit ediliyorsan başarmışsın demektir. -Albert Einstein |













