2012 April


MonTueWedThuFriSatSun
 1
2345678
9101112131415
16171819202122
23242526272829
30 


2012 May


MonTueWedThuFriSatSun
 123456
78910111213
14151617181920
21222324252627
28293031 


2012 June


MonTueWedThuFriSatSun
 123
45678910
11121314151617
18192021222324
252627282930 


2012 July


MonTueWedThuFriSatSun
 1
2345678
9101112131415
16171819202122
23242526272829
3031 


2012 August


MonTueWedThuFriSatSun
 12345
6789101112
13141516171819
20212223242526
2728293031 


2012 September


MonTueWedThuFriSatSun
 12
3456789
10111213141516
17181920212223
24252627282930


2012 October


MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
293031 



     






Subscribe Unsubscribe

create(); EXAMPLE #2: $myCal = new CALENDAR(2004, 12); echo $myCal->create(); EXAMPLE #3: $myCal = new CALENDAR(); $myCal->year = 2004; $myCal->month = 12; echo $myCal->create(); Returns HTML code ========================================================================================================== */ error_reporting(E_WARNING); $cal_ID = 0; class CALENDAR { //======================================================================================================== // Configuration //======================================================================================================== var $tFontFace = 'Arial, Helvetica'; // title: font family (CSS-spec, e.g. "Arial, Helvetica") var $tFontSize = 14; // title: font size (pixels) var $tFontColor = '#FFFFFF'; // title: font color var $tBGColor = '#000000'; // title: background color var $hFontFace = 'Arial, Helvetica'; // heading: font family (CSS-spec, e.g. "Arial, Helvetica") var $hFontSize = 12; // heading: font size (pixels) var $hFontColor = '#FFFFFF'; // heading: font color var $hBGColor = '#000000'; // heading: background color var $dFontFace = 'Arial, Helvetica'; // days: font family (CSS-spec, e.g. "Arial, Helvetica") var $dFontSize = 14; // days: font size (pixels) var $dFontColor = '#b6b6b6'; // days: font color var $dBGColor = '#000000'; // days: background color var $wFontFace = 'Arial, Helvetica'; // weeks: font family (CSS-spec, e.g. "Arial, Helvetica") var $wFontSize = 12; // weeks: font size (pixels) var $wFontColor = '#FFFFFF'; // weeks: font color var $wBGColor = '#304B90'; // weeks: background color var $saFontColor = '#FFFFFF'; // Saturdays: font color var $saBGColor = '#000000'; // Saturdays: background color var $suFontColor = '#FFFFFF'; // Sundays: font color var $suBGColor = '#000000'; // Sundays: background color var $tdBorderColor = '#FFFFFF'; // today: border color var $borderColor = '#FF0000'; // border color var $hilightColor = '#F0F0F00'; // hilight color (works only in combination with link) var $link = ''; // page to link to when day is clicked var $linkTarget = ''; // link target frame or window, e.g. parent.myFrame var $offset = 2; // week start: 0 - 6 (0 = Saturday, 1 = Sunday, 2 = Monday ...) var $weekNumbers = false; // view week numbers: true = yes, false = no //-------------------------------------------------------------------------------------------------------- // You should change these variables only if you want to translate them into your language: //-------------------------------------------------------------------------------------------------------- // weekdays: must start with Saturday because January 1st of year 1 was a Saturday var $weekdays = array("Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri"); // months: must start with January var $months = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "Octobre", "November", "December"); // error messages var $error = array("Year must be 1 - 3999!", "Month must be 1 - 12!"); //-------------------------------------------------------------------------------------------------------- // Don't change from here: //-------------------------------------------------------------------------------------------------------- var $year, $month, $size; var $mDays = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var $specDays = array(); //======================================================================================================== // Functions //======================================================================================================== function CALENDAR($year = '', $month = '', $week = '') { if($year == '' && $month == '') { $year = date('Y'); $month = date('n'); } else if($year != '' && $month == '') $month = 1; $this->year = (int) $year; $this->month = (int) $month; $this->week = (int) $week; if($this->linkTarget == '') $this->linkTarget = 'document'; } function set_styles() { global $cal_ID; $cal_ID++; $html = ''; return $html; } function leap_year($year) { return (!($year % 4) && ($year < 1582 || $year % 100 || !($year % 400))) ? true : false; } function get_weekday($year, $days) { $a = $days; if($year) $a += ($year - 1) * 365; for($i = 1; $i < $year; $i++) if($this->leap_year($i)) $a++; if($year > 1582 || ($year == 1582 && $days > 277)) $a -= 10; if($a) $a = ($a - $this->offset) % 7; else if($this->offset) $a += 7 - $this->offset; return $a; } function get_week($year, $days) { $firstWDay = $this->get_weekday($year, 0); if($year == 1582 && $days > 277) $days -= 10; return floor(($days + $firstWDay) / 7) + ($firstWDay <= 3); } function table_cell($content, $class, $date = '', $style = '') { global $cal_ID; $size = round($this->size * 1.4); $html = 'link; $events = array(); $bgColor = ''; if(is_array($this->specDays[$content])) { foreach($this->specDays[$content] as $arr) { if($arr[0]) $bgColor = $arr[0]; if($arr[1]) $events[] = $arr[1]; if($arr[2]) $link = $arr[2]; } $html .= ' title="' . join(' · ', $events) . '"'; if($bgColor) $style .= 'background-color:' . $bgColor . ';'; } if($link) { $link .= strstr($link, '?') ? "&date=$date" : "?date=$date"; $html .= ' onMouseOver="this.className=\'cssHilight' . $cal_ID . '\'"'; $html .= ' onMouseOut="this.className=\'' . $class . '\'"'; $html .= ' onClick="' . $this->linkTarget . '.location.href=\'' . $link . '\'"'; } } if($style) $html .= ' style="' . $style . '"'; $html .= '>' . $content . ''; return $html; } function table_head($content) { global $cal_ID; $cols = $this->weekNumbers ? 8 : 7; $html = '' . $content . ''; for($i = 0; $i < count($this->weekdays); $i++) { $ind = ($i + $this->offset) % 7; $wDay = $this->weekdays[$ind]; $html .= $this->table_cell($wDay, 'cssHeading' . $cal_ID); } if($this->weekNumbers) $html .= $this->table_cell(' ', 'cssHeading' . $cal_ID); $html .= ''; return $html; } function viewEvent($from, $to, $color, $title, $link = '') { if($from > $to) return; if($from < 1 || $from > 31) return; if($to < 1 || $to > 31) return; while($from <= $to) { if(!$this->specDays[$from]) $this->specDays[$from] = array(); $this->specDays[$from][] = array($color, $title, $link); $from++; } } function viewEventEach($weekday, $color, $title, $link = '') { if($weekday < 0 || $weekday > 6) return; for($i = $days = 0; $i < $this->month - 1; $i++) $days += $this->mDays[$i]; for($i = 0; $i < $this->mDays[$this->month-1]; $i++) { if($this->get_weekday($this->year, $days + $i) == $weekday - $this->offset + 1) { if(!$this->specDays[$i]) $this->specDays[$i] = array(); $this->specDays[$i][] = array($color, $title, $link); } } } function create() { global $cal_ID; $this->size = ($this->hFontSize > $this->dFontSize) ? $this->hFontSize : $this->dFontSize; if($this->wFontSize > $this->size) $this->size = $this->wFontSize; list($curYear, $curMonth, $curDay) = explode('-', date('Y-m-d')); if($this->year < 1 || $this->year > 3999) $html = '' . $this->error[0] . ''; else if($this->month < 1 || $this->month > 12) $html = '' . $this->error[1] . ''; else { $this->mDays[1] = $this->leap_year($this->year) ? 29 : 28; for($i = $days = 0; $i < $this->month - 1; $i++) $days += $this->mDays[$i]; $start = $this->get_weekday($this->year, $days); $stop = $this->mDays[$this->month-1]; $html = $this->set_styles(); $html .= ''; $html .= 'borderColor ? ' bgcolor=' . $this->borderColor : '') . '>'; $html .= '
'; $title = htmlentities($this->months[$this->month-1]) . ' ' . $this->year; $html .= $this->table_head($title); $daycount = 1; if(($this->year == $curYear) && ($this->month == $curMonth)) $inThisMonth = true; else $inThisMonth = false; if($this->weekNumbers || $this->week) $weekNr = $this->get_week($this->year, $days); while($daycount <= $stop) { if($this->week && $this->week != $weekNr) { $daycount += 7 - ($daycount == 1 ? $start : 0); $weekNr++; continue; } $html .= ''; for($i = $wdays = 0; $i <= 6; $i++) { $ind = ($i + $this->offset) % 7; if($ind == 0) $class = 'cssSaturdays'; else if($ind == 1) $class = 'cssSundays'; else $class = 'cssDays'; $style = ''; $date = sprintf('%4d-%02d-%02d', $this->year, $this->month, $daycount); if(($daycount == 1 && $i < $start) || $daycount > $stop) $content = ' '; else { $content = $daycount; if($inThisMonth && $daycount == $curDay) { $style = 'padding:0px;border:3px solid ' . $this->tdBorderColor . ';'; } else if($this->year == 1582 && $this->month == 10 && $daycount == 4) $daycount = 14; $daycount++; $wdays++; } $html .= $this->table_cell($content, $class . $cal_ID, $date, $style); } if($this->weekNumbers) { if(!$weekNr) { if($this->year == 1) $content = ' '; else if($this->year == 1583) $content = 51; else $content = $this->get_week($this->year - 1, 365); } else if($this->month == 12 && $weekNr >= 52 && $wdays < 4) $content = 1; else $content = $weekNr; $html .= $this->table_cell($content, 'cssWeeks' . $cal_ID); $weekNr++; } $html .= ''; } $html .= '
'; } return $html; } } ?>