<?
# โปรแกรมแสดงปฏิทิน (version 1.3)
# Upgrade from http://scripts.franciscocharrua.com/php-calendar.php
# แสดงกิจกรรม แบบ mouse over แต่ละวันใน 1 เดือน หรือ 1 ปี
# โดย บุรินทร์ รุจจนพันธุ์ webmaster@thaiall.com tel.08-1992-7223
###################################################################
# 2549-11-28
# - รับเลขปี 0000 สำหรับกิจกรรมที่มีทุกปี เช่นวันเกิด
# - เปลี่ยนเป็นภาษาไทยมากขึ้น และเพิ่มวันสำคัญประจำปี
# - แก้ไขเรื่องการใช้ tag ฟุ่มเฟือย
# 2549-05-27
# - ปรับให้เลือกปีต่อไปได้ง่าย และไม่สับสน
# - เพิ่มส่วนแสดงรายละเอียด
# 2547-07-30
# - เริ่มพัฒนา
###################################################################
$mt = array("เดือน","มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
$m = array("Month","January","February","March","April","May","June","July","August","September","October","November","December");
$w = array(
"0000".$m[1]."1"=>"วันขึ้นปีใหม่",
"0000".$m[1]."16"=>"วันครู",
"0000".$m[1]."18"=>"วันยุทธหัตถี",
"0000".$m[2]."14"=>"วันแห่งความรัก",
"0000".$m[4]."6"=>"วันจักรี",
"0000".$m[4]."13"=>"วันสงกรานต์",
"0000".$m[4]."14"=>"วันสงกรานต์",
"0000".$m[4]."15"=>"วันสงกรานต์",
"0000".$m[5]."1"=>"วันแรงงานแห่งชาติ",
"0000".$m[5]."5"=>"วันฉัตรมงคล",
"0000".$m[8]."12"=>"วันแม่แห่งชาติ",
"0000".$m[10]."23"=>"วันปิยมหาราช",
"0000".$m[12]."5"=>"วันพ่อ",
"0000".$m[12]."10"=>"วันพระราชทานรัฐธรรมนูญ",
"0000".$m[12]."31"=>"วันสิ้นปี",
"0000".$m[6]."4"=>"วันคล้ายวันเกิด".chr(13)."อ.บุรินทร์ รุจจนพันธุ์",
"0000".$m[6]."5"=>"วันคล้ายวันเกิด".chr(13)."อ.ถนอม คณิตปัญญาเจริญ",
"2004".$m[7]."30"=>"ทดสอบโปรแกรมนี้".chr(13)."กับเครื่องที่บ้าน thaiall.com ได้สำเร็จ",
"2006".$m[5]."27"=>"ปรับปรุงเป็นรุ่น 1.2",
"2006".$m[11]."28"=>"ปรับปรุงเป็นรุ่น 1.3",
);
if (isset($_GET["detail"])) {
echo "<pre><ol>";
foreach($w as $k => $v) echo "<li><b>".$k."</b><dd>$v";
echo "</ol><hr><a href='?'>ปฏิทิน</a> <a href=http://www.thaiall.com/perlphpasp/source.pl?9111>Source Code</a>";
exit;
}
$bodybgcolor = "ffffff"; // สีพื้นนอกตาราง
$titlebgcolor= "000000"; // สีพื้นของส่วน title ที่แสดงเดือน และปี
$titlecolor = "ffffff"; // สีตัวอักษรของส่วน title ที่แสดงเดือน และปี
$onbgcolor = "444466"; // สีพื้นของวันที่ปัจจุบัน
$oncolor = "ffffff"; // สีตัวอักษรของวันที่ปัจจุบัน
$offbgcolor = "ddffdd"; // สีพื้นของวันที่
$offcolor = "000000"; // สีพื้นของวันที่
$wcolor = "ff0000"; // สีตัวอักษรของวันที่ ที่มีกิจกรรม
$framewidth = 170;
$tablewidth = 150;
?>
<html><head>
<style type="text/css">
a:link,a:visited,a:hover{color:yellow;text-decoration:none;}
td{font-size:8pt;font-family:microsoft sans serif;text-align:right;}
</style>
</head><body topmargin=0 leftmargin=0 bgcolor=<?=$bodybgcolor; ?>>
<?
if (!isset($_GET["year"])) {
echo calendar(getDate());
} else {
echo "<table width=100% bgcolor=black><td><font size=6 color=white><center>
<a href=?year=". ($_GET["year"] - 1) ."><<</a>
ปฏิทิน ".($_GET["year"] + 543) . " (<a href=?detail=display>รายละเอียด</a>)
<a href=?year=". ($_GET["year"] + 1) .">>></a>";
echo "</table><table width=95% align=center cellpadding=0 cellspacing=0 border=0>
<tr>
<td><iframe src=?next=no&month=1&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=2&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=3&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=4&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
</tr>
<tr>
<td><iframe src=?next=no&month=5&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=6&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=7&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=8&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
</tr>
<tr>
<td><iframe src=?next=no&month=9&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=10&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=11&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
<td><iframe src=?next=no&month=12&y=".$_GET["year"]." width=$framewidth frameborder=0></iframe>
</tr>
</table>
";
}
function calendar($date) {
global $w,$mt,$tablewidth,$titlebgcolor,$titlecolor,$onbgcolor,$oncolor,$offbgcolor,$offcolor,$wcolor;
$real_month = $date["mon"];
$real_year = $date["year"];
if(!isset($_GET["m"])) $om = 0; else $om = $_GET["m"];
if(!isset($_GET["m"])) $m = $date["mon"]; else $m = $date["mon"] + $_GET["m"];
if(!isset($_GET["m"])) $d = $date["mday"]; else $d = 1;
if(isset($_GET["y"])) $y = $_GET["y"]; else $y = $date["year"];
if(isset($_GET["month"])) {
$m = $_GET["month"];
if($m <> $real_month) $d = 1;
}
$date = getDate(mktime(0, 0, 0, $m, $d, $y));
$day = $date["mday"];
$month = $date["mon"];
$month_name = $mt[$date["mon"]]; // $date["month"
$year = $date["year"];
$this_month = getDate(mktime(0, 0, 0, $month, 1, $year));
$next_month = getDate(mktime(0, 0, 0, $month + 1, 1, $year));
//Find out when this month starts and ends.
$first_week_day = $this_month["wday"];
$days_in_this_month = floor(($next_month[0] - $this_month[0]) / (60 * 60 * 24));
$calendar_html = "";
$calendar_html .= "<table width=$tablewidth style=\"background-color:".$offbgcolor.";color:".$offcolor.";\"";
$calendar_html .= "border=1 cellpadding=1 cellspacing=0><tr><td style=\"background-color:".$titlebgcolor."; color:".$titlecolor.";\" colspan=7><center>";
if (!isset($_GET["next"])) {
if (($om - 1) == 0)
$calendar_html .= "<a href='?'><<</a> ";
else
$calendar_html .= "<a href=?m=". ($om - 1) ."><<</a> ";
$calendar_html .= $month_name . " <a href=?year=$year target=_blank>". ($year + 543) . "</a> ";
} else {
$calendar_html .= $month_name . ($year + 543);
}
if (!isset($_GET["next"])) {
if (($om + 1) == 0)
$calendar_html .= "<a href='?'>>></a></tr><tr>";
else
$calendar_html .= "<a href=?m=". ($om + 1) .">>></a></td></tr>";
}
$calendar_html .= "<tr align=center style=\"background-color:".$titlebgcolor."; color:".$titlecolor.";\">";
$calendar_html .= "<td>S<td>M<td>T<td>W<td>T<td>F<td>S</tr><tr>";
//Fill the first week of the month with the appropriate number of blanks.
for($week_day = 0; $week_day < $first_week_day; $week_day++) {
$calendar_html .= "<td style=\"background-color:".$offbgcolor.";\"> </td>";
}
$week_day = $first_week_day;
for($day_counter = 1; $day_counter <= $days_in_this_month; $day_counter++) {
$week_day %= 7;
if($week_day == 0) $calendar_html .= "</tr><tr>";
//Do something different for the current day.
$ymd = $year . $date["month"] . $day_counter;
$wout ="";
if (isset($w["0000" . substr($ymd,-(strlen($ymd) - 4))])) $wout ="title=\"". $w["0000" . substr($ymd,-(strlen($ymd) - 4))]."\"";
if (isset($w[$ymd])) $wout ="title=\"". $w[$ymd]."\"";
if (strlen($wout) == 0) $wc = ""; else $wc = "<font color=#$wcolor>";
if($day == $day_counter && $m == $real_month && $y == $real_year) {
$calendar_html .= "<td align=center style=\"background-color:".$onbgcolor.";color:".$oncolor.";\"><a $wout>" . $day_counter . "</a></td>";
} else {
$calendar_html .= "<td ". $wout .">$wc".$day_counter;
}
$week_day++;
}
if ($week_day != 0) for($wk = $week_day; $wk <= 6; $wk++) $calendar_html .= "<td> ";
$calendar_html .= "</tr></table>";
return($calendar_html);
} // end of function
?>
จำนวน : 162 บรรทัด