From: Jason Woofenden Date: Fri, 22 Dec 2006 03:06:00 +0000 (-0500) Subject: added calendar.php X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=commitdiff_plain;h=9852f8e5a8b84cb565343914dae4376336ccf387 added calendar.php --- diff --git a/calendar.php b/calendar.php new file mode 100644 index 0000000..6082989 --- /dev/null +++ b/calendar.php @@ -0,0 +1,113 @@ +sub('week'); +} + +function calendar_day($kind, &$template) { + $template->sub($kind); + $template->sub('day'); +} + +function calendar($year, $month, $events = 0, &$template = 0) { + if($template == 0) { + $template = $GLOBALS['wfpl_template']; + } + + if(strlen($year) == 2) { + $year = "20$year"; + } + + $start_timestamp = strtotime("$year-$month-01 00:00"); + $cell = 0; + + $template->set('month_year', strftime('%B', $start_timestamp) . " " . $year); + + # number of non-day slots at the begining of the month + $pre_non_days = date( 'w', $start_timestamp ); + + # first display empty cells so the 1st can be in the right column + while($cell < $pre_non_days) { + calendar_day('nonday', $template); + $cell++; + } + + # do the days in this month + $days_count = date( 't', $start_timestamp ); + for($day = 1; $day <= $days_count; $day++ ) { + $template->set('day_number', $day); + if(($cell + 1) % 7 < 2) { + $type = 'weekend'; + } else { + $type = 'day'; + } + if($events[$day]) { + $template->set('day_page', $events[$day]); + calendar_day("busy_$type", $template); + } else { + calendar_day("empty_$type", $template); + } + + $cell++; + if($cell % 7 == 0) { + calendar_week($template); + } + } + + # fill the rest of the row with empty cells + if($cell % 7) { + while($cell % 7) { + calendar_day('nonday', $template); + $cell++; + } + calendar_week($template); + } +} + +?> diff --git a/examples/calendar.css b/examples/calendar.css new file mode 100644 index 0000000..4269b6f --- /dev/null +++ b/examples/calendar.css @@ -0,0 +1,62 @@ +div.calendar table { border: 1px solid #444; padding: 0; margin: 20px; } +div.calendar th { + height: 15px; + width: 33px; + padding: 0px; + margin: 0px; + background: #565; + color: #fff; + font-size: 8px; + text-align: center; +} +div.calendar div.headerbox { + padding: 2px 5px; +} + +div.calendar td.nonday,td.busy_day,td.busy_weekend,td.empty_day,td.empty_weekend { + color: #000; + height: 25px; + width: 33px; + padding: 0px; + margin: 0px; + text-align: right; + vertical-align: top; + font-size: 13px; +} + +div.calendar a { + display: block; + height: 100%; + border: 1px solid #444; + padding: 2px; + color: blue; +} + +div.calendar div.daybox { + height: 100%; + border: 1px solid #444; + padding: 2px; +} + +div.calendar td.busy_day { + background: #fbb; +} +div.calendar td.busy_day a:hover,a:focus { + background: #f99; +} +div.calendar td.busy_weekend { + background: #fcc; +} +div.calendar td.busy_weekend a:hover,a:focus { + background: #f99; +} +div.calendar td.empty_day { + background: #ddd; +} +div.calendar td.empty_weekend { + background: #fff; +} + +div.calendar td.nonday { background: #999; } + +div.calendar td.year { text-align: center; font-size: 16px; height: auto; } diff --git a/examples/calendar.html b/examples/calendar.html new file mode 100644 index 0000000..3135b51 --- /dev/null +++ b/examples/calendar.html @@ -0,0 +1,36 @@ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
~month_year.html~
Sun
Mon
Tue
Wed
Thu
Fri
Sat
 
~day_number.html~
~day_number.html~
~day_number.html~
~day_number.html~
+
+ +