Membuat Kalender Blog dengan PHP

Penulis mendapatkan e-mail dari seorang pembaca yang menanyakan bagaimana caranya membuat tampilan kalender dengan menggunakan PHP. Untuk itu tulisan kali ini kita akan coba bahas mengenai pembuatan script untuk menampilkan kalender. Kalender yang akan dibuat disini bukanlah menampilkan semua bulan dalam satu tahun, tetapi hanya akan menampilkan bulan tertentu dalam tahun tertentu pula. Kita akan membuat script fungsi untuk menampilkan kalender, sehingga kita bisa panggil fungsi ini dan kalender akan dibuat secara otomatis.

Sebelumnya penulis informasikan bahwa kode script kalender ini bukanlah buatan penulis, tetapi penulis dapatkan di internet dengan modifikasi secukupnya. Terus terang penulis lupa mengenai nama pembuat script aslinya. OK, mari kita mulai proses pembuatan scriptnya.

Layout kalender yang akan kita buat tampilannya akan seperti berikut ini.

Di mana gambar di atas merupakan contoh layout untuk kalender pada bulan Mei 2006. Berikut ini adalah fungsi untuk membuat kalender seperti gambar di atas.

function build_calendar($month,$year) {
  // Create array containing abbreviations of days of week.
  $daysOfWeek = array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');

  // What is the first day of the month in question?
  $firstDayOfMonth = mktime(0,0,0,$month,1,$year);

  // How many days does this month contain?
  $numberDays = date('t',$firstDayOfMonth);

  // Retrieve some information about the first day of the
  // month in question.
  $dateComponents = getdate($firstDayOfMonth);

  // What is the name of the month in question?
  $monthName = $dateComponents['month'];

  // What is the index value (0-6) of the first day of the
  // month in question.
  $dayOfWeek = $dateComponents['wday'];

  // Create the table tag opener and day headers

  $calendar = "<table border=1 width=490 cellspacing=0 cellpadding=0 bordercolorlight=#000000 bordercolordark=#000000>";
  $calendar .= "<caption><b>$monthName, $year</b></caption>";
  $calendar .= "<tr>";

  // Create the calendar headers

  foreach($daysOfWeek as $day) {
    $calendar .= "<th width=70 bgcolor=#E1E1E1>$day</th>";
  }

  // Create the rest of the calendar

  // Initiate the day counter, starting with the 1st.

  $currentDay = 1;

  $calendar .= "</tr><tr>";

  // The variable $dayOfWeek is used to
  // ensure that the calendar
  // display consists of exactly 7 columns.

  if ($dayOfWeek > 0) {
    $calendar .= "<td colspan='$dayOfWeek'>&nbsp;</td>";
  }

  while ($currentDay <= $numberDays) {
  // Seventh column (Saturday) reached. Start a new row.

    if ($dayOfWeek == 7) {
      $dayOfWeek = 0;
      $calendar .= "</tr><tr>";
    }

    // Is the $currentDay a member of $dateArray? If so,
    // the day should be linked.

    //$calendar .= "<td>$currentDay</td>";
    $calendar .= "<td width=70><div align=center><table border=0 width=100% cellspacing=0 cellpadding=0 height=100%><tr><td><font size=2>&nbsp;$currentDay</font></td></tr><tr><td><p align=center><font size=4>-</font></td></tr><tr><td>&nbsp;</td></tr></table></div></td>";

    // Increment counters

    $currentDay++;
    $dayOfWeek++;
  }

  // Complete the row of the last week in month, if necessary
  if ($dayOfWeek != 7) {
    $remainingDays = 7 - $dayOfWeek;
    $calendar .= "<td colspan='$remainingDays'>&nbsp;</td>";
  }

  $calendar .= "</table>";

  return $calendar;
}

Sederhana bukan? Fungsi di atas kita namakan menjadi fungsi build_calendar(). Fungsi ini memiliki dua buah parameter yaitu bulan dan tahun. Fungsi ini dapat dipanggil dengan sangat mudah dengan cara seperti contoh berikut ini.

<? echo build_calendar(1,2005); ?>

Di mana nantinya akan muncul kalender untuk bulan Januari 2005. Mudah bukan? Pada bagian akhir dari tulisan ini Anda bisa mendownload source code lengkap di mana Anda bisa langsung mencoba pada lingkungan server Anda. Anda juga bisa mengembangkan script ini misalnya untuk membuat event calendar atau disisipkan pada blog Anda.

Author: Ariesa Rahardjo
Membuat Kalender Blog dengan PHP Membuat Kalender Blog dengan PHP Reviewed by Unknown on 9:09 PM Rating: 5

No comments:

Pembaca yang baik selalu meninggalkan komentar

Popular Post

Powered by Blogger.