diff options
Diffstat (limited to 'blocks/mini_calendar')
-rw-r--r-- | blocks/mini_calendar/functions.php | 195 | ||||
-rw-r--r-- | blocks/mini_calendar/index.php | 3 | ||||
-rw-r--r-- | blocks/mini_calendar/scripts.js | 0 | ||||
-rw-r--r-- | blocks/mini_calendar/style.css | 114 |
4 files changed, 312 insertions, 0 deletions
diff --git a/blocks/mini_calendar/functions.php b/blocks/mini_calendar/functions.php new file mode 100644 index 0000000..ffc98a6 --- /dev/null +++ b/blocks/mini_calendar/functions.php @@ -0,0 +1,195 @@ +<?php +/** + * Bayonet Content Management System + * Copyright (C) 2008 Joseph Hunkeler & Evan O'Connell + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +/** + * Note to anyone feeling the need to edit this file... + * You MUST declare $db as global inside your functions in order access MySQL from here. + */ + + /** + * PrintCalendar() - prints the calendar with events + */ + ?> +<script type="text/javascript"> +function openEvent(date) +{ + myWindow = window.open('http://testbed.3rd-infantry-division.org/cms/blocks/mini_calendar/event.php?date='+date+'','','width=300,height=300') + myWindow.focus(); +} +</script> + <?php + function PrintCalendar(){ + + $date = time(); + date_default_timezone_set("America/New_York"); //EASTERN TIME ZONE + + $day = date('d', $date); + $today = date('j', $date); + $month = date('m', $date); + $monthNum = date('n', $date); + $year = date('Y', $date); + + /* Accounts for the last couple days from the previous months */ + $first_day = mktime(0,0,0,$monthNum, 1, $year); + + $title = date('F', $first_day); + + $day_of_week = date('D', $first_day); + + switch($day_of_week){ + case "Sun": $blank = 0; break; + case "Mon": $blank = 1; break; + case "Tue": $blank = 2; break; + case "Wed": $blank = 3; break; + case "Thu": $blank = 4; break; + case "Fri": $blank = 5; break; + case "Sat": $blank = 6; break; + } + + /* calculates the days in the current month */ + $days_in_month = cal_days_in_month(0, $monthNum, $year); + + //makes sure that previous year is not year 0 + if($monthNum == 1){ + $previous_month = 12; + $previous_year = $year-1; + }else{ + $previous_month = $monthNum-1; + $previous_year = $year; + } + //makes sure the next year is not year 13 + if($monthNum == 12){ + $next_month = 1; + $next_year = $year+1; + }else{ + $next_month = $monthNum+1; + $next_year = $year; + } + ?> + <center> + <table class="calendar" style="background-color:white;" cellspacing="1" cellpadding="0"> + <tr style="background-color:#999999; height:20px;"> + <td colspan="50" style="vertical-align:middle; text-align:center;"> + <!-- <a href="?op=calendar&month=<?php echo $previous_month.'&year='.$previous_year; ?>"><<</a> --> + <!-- Month Name and Year --> + <span class="monthTitle"><?php echo strtoupper($title).' '.$year; ?></span> + <!-- <a href="?op=calendar&month=<?php echo $next_month.'&year='.$next_year; ?>">>></a> --> + </td> + </tr> + + <tr> + <th class="weekday">Sun</th><th class="weekday">Mon</th><th class="weekday">Tue</th><th class="weekday">Wed</th> + <th class="weekday">Thu</th><th class="weekday">Fri</th><th class="weekday">Sat</th> + </tr> + + <tr> + <?php + + $day_count = 1; //holds the current day of the week 1-7 + $day_num = 1; //holds the current day of the month 1-31 + + $days_monthbefore = cal_days_in_month(0, $previous_month, $year); + //prints the numbers of days for the previous month + while($blank > 0){ + $blank = $blank-1; + $days_before = $days_monthbefore-$blank; + echo '<td class="cal_notmonth">'.$days_before.'</td>'; //'.$days_before.'</td>'; + $day_count++; + } + +$sqlToday = date("Y-m-d", mktime(0, 0, 0, $monthNum, $today, $year)); +$events = GetEventsOnInterval("{$year}-{$monthNum}-01","{$year}-{$monthNum}-{$days_in_month}"); + + //loop printing each day of the CURRENT month ONLY + while($day_num <= $days_in_month){ + + if($day_count==1 || $day_count==7){ + echo '<td class="cal_weekend">'; //weekends + }else{ + echo '<td class="cal_weekday">'; //weekdays + } + + $sqlDate = date("Y-m-d", mktime(0, 0, 0, $monthNum, $day_num, $year)); + + //checks to see if the current day has events + $isEvent=false; + foreach($events as $event){ + if($event['date'] == $sqlDate){ + $isEvent = true; + if($event['date'] == $sqlToday){ + $todaysEvents[] = $event; + } + } + + } + if($day_num == $today && $isEvent==true){ + echo '<div class="eventtoday">'.$day_num.'</div>'; + }else if($day_num == $today && $isEvent==false){ + echo '<div class="monthtoday">'.$day_num.'</div>'; + }else if($day_num != $today && $isEvent==true){ + echo "<div class=\"event\" onclick=\"openEvent('{$sqlDate}')\">"; + echo $day_num; + echo '</div>'; + }else{ + echo $day_num; + } + + echo '</td>'; + + $day_num++; + $day_count++; + + if($day_count > 7){ + echo '</tr><tr>'; + $day_count = 1; + } + } + + $days_after = 1; + //loop for printing the days for the next month + while($day_count > 1 && $day_count <=7){ + echo '<td class="cal_notmonth">'.$days_after.'</td>'; //'.$days_after.'</td>'; + $days_after++; + $day_count++; + } + + ?> + + </tr> + </table> + </center> +<?php + //list events for today + if(count($todaysEvents)>0){ + echo "<h3>Today's Events</h3>"; + foreach($todaysEvents as $event){ + $time = date("g:i a", strtotime($event['date']." ".$event['time'])); + echo "<span style=\"background-color: {$event['color']}\"> </span> {$event['title']} @ {$time}<br />"; + } + } + } + +function GetEventsOnInterval($start,$end){ + global $db; + $result = $db->Query("SELECT `event_id`, `title`, `color`, `date`, `time` FROM `bayonet_events` WHERE `date` BETWEEN '$start' AND '$end' ORDER BY `time` ASC"); + $events = $db->Fetch($result); + return $events; +} + + ?>
\ No newline at end of file diff --git a/blocks/mini_calendar/index.php b/blocks/mini_calendar/index.php new file mode 100644 index 0000000..c58469b --- /dev/null +++ b/blocks/mini_calendar/index.php @@ -0,0 +1,3 @@ +<link rel="stylesheet" type="text/css" href="blocks/mini_calendar/style.css" media="screen"/> +<?php include 'blocks/mini_calendar/functions.php'; ?> +<?php PrintCalendar(); ?> diff --git a/blocks/mini_calendar/scripts.js b/blocks/mini_calendar/scripts.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/blocks/mini_calendar/scripts.js diff --git a/blocks/mini_calendar/style.css b/blocks/mini_calendar/style.css new file mode 100644 index 0000000..d34db05 --- /dev/null +++ b/blocks/mini_calendar/style.css @@ -0,0 +1,114 @@ +/* START>> CALENDAR STYLES*/
+ .monthTitle{
+ color:black;
+ text-align:center;
+ font-size:12px;
+ font-weight:bold;
+ font-family:arial;
+ }
+ td.weekday {
+ width:40px;
+ height:20px;
+ background-color:#cb2121;
+ color:green;
+ text-align:center;
+ font-size:10px;
+ /* font-weight:bold; */
+ }
+ th.weekday {
+ width:40px;
+ height:29px;
+ background-color:white;
+ color:black;
+ text-align:center;
+ font-size:11px;
+ font-weight:normal;
+ }
+ .monthday {
+ width:40px;
+ height:20px;
+ background-color:#aea2a2;
+ color:white;
+ text-align:left;
+ font-size:10pt;
+ /* font-weight:bold; */
+
+ }
+ .monthtoday {
+ width:38px;
+ height:38px;
+ /* background-color:#3666ba; */
+ color:#225eac;
+ text-align:center;
+ font-size:14px;
+ font-weight:bold;
+ font-family: arial;
+ border:1px solid #333333;
+ }
+ .event {
+ width:38px;
+ height:38px;
+ background-color:#225eac;
+ text-align:center;
+ border:1px solid #333333;
+ cursor: pointer;
+ }
+ table.calendar a, table.calendar a:visited, table.calendar a:active, table.calendar a:hover {
+ color:white;
+ }
+ .eventtoday {
+ width:38px;
+ height:38px;
+ background-color:#225eac;
+ color: white;
+ text-align:center;
+ font-size:14px;
+ font-weight:bold;
+ font-family: arial;
+ border:1px solid #333333;
+ }
+ td.cal_weekday {
+ width:40px;
+ height:40px;
+ background-color:#a1a1a1;
+ vertical-align:top;
+ color:#eeeeee;
+ font-family:arial;
+ text-align:center;
+ font-size:12px;
+ }
+ td.cal_weekend {
+ width:40px;
+ height:40px;
+ background-color:#8f8f8f;
+ vertical-align:top;
+ color:#eeeeee;
+ font-family:arial;
+ text-align:center;
+ font-size:12px;
+ }
+ td.cal_notmonth {
+ width:40px;
+ height:40px;
+ background-color:#6e6e6e;
+ vertical-align:top;
+ color:#d4d4d4;
+ text-align:left;
+ font-size:11px;
+ }
+ div.event_title {
+ font-family: Geneva, Verdana, Arial;
+ font-size: 14px;
+ }
+ div.event_text {
+ font-family: Geneva, Verdana, Arial;
+ font-size: 12px;
+ padding-top: 3px;
+ padding-left: 10px;
+ padding-right: 5px;
+ }
+ div.event_time {
+ font-family: Geneva, Verdana, Arial;
+ font-size: 12px;
+ }
+/* END>> CALENDAR STYLES */
\ No newline at end of file |