• 02-01-2009, 08:04:15
    #1
    Arkadaşlar, php siteniz varsa, bu yazıyı okuyarak sitenizde güzel ve sade bir takvim sahibi olabilirsiniz.

    Takvim 2 bölümden oluşuyor, üst kısımda ayları ileri geri sarma yeri, alt kısımdada takvimin o anda seçilmiş ve gösterilen ayına ait günler ve rakamlar.

    Öncelikle 2 array'e ihtiyacımız var, biri ay diğeri yıl. Ay için isimleri girelim:

    KOD: (buradan sonrasındaki açık renk yazıları php uzantılı bir dosyaya aynen yapıştırın yada php uzantılı sayfanızda uygun gördüğünüz yere yapıştırın)

    Burada $cMonth ve $cYear takvimimizde gösterilecek olan şu anki ay ve yılı belirtmektedirler. Ayrıca renk ayarını -zaten biliyorsunuzdur- #ile başlayan color kodlarını değiştirerek yapabilirsiniz.

    Güle güle kullanın, bana ne kadar REP verirseniz Allah size 10 katını versin

    <?php
    $monthNames = Array("Ocak", "Subat", "Mart", "Nisan", "Mayis", "Haziran", "Temmuz", "Agustos", "Eylul", "Ekim", "Kasim", "Aralik");
    ?>

    <?php
    if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
    if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
    ?>

    <?php
    $cMonth = $_REQUEST["month"];
    $cYear = $_REQUEST["year"];

    $prev_year = $cYear;
    $next_year = $cYear;

    $prev_month = $cMonth-1;
    $next_month = $cMonth+1;

    if ($prev_month == 0 ) {
    $prev_month = 12;
    $prev_year = $cYear - 1;
    }
    if ($next_month == 13 ) {
    $next_month = 1;
    $next_year = $cYear + 1;
    }
    ?>


    <table width="200">
    <tr align="center">
    <td bgcolor="#999999" style="color:#FFFFFF">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="50%" align="left">&nbsp;&nbsp;<a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Geri</a></td>
    <td width="50%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Ileri</a>&nbsp;&nbsp;</td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td align="center">
    <table width="100%" border="0" cellpadding="2" cellspacing="2">
    <tr align="center">
    <td colspan="7" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
    </tr>
    <tr>
    <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td>
    <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>M</strong></td>
    <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td>
    <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>W</strong></td>
    <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td>
    <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>F</strong></td>
    <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td>
    </tr>

    <?php
    $timestamp = mktime(0,0,0,$cMonth,1,$cYear);
    $maxday = date("t",$timestamp);
    $thismonth = getdate ($timestamp);
    $startday = $thismonth['wday'];

    for ($i=0; $i<($maxday+$startday); $i++) {
    if(($i % 7) == 0 ) echo "<tr>\n";
    if($i < $startday) echo "<td></td>\n";
    else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>\n";
    if(($i % 7) == 6 ) echo "</tr>\n";
    }
    ?>

    </table>
    </td>
    </tr>
    </table>
  • 02-01-2009, 08:34:30
    #2
    Üyeliği durduruldu
    ellerinize sağlık ama birazda arka planda ki olaylardan bahsetseydiniz kişilerin anlaması ve düzenleyebilmesi. ezberciliğe alışmaması yönünden iyi olurdu.

    - mesela ayın ilk günü haftanın hangi gününe denk geliyor o nasıl neden bulunmalı
    - ayın kaç gün çektiği nasıl hesaplanıyor

    gibi gibi
  • 02-01-2009, 08:50:30
    #3
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    ellerinize sağlık ama birazda arka planda ki olaylardan bahsetseydiniz kişilerin anlaması ve düzenleyebilmesi. ezberciliğe alışmaması yönünden iyi olurdu.

    - mesela ayın ilk günü haftanın hangi gününe denk geliyor o nasıl neden bulunmalı
    - ayın kaç gün çektiği nasıl hesaplanıyor

    gibi gibi
    O kısım scriptin şu bölümünde yer alıyor:

    <?php
    $timestamp = mktime(0,0,0,$cMonth,1,$cYear);
    $maxday = date("t",$timestamp);
    $thismonth = getdate ($timestamp);
    $startday = $thismonth['wday'];

    for ($i=0; $i<($maxday+$startday); $i++) {
    if(($i % 7) == 0 ) echo "<tr>\n";
    if($i < $startday) echo "<td></td>\n";
    else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>\n";
    if(($i % 7) == 6 ) echo "</tr>\n";
    }
    ?>

    Burada 0 değerli gün haftanın ilk günü olan Pazara tekamül ediyor.
    1 pazartesi 2 salı .. 6 cumartesi şeklinde.

    Ayların tamamlanıp yıl devrilmesi ise şurada;

    if ($next_month == 13 ) {
    $next_month = 1;
    $next_year = $cYear + 1;

    12ye kadar 1er 1er sayıp 13 e gelince yıl döngüsüne 1 ekler.

    Bence ezberden çok kodu alıp orası burası ile oynasın arkadaşlar en güzel öğrenme deneme yanılma, yapma bozma şeklinde olur.
  • 02-01-2009, 08:56:42
    #4
    Üyeliği durduruldu
    Sporweb adlı üyeden alıntı: mesajı görüntüle
    Bence ezberden çok kodu alıp orası burası ile oynasın arkadaşlar en güzel öğrenme deneme yanılma, yapma bozma şeklinde olur.
    aynen bencede öyle de insanımız çok ezberci aldığı kod olduğu gibi yapıştırınca çalışmazsa beyin hücerlerini yormak istemiyor )
  • 05-03-2010, 22:24:22
    #5
    Kodları biraz inceledim kendimce geliştirdim falan ama bir sorum var
    ayın 1. günü pazar günü ise O ay 2 den başlıyor ağustos 2010 mesela neden kaynaklandığına baktım ama çözemedim henüz yardımcı olabilirmisiniz acaba nedn kaynaklandığını bulsam belki düzeltebilirim.
  • 06-03-2010, 00:43:22
    #6
    paylaşım için tşkler..