displayStartDate = $dStartDate; $this->displayEndDate = $dEndDate; } function displayWidget($args) { extract($args); //$options = get_option('widget_calendar'); //$title = $options['title']; $options = get_option('widgetEventsCalendar'); $title = $options['title']; if ( empty($title) ) $title = ' '; echo $before_widget . $before_title . $title . $after_title; echo '
'; $this->getEventList(); $this->getCalendar(); echo '
'; echo $after_widget; } function getEventList() { $db = new DB_071181(); $currentEvent = array(); $numDays = date('t', mktime(0,0,0,$this->month,1,$this->year)); for($i=1;$i<=$numDays;$i++) { $this->eventList[$i] = array(); } //Main Calendar //for($i=1; $i<=$numDays; $i++) //{ // $d = date('Y-m-d', mktime(0,0,0,$this->month,$i,$this->year)); $results = $db->getDateRange($this->displayStartDate,$this->displayEndDate); //$this->eventList[$i] = array(); foreach($results as $r) { $currentEvent['eID'] = $r->id; $currentEvent['eTitle'] = stripslashes($r->eventTitle); $currentEvent['eDescription'] = stripslashes($r->eventDescription); $currentEvent['eLocation'] = stripslashes($r->eventLocation); $currentEvent['eStartDate'] = stripslashes($r->eventStartDate); $currentEvent['eStartTime'] = stripslashes($r->eventStartTime); $currentEvent['eEndDate'] = stripslashes($r->eventEndDate); $currentEvent['eEndTime'] = stripslashes($r->eventEndTime); $d = split('-', $currentEvent['eStartDate']); $d = $d[2]; array_push($this->eventList[$d], $currentEvent); } //} //External Calendars //for($i=1; $i<=$numDays; $i++) //{ //$d = date('Y-m-d', mktime(0,0,0,$this->month,$i,$this->year)); $results = $db->getExternalCalendarList(); foreach($results as $r) { if($r->externalType=='iCal') { $reader = new iCalReader($r->externalAddress); $meta = $reader->getMeta(); if(!is_array($meta)) return; $tz = $meta['TZID']; $events = $reader->getEvents(); $i=-1; foreach($events as $e) { $currentEvent['eID'] = $i; $currentEvent['eTitle'] = $e['SUMMARY']."
".$r->externalName; $currentEvent['eDescription'] = $e['DESCRIPTION']; $currentEvent['eLocation'] = $e['LOCATION']; if($e['DTSTART;TZID='.$tz]) { $eDTSTART = split('T', $e['DTSTART;TZID='.$tz]); $dd = $eDTSTART[0]; $tt = $eDTSTART[1]; $dd = str_split($dd); $currentEvent['eStartDate'] = $dd[0].$dd[1].$dd[2].$dd[3]."-".$dd[4].$dd[5]."-".$dd[6].$dd[7]; $tt = str_split($tt); $currentEvent['eStartTime'] = $tt[0].$tt[1].":".$tt[2].$tt[3].":".$tt[4].$tt[5]; } if($e['DTEND;TZID='.$tz]) { $eDTEND = split('T', $e['DTEND;TZID='.$tz]); $dd = $eDTEND[0]; $tt = $eDTEND[1]; $dd = str_split($dd); $currentEvent['eEndDate'] = $dd[0].$dd[1].$dd[2].$dd[3]."-".$dd[4].$dd[5]."-".$dd[6].$dd[7]; $tt = str_split($tt); $currentEvent['eEndTime'] = $tt[0].$tt[1].":".$tt[2].$tt[3].":".$tt[4].$tt[5]; } if($e['DTSTART;VALUE=DATE']) { $dd = $e['DTSTART;VALUE=DATE']; $dd = str_split($dd); $currentEvent['eStartDate'] = $dd[0].$dd[1].$dd[2].$dd[3]."-".$dd[4].$dd[5]."-".$dd[6].$dd[7]; $currentEvent['eStartTime'] = ''; } if($e['DTEND;VALUE=DATE']) { $dd = $e['DTEND;VALUE=DATE']; $dd = str_split($dd); $currentEvent['eEndDate'] = $dd[0].$dd[1].$dd[2].$dd[3]."-".$dd[4].$dd[5]."-".$dd[6].$dd[7]; $currentEvent['eEndTime'] = ''; } $d = split('-', $currentEvent['eStartDate']); $d = $d[2]; array_push($this->eventList[$d], $currentEvent); $i--; } } } //} } function getCalendar() { $explodedDate = explode("-", $this->displayStartDate); $month = $explodedDate[1]; $year = $explodedDate[0]; $db = new DB_071181(); ?>
getDateRange($this->displayStartDate, $this->displayEndDate); $rArray = array(); for($i=1; $i<=31; $i++) { $rArray[$i] = false; } foreach($results as $r) { $eDate = explode("-", $r->eventStartDate); $dayofmonth = date('j', mktime(0,0,0,$eDate[1],$eDate[2],$eDate[0])); $rArray[$dayofmonth] = true; } $firstDay = get_option('start_of_week'); $options = get_option('widgetEventsCalendar'); $dayLength = $options['dayOfWeekLength']; echo $this->printCalendar($year, $month, $rArray, $dayLength, NULL, $firstDay); /* foreach($results as $r) { echo "$r->eventTitle id\">Edit id&eDate=$r->eventDate\">Delete
"; echo "$r->eventLocation
"; echo "$r->eventDate
"; echo "$r->eventStartTime
"; echo "$r->eventEndTime

"; } */ } function printCalendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array()) { $first_of_month = gmmktime(0,0,0,$month,1,$year); #remember that mktime will automatically correct if invalid dates are entered # for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998 # this provides a built in "rounding" feature to generate_calendar() $day_names = array(); #generate all the day names according to the current locale for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400) #January 4, 1970 was a Sunday $day_names[$n] = ucfirst(gmstrftime('%A',$t)); #%A means full textual day name list($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month)); $weekday = ($weekday + 7 - $first_day) % 7; #adjust for $first_day $title = htmlentities(ucfirst($month_name)).' '.$year; #note that some locales don't capitalize month and day names #Begin calendar. Uses a real . See http://diveintomark.org/archives/2002/07/03 @list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable if($p) $p = ''.($pl ? ''.$p.'' : $p).' '; if($n) $n = ' '.($nl ? ''.$n.'' : $n).''; $calendar = ''."\n";//. //'\n"; if($day_name_length){ #if the day names should be shown ($day_name_length > 0) #if day_name_length is >3, the full name of the day will be printed foreach($day_names as $d) $calendar .= ''; $calendar .= "\n"; } if($weekday > 0) $calendar .= ''; #initial 'empty' days for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){ if($weekday == 7){ $weekday = 0; #start a new week $calendar .= "\n"; } if($this->eventList[$day]){ $calendar .= ''; } else $calendar .= ""; } if($weekday != 7) $calendar .= ''; #remaining "empty" days return $calendar."\n
'.$p.($month_href ? ''.$title.'' : $title).$n."
'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'
 
eventList[$day]; foreach($results as $r) { $calendar .= "Title:".ereg_replace("[\r\n]", " ", stripslashes($r['eTitle']))."
"; $calendar .= "Description:".ereg_replace("[\r\n]", " ", stripslashes($r['eDescription']))."
"; $calendar .= "Location:".ereg_replace("[\r\n]", " ", stripslashes($r['eLocation']))."
"; $calendar .= "Start Time:".$r['eStartDate']; if($r['eStartTime']!='') { $calendar .= ", ".$r['eStartTime']; } $calendar .= "
"; $calendar .= "End Time:".$r['eEndDate']; if($r['eEndTime']!='') { $calendar .= ", ".$r['eEndTime']; } $calendar .= "
"; } $calendar .= '\',\'white\', 175);" onMouseout="hideddrivetip();" style="color:red;">'.$day.'
$day 
\n"; } } endif; ?>