From e8c31f7e5ba6d6bb7da965211ca69e6fab86227f Mon Sep 17 00:00:00 2001 From: Jim Hu Date: Fri, 30 Jan 2009 20:49:25 +0000 Subject: remove dead files --- README | 4 +- config.inc.php | 2 +- functions/end_vevent.php | 663 --------------------------------------- functions/overlapping_events.php | 274 ---------------- functions/parse_tzs.php | 64 ---- functions/sanitize.php | 97 ------ languages/german.inc.php | 68 ++-- 7 files changed, 38 insertions(+), 1134 deletions(-) delete mode 100644 functions/end_vevent.php delete mode 100644 functions/overlapping_events.php delete mode 100644 functions/parse_tzs.php delete mode 100644 functions/sanitize.php diff --git a/README b/README index 4ffc982..e9e88cc 100644 --- a/README +++ b/README @@ -92,7 +92,9 @@ Changes: Fix publish.php for 2.3 config system add option to hide location in month view add option to make individual events downloadable from event view - + Fix calendar showing modified events twice + Make multiline descriptions display with line breaks in event popup + Fix German language file 2.3 Major changes to recurrence handling Added more languages Added login to month view diff --git a/config.inc.php b/config.inc.php index 2968a4e..b5ba5ee 100644 --- a/config.inc.php +++ b/config.inc.php @@ -99,7 +99,7 @@ these arrays provide extra calendar options. */ $list_webcals = array( - 'webcal://dimer.tamu.edu/calendars/seminars/Biochem.ics' +# 'webcal://dimer.tamu.edu/calendars/seminars/Biochem.ics' ); $more_webcals['recur_tests'] = array(); $locked_cals = array( diff --git a/functions/end_vevent.php b/functions/end_vevent.php deleted file mode 100644 index 91d691b..0000000 --- a/functions/end_vevent.php +++ /dev/null @@ -1,663 +0,0 @@ - 2345) { - $allday_start = $start_date; - $allday_end = ($start_date + 1); - } -} - -# look for events that span more than one day -if (isset($start_unixtime,$end_unixtime) && date('Ymd',$start_unixtime) != date('Ymd',$end_unixtime)) { - $spans_day = true; - $bleed_check = (($start_unixtime - $end_unixtime) < (60*60*24)) ? '-1' : '0'; -} else { - $spans_day = false; - $bleed_check = 0; -} - -# get hour and minute adjusted to allowed grid times -if (isset($start_time) && $start_time != '') { - preg_match ('/([0-9]{2})([0-9]{2})/', $start_time, $time); - preg_match ('/([0-9]{2})([0-9]{2})/', $end_time, $time2); - if (isset($start_unixtime) && isset($end_unixtime)) { - $length = $end_unixtime - $start_unixtime; - } else { - $length = ($time2[1]*60+$time2[2]) - ($time[1]*60+$time[2]); - } - - $drawKey = drawEventTimes($start_time, $end_time); - preg_match ('/([0-9]{2})([0-9]{2})/', $drawKey['draw_start'], $time3); - $hour = $time3[1]; - $minute = $time3[2]; -} - -// RECURRENCE-ID Support -if (isset($recurrence_d)) { - - $recurrence_delete["$recurrence_d"]["$recurrence_t"] = $uid; -} - - -# treat nonrepeating events as rrule events with one instance -if (!isset($rrule_array) && $start_unixtime < $mArray_end && $end_unixtime > $mArray_begin){ - $rrule_array['FREQ'] = 'YEARLY'; - $rrule_array['START_DATE'] = $start_date; - $rrule_array['UNTIL'] = $start_date; - $rrule_array['END'] = 'end'; -} - - -if (isset($allday_start) && $allday_start != '') { - $hour = '-'; - $minute = '1'; - $rrule_array['START_DAY'] = $allday_start; - # $rrule_array['END_DAY'] = $allday_end; # this doesn't seem to be used anywhere. - $rrule_array['END'] = 'end'; - $recur_start = $allday_start; - $start_date = $allday_start; - if (isset($allday_end)) { - $diff_allday_days = dayCompare($allday_end, $allday_start); - } else { - $diff_allday_days = 1; - } -} else { - $rrule_array['START_DATE'] = $start_date; - $rrule_array['START_TIME'] = $start_time; - $rrule_array['END_TIME'] = $end_time; - $rrule_array['END'] = 'end'; -} - -$start_date_time = strtotime($start_date); -if (!isset($fromdate)){ - #this should happen if not in one of the rss views - $this_month_start_time = strtotime($this_year.$this_month.'01'); - if ($current_view == 'year' || ($save_parsed_cals == 'yes' && !$is_webcal)|| $current_view == 'print' && $printview == 'year') { - $start_range_time = strtotime($this_year.'-01-01 -2 weeks'); - $end_range_time = strtotime($this_year.'-12-31 +2 weeks'); - } else { - $start_range_time = strtotime('-1 month -2 day', $this_month_start_time); - $end_range_time = strtotime('+2 month +2 day', $this_month_start_time); - } -}else{ - $start_range_time = strtotime($fromdate); - $end_range_time = strtotime($todate)+60*60*24; -} - -$freq_type = 'year'; -foreach ($rrule_array as $key => $val) { - switch($key) { - case 'FREQ': - switch ($val) { - case 'YEARLY': $freq_type = 'year'; break; - case 'MONTHLY': $freq_type = 'month'; break; - case 'WEEKLY': $freq_type = 'week'; break; - case 'DAILY': $freq_type = 'day'; break; - case 'HOURLY': $freq_type = 'hour'; break; - case 'MINUTELY': $freq_type = 'minute'; break; - case 'SECONDLY': $freq_type = 'second'; break; - } - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = strtolower($val); - break; - case 'COUNT': - $count = $val; - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $count; - break; - case 'UNTIL': - $until = str_replace('T', '', $val); - $until = str_replace('Z', '', $until); - if (strlen($until) == 8) $until = $until.'235959'; - $abs_until = $until; - ereg ('([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})', $until, $regs); - $until = mktime($regs[4],$regs[5],$regs[6],$regs[2],$regs[3],$regs[1]); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = localizeDate($dateFormat_week,$until); - break; - case 'INTERVAL': - if ($val > 0){ - $number = $val; - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $number; - } - break; - case 'BYSECOND': - $bysecond = $val; - $bysecond = split (',', $bysecond); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $bysecond; - break; - case 'BYMINUTE': - $byminute = $val; - $byminute = split (',', $byminute); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $byminute; - break; - case 'BYHOUR': - $byhour = $val; - $byhour = split (',', $byhour); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $byhour; - break; - case 'BYDAY': - $byday = $val; - $byday = split (',', $byday); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $byday; - break; - case 'BYMONTHDAY': - $bymonthday = $val; - $bymonthday = split (',', $bymonthday); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $bymonthday; - break; - case 'BYYEARDAY': - $byyearday = $val; - $byyearday = split (',', $byyearday); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $byyearday; - break; - case 'BYWEEKNO': - $byweekno = $val; - $byweekno = split (',', $byweekno); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $byweekno; - break; - case 'BYMONTH': - $bymonth = $val; - $bymonth = split (',', $bymonth); - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $bymonth; - break; - case 'BYSETPOS': - $bysetpos = $val; - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $bysetpos; - break; - case 'WKST': - $wkst = $val; - $recur_array[($start_date)][($hour.$minute)][$uid]['recur'][$key] = $wkst; - break; - case 'END': - - $recur = $recur_array[($start_date)][($hour.$minute)][$uid]['recur']; - - // Modify the COUNT based on BYDAY - if ((isset ($byday) && is_array($byday)) && (isset($count))) { - $blah = sizeof($byday); - $count = ($count / $blah); - unset ($blah); - } - - if (!isset($number)) $number = 1; - // if $until isn't set yet, we set it to the end of our range we're looking at - - if (!isset($until)) $until = $end_range_time; - if (!isset($abs_until)) $abs_until = date('YmdHis', $end_range_time); - $end_date_time = $until; - $start_range_time_tmp = $start_range_time; - $end_range_time_tmp = $end_range_time; - - // If the $end_range_time is less than the $start_date_time, or $start_range_time is greater - // than $end_date_time, we may as well forget the whole thing - // It doesn't do us any good to spend time adding data we aren't even looking at - // this will prevent the year view from taking way longer than it needs to - if ($end_range_time_tmp >= $start_date_time && $start_range_time_tmp <= $end_date_time) { - - // if the beginning of our range is less than the start of the item, we may as well set it equal to it - if ($start_range_time_tmp < $start_date_time){ - $start_range_time_tmp = $start_date_time; - } - if ($end_range_time_tmp > $end_date_time) $end_range_time_tmp = $end_date_time; - - // initialize the time we will increment - $next_range_time = $start_range_time_tmp; - - // FIXME: This is a hack to fix repetitions with $interval > 1 - if ($count > 1 && $number > 1) $count = 1 + ($count - 1) * $number; - - $count_to = 0; - // start at the $start_range and go until we hit the end of our range. - if(!isset($wkst)) $wkst='SU'; - $wkst3char = two2threeCharDays($wkst); - - # set first instance if it's in range - if ($start_unixtime < $mArray_end && $end_unixtime > $mArray_begin){ - $recur_data[] = $start_unixtime; - } - while (($next_range_time >= $start_range_time_tmp) && ($next_range_time <= $end_range_time_tmp) && ($count_to != $count)) { - $func = $freq_type.'Compare'; - $diff = $func(date('Ymd',$next_range_time), $start_date); - if ($diff < $count) { - if ($diff % $number == 0) { - $interval = $number; - switch ($rrule_array['FREQ']) { - case 'DAILY': - $next_date_time = $next_range_time; - $recur_data[] = $next_date_time; - break; - case 'WEEKLY': - // Populate $byday with the default day if it's not set. - if (!isset($byday)) { - $byday[] = strtoupper(substr(date('D', $start_date_time), 0, 2)); - } - if (is_array($byday)) { - foreach($byday as $day) { - $day = two2threeCharDays($day); - #need to find the first day of the appropriate week. - #dateOfweek uses weekstartday as a global variable. This has to be changed to $wkst, - #but then needs to be reset for other functions - $week_start_day_tmp = $week_start_day; - $week_start_day = $wkst3char; - - $the_sunday = dateOfWeek(date("Ymd",$next_range_time), $wkst3char); - $next_date_time = strtotime($day,strtotime($the_sunday)) + (12 * 60 * 60); - $week_start_day = $week_start_day_tmp; #see above reset to global value - - #reset $next_range_time to first instance in this week. - if ($next_date_time < $next_range_time){ - $next_range_time = $next_date_time; - } - // Since this renders events from $next_range_time to $next_range_time + 1 week, I need to handle intervals - // as well. This checks to see if $next_date_time is after $day_start (i.e., "next week"), and thus - // if we need to add $interval weeks to $next_date_time. - if ($next_date_time > strtotime($week_start_day, $next_range_time) && $interval > 1) { - # $next_date_time = strtotime('+'.($interval - 1).' '.$freq_type, $next_date_time); - } - $recur_data[] = $next_date_time; - } - } - break; - case 'MONTHLY': - if (empty($bymonth)) $bymonth = array(1,2,3,4,5,6,7,8,9,10,11,12); - $next_range_time = strtotime(date('Y-m-01', $next_range_time)); - $next_date_time = $next_date_time; - if (isset($bysetpos)){ - /* bysetpos code from dustinbutler - start on day 1 or last day. - if day matches any BYDAY the count is incremented. - SETPOS = 4, need 4th match - SETPOS = -1, need 1st match - */ - $year = date('Y', $next_range_time); - $month = date('m', $next_range_time); - if ($bysetpos > 0) { - $next_day = '+1 day'; - $day = 1; - } else { - $next_day = '-1 day'; - $day = $totalDays[$month]; - } - $day = mktime(0, 0, 0, $month, $day, $year); - $countMatch = 0; - while ($countMatch != abs($bysetpos)) { - /* Does this day match a BYDAY value? */ - $thisDay = $day; - $textDay = strtoupper(substr(date('D', $thisDay), 0, 2)); - if (in_array($textDay, $byday)) { - $countMatch++; - } - $day = strtotime($next_day, $thisDay); - } - $recur_data[] = $thisDay; - }elseif ((isset($bymonthday)) && (!isset($byday))) { - foreach($bymonthday as $day) { - if ($day < 0) $day = ((date('t', $next_range_time)) + ($day)) + 1; - $year = date('Y', $next_range_time); - $month = date('m', $next_range_time); - if (checkdate($month,$day,$year)) { - $next_date_time = mktime(0,0,0,$month,$day,$year); - $recur_data[] = $next_date_time; - } - } - } elseif (is_array($byday)) { - foreach($byday as $day) { - ereg ('([-\+]{0,1})?([0-9]{1})?([A-Z]{2})', $day, $byday_arr); - //Added for 2.0 when no modifier is set - if ($byday_arr[2] != '') { - $nth = $byday_arr[2]-1; - } else { - $nth = 0; - } - $on_day = two2threeCharDays($byday_arr[3]); - $on_day_num = two2threeCharDays($byday_arr[3],false); - if ((isset($byday_arr[1])) && ($byday_arr[1] == '-')) { - $last_day_tmp = date('t',$next_range_time); - $next_range_time = strtotime(date('Y-m-'.$last_day_tmp, $next_range_time)); - $last_tmp = (date('w',$next_range_time) == $on_day_num) ? '' : 'last '; - $next_date_time = strtotime($last_tmp.$on_day, $next_range_time) - ($nth * 604800); - $month = date('m', $next_date_time); - if (in_array($month, $bymonth)) { - $recur_data[] = $next_date_time; - } - #reset next_range_time to start of month - $next_range_time = strtotime(date('Y-m-'.'1', $next_range_time)); - - } elseif (isset($bymonthday) && (!empty($bymonthday))) { - // This supports MONTHLY where BYDAY and BYMONTH are both set - foreach($bymonthday as $day) { - $year = date('Y', $next_range_time); - $month = date('m', $next_range_time); - if (checkdate($month,$day,$year)) { - $next_date_time = mktime(0,0,0,$month,$day,$year); - $daday = strtolower(strftime("%a", $next_date_time)); - if ($daday == $on_day && in_array($month, $bymonth)) { - $recur_data[] = $next_date_time; - } - } - } - } elseif ((isset($byday_arr[1])) && ($byday_arr[1] != '-')) { - $next_date_time = strtotime($on_day, strtotime($on_day, $next_range_time) + $nth * 604800); - $month = date('m', $next_date_time); - if (in_array($month, $bymonth)) { - if (isset($next_date_time) && $next_date_time != '') $recur_data[] = $next_date_time; - } - } - $next_date = date('Ymd', $next_date_time); - } - } - break; - case 'YEARLY': - if ((!isset($bymonth)) || (sizeof($bymonth) == 0)) { - $m = date('m', $start_date_time); - $bymonth = array("$m"); - } - - foreach($bymonth as $month) { - // Make sure the month & year used is within the start/end_range. - if ($month < date('m', $next_range_time)) { - $year = date('Y', $next_range_time); - } else { - $year = date('Y', $next_range_time); - } - if (isset($bysetpos)){ - /* bysetpos code from dustinbutler - start on day 1 or last day. - if day matches any BYDAY the count is incremented. - SETPOS = 4, need 4th match - SETPOS = -1, need 1st match - */ - if ($bysetpos > 0) { - $next_day = '+1 day'; - $day = 1; - } else { - $next_day = '-1 day'; - $day = date("t",$month); - } - $day = mktime(12, 0, 0, $month, $day, $year); - $countMatch = 0; - while ($countMatch != abs($bysetpos)) { - /* Does this day match a BYDAY value? */ - $thisDay = $day; - $textDay = strtoupper(substr(date('D', $thisDay), 0, 2)); - if (in_array($textDay, $byday)) { - $countMatch++; - } - $day = strtotime($next_day, $thisDay); - } - $recur_data[] = $thisDay; - } - if ((isset($byday)) && (is_array($byday))) { - $checkdate_time = mktime(0,0,0,$month,1,$year); - foreach($byday as $day) { - ereg ('([-\+]{0,1})?([0-9]{1})?([A-Z]{2})', $day, $byday_arr); - if ($byday_arr[2] != '') { - $nth = $byday_arr[2]-1; - } else { - $nth = 0; - } - $on_day = two2threeCharDays($byday_arr[3]); - $on_day_num = two2threeCharDays($byday_arr[3],false); - if ($byday_arr[1] == '-') { - $last_day_tmp = date('t',$checkdate_time); - $checkdate_time = strtotime(date('Y-m-'.$last_day_tmp, $checkdate_time)); - $last_tmp = (date('w',$checkdate_time) == $on_day_num) ? '' : 'last '; - $next_date_time = strtotime($last_tmp.$on_day.' -'.$nth.' week', $checkdate_time); - } else { - $next_date_time = strtotime($on_day.' +'.$nth.' week', $checkdate_time); - } - } - } else { - $day = date('d', $start_date_time); - $next_date_time = mktime(0,0,0,$month,$day,$year+1); - //echo date('Ymd',$next_date_time).$summary.'
'; - } - if (isset($next_date_time) && $next_date_time != '') $recur_data[] = $next_date_time; - } - if (isset($byyearday)) { - foreach ($byyearday as $yearday) { - ereg ('([-\+]{0,1})?([0-9]{1,3})', $yearday, $byyearday_arr); - if ($byyearday_arr[1] == '-') { - $ydtime = mktime(0,0,0,12,31,$this_year); - $yearnum = $byyearday_arr[2] - 1; - $next_date_time = strtotime('-'.$yearnum.' days', $ydtime); - } else { - $ydtime = mktime(0,0,0,1,1,$this_year); - $yearnum = $byyearday_arr[2] - 1; - $next_date_time = strtotime('+'.$yearnum.' days', $ydtime); - } - if (isset($next_date_time) && $next_date_time != '') $recur_data[] = $next_date_time; - } - } - break; - default: - // anything else we need to end the loop - $next_range_time = $end_range_time_tmp + 100; - $count_to = $count; - } - } else { - $interval = 1; - } - $next_range_time = strtotime('+'.$interval.' '.$freq_type, $next_range_time); - } else { - // end the loop because we aren't going to write this event anyway - $count_to = $count; - } - // use the same code to write the data instead of always changing it 5 times - if (isset($recur_data) && is_array($recur_data)) { - $recur_data_hour = @substr($start_time,0,2); - $recur_data_minute = @substr($start_time,2,2); - foreach($recur_data as $recur_data_time) { - $recur_data_year = date('Y', $recur_data_time); - $recur_data_month = date('m', $recur_data_time); - $recur_data_day = date('d', $recur_data_time); - $recur_data_date = $recur_data_year.$recur_data_month.$recur_data_day; - if (($recur_data_time >= $start_date_time) && ($recur_data_time <= $end_date_time) && ($count_to != $count) && !in_array($recur_data_date, $except_dates)) { - if (isset($allday_start) && $allday_start != '') { - $start_time2 = $recur_data_time; - $end_time2 = strtotime('+'.$diff_allday_days.' days', $recur_data_time); - while ($start_time2 < $end_time2) { - $start_date2 = date('Ymd', $start_time2); - $master_array[($start_date2)][('-1')][$uid] = array ( - 'event_text' => $summary, - 'description' => $description, - 'location' => $location, - 'organizer' => serialize($organizer), - 'attendee' => serialize($attendee), - 'calnumber' => $calnumber, - 'calname' => $actual_calname, - 'url' => $url, - 'status' => $status, - 'class' => $class, - 'recur' => $recur ); - $start_time2 = strtotime('+1 day', $start_time2); - } - } else { - $start_unixtime_tmp = mktime($recur_data_hour,$recur_data_minute,0,$recur_data_month,$recur_data_day,$recur_data_year); - $end_unixtime_tmp = $start_unixtime_tmp + $length; - - if (($end_time >= $bleed_time) && ($bleed_check == '-1')) { - $start_tmp = strtotime(date('Ymd',$start_unixtime_tmp)); - $end_date_tmp = date('Ymd',$end_unixtime_tmp); - while ($start_tmp < $end_unixtime_tmp) { - $start_date_tmp = date('Ymd',$start_tmp); - if ($start_date_tmp == $recur_data_year.$recur_data_month.$recur_data_day) { - $time_tmp = $hour.$minute; - $start_time_tmp = $start_time; - } else { - $time_tmp = '0000'; - $start_time_tmp = '0000'; - } - if ($start_date_tmp == $end_date_tmp) { - $end_time_tmp = $end_time; - } else { - $end_time_tmp = '2400'; - $display_end_tmp = $end_time; - } - - // Let's double check the until to not write past it - $until_check = $start_date_tmp.$time_tmp.'00'; - if ($abs_until > $until_check) { - $master_array[$start_date_tmp][$time_tmp][$uid] = array ( - 'event_start' => $start_time_tmp, - 'event_end' => $end_time_tmp, - 'start_unixtime' => $start_unixtime_tmp, - 'end_unixtime' => $end_unixtime_tmp, - 'event_text' => $summary, - 'event_length' => $length, - 'event_overlap' => 0, - 'description' => $description, - 'status' => $status, - 'class' => $class, - 'spans_day' => true, - 'location' => $location, - 'organizer' => serialize($organizer), - 'attendee' => serialize($attendee), - 'calnumber' => $calnumber, - 'calname' => $actual_calname, - 'url' => $url, - 'recur' => $recur); - if (isset($display_end_tmp)){ - $master_array[$start_date_tmp][$time_tmp][$uid]['display_end'] = $display_end_tmp; - } - checkOverlap($start_date_tmp, $time_tmp, $uid); - } - $start_tmp = strtotime('+1 day',$start_tmp); - } - } else { - if ($bleed_check == '-1') { - $display_end_tmp = $end_time; - $end_time_tmp1 = '2400'; - - } - if (!isset($end_time_tmp1)) $end_time_tmp1 = $end_time; - - // Let's double check the until to not write past it - $until_check = $recur_data_date.$hour.$minute.'00'; - if ($abs_until > $until_check) { - $master_array[($recur_data_date)][($hour.$minute)][$uid] = array ( - 'event_start' => $start_time, - 'event_end' => $end_time_tmp1, - 'start_unixtime' => $start_unixtime_tmp, - 'end_unixtime' => $end_unixtime_tmp, - 'event_text' => $summary, - 'event_length' => $length, - 'event_overlap' => 0, - 'description' => $description, - 'status' => $status, - 'class' => $class, - 'spans_day' => false, - 'location' => $location, - 'organizer' => serialize($organizer), - 'attendee' => serialize($attendee), - 'calnumber' => $calnumber, - 'calname' => $actual_calname, - 'url' => $url, - 'recur' => $recur); - if (isset($display_end_tmp)){ - $master_array[($recur_data_date)][($hour.$minute)][$uid]['display_end'] = $display_end_tmp; - } - checkOverlap($recur_data_date, ($hour.$minute), $uid); - } - } - } - } - } - } - } #end while loop - } # end if time compare - unset($recur_data); - } # end switch $key (rrule type) -} # end foreach rrule - - -// This should remove any exdates that were missed. -// Added for version 0.9.5 modified in 2.22 remove anything that doesn't have an event_start -if (is_array($except_dates)) { - foreach ($except_dates as $key => $value) { - if (isset ($master_array[$value])){ - foreach ($master_array[$value] as $time => $value2){ - if (!isset($value2[$uid]['event_start'])){ - unset($master_array[$value][$time][$uid]); - } - } - } -} -} - -// Clear event data now that it's been saved. -unset($start_time, $start_time_tmp, $end_time, $end_time_tmp, $start_unixtime, $start_unixtime_tmp, $end_unixtime, $end_unixtime_tmp, $summary, $length, $description, $status, $class, $location, $organizer, $attendee); - -?> \ No newline at end of file diff --git a/functions/overlapping_events.php b/functions/overlapping_events.php deleted file mode 100644 index 9595c83..0000000 --- a/functions/overlapping_events.php +++ /dev/null @@ -1,274 +0,0 @@ - $loop_range) { - - if ($start < $end) { - // handle ranges between $start and $loop_range['start'] - if ($start < $loop_range['start']) { - $new_ol_ranges[] = array('count' => $count, 'start' => $start, 'end' => min($loop_range['start'], $end)); - $start = $loop_range['start']; - } - - // $start is always >= $loop_range['start'] at this point. - // handles ranges between $loop_range['start'] and $loop_range['end'] - if ($loop_range['start'] < $end && $start < $loop_range['end']) { - // handles ranges between $loop_range['start'] and $start - if ($loop_range['start'] < $start) { - $new_ol_ranges[] = array('count' => $loop_range['count'], 'start' => $loop_range['start'], 'end' => $start); - } - // handles ranges between $start and $end (where they're between $loop_range['start'] and $loop_range['end']) - $new_count = $loop_range['count'] + $count + 1; - if ($new_count >= 0) { - $new_ol_ranges[] = array('count' => $new_count, 'start' => $start, 'end' => min($loop_range['end'], $end)); - } - // handles ranges between $end and $loop_range['end'] - if ($loop_range['end'] > $end) { - $new_ol_ranges[] = array('count' => $loop_range['count'], 'start' => $end, 'end' => $loop_range['end']); - } - $start = $loop_range['end']; - } else { - $new_ol_ranges[] = $loop_range; - } - } else { - $new_ol_ranges[] = $loop_range; - } - } - - // Catches anything left over. - if ($start < $end) { - $new_ol_ranges[] = array('count' => $count, 'start' => $start, 'end' => $end); - } - - return $new_ol_ranges; -} - -// Finds the highest value of 'count' in $ol_ranges -function find_max_overlap($ol_ranges) { - - $count = 0; - foreach ($ol_ranges as $loop_range) { - if ($count < $loop_range['count']) - $count = $loop_range['count']; - } - - return $count; -} - -// Merges overlapping blocks -function flatten_ol_blocks($event_date, $ol_blocks, $new_block_key) { - - global $master_array; - - // Loop block = each other block in the array, the ones we're merging into new block. - // New block = the changed block that caused the flatten_ol_blocks call. Everything gets merged into this. - $new_block = $ol_blocks[$new_block_key]; - reset($ol_blocks); - while ($loop_block_array = each($ol_blocks)) { - $loop_block_key = $loop_block_array['key']; - $loop_block = $loop_block_array['value']; - // only compare with other blocks - if ($loop_block_key != $new_block_key) { - // check if blocks overlap - if (($loop_block['blockStart'] < $new_block['blockEnd']) && ($loop_block['blockEnd'] > $new_block['blockStart'])) { - // define start and end of merged overlap block - if ($new_block['blockStart'] > $loop_block['blockStart']) $ol_blocks[$new_block_key]['blockStart'] = $loop_block['blockStart']; - if ($new_block['blockEnd'] < $loop_block['blockEnd']) $ol_blocks[$new_block_key]['blockEnd'] = $loop_block['blockEnd']; - $ol_blocks[$new_block_key]['events'] = array_merge($new_block['events'], $loop_block['events']); - $new_block['events'] = $ol_blocks[$new_block_key]['events']; - foreach ($loop_block['overlapRanges'] as $ol_range) { - $new_block['overlapRanges'] = merge_range($new_block['overlapRanges'], $ol_range['start'], $ol_range['end'], $ol_range['count']); - } - $ol_blocks[$new_block_key]['overlapRanges'] = $new_block['overlapRanges']; - $ol_blocks[$new_block_key]['maxOverlaps'] = find_max_overlap($new_block['overlapRanges']); - foreach ($ol_blocks[$new_block_key]['events'] as $event) { - $master_array[$event_date][$event['time']][$event['key']]['event_overlap'] = $ol_blocks[$new_block_key]['maxOverlaps']; - } - unset($ol_blocks[$loop_block_key]); - reset($ol_blocks); - } - } - } - - return $ol_blocks; -} - -// Builds $overlap_array structure, and updates event_overlap in $master_array for the given events. -function checkOverlap($event_date, $event_time, $uid) { - global $master_array, $overlap_array; - if (!isset($event_date)) return; - $event = $master_array[$event_date][$event_time][$uid]; - // Copy out the array - we replace this at the end. - $ol_day_array = $overlap_array[$event_date]; - $drawTimes = drawEventTimes($event['event_start'], $event['event_end']); - - // For a given date, - // - check to see if the event's already in a block, and if so, add it. - // - make sure the new block doesn't overlap another block, and if so, merge the blocks. - // - check that there aren't any events we already passed that we should handle. - // - "flatten" the structure again, merging the blocks. - - // $overlap_array structure: - // array of ($event_dates) - // array of unique overlap blocks (no index) - - - // $overlap_block structure - // 'blockStart' - $start_time of block - earliest $start_time of the events in the block. - // Shouldn't be any overlap w/ a different overlap block in that day (as if they overlap, they get merged). - // 'blockEnd' - $end_time of block - latest $end_time of the events in the block. - // 'maxOverlaps' - max number of overlaps for the whole block (highest 'count' in overlapRanges) - // 'events' - array of event "pointers" (no index) - each event in the block. - // 'time' - $start_time of event in the block - // 'key' - $uid of event - // 'overlapRanges' - array of time ranges + overlap counts (no index) - the specific overlap info. - // Shouldn't be any overlap w/ the overlap ranges in a given overlap_block - if there is overlap, the block should be split. - // 'count' - number of overlaps that time range (can be zero if that range has no overlaps). - // 'start' - start_time for the overlap block. - // 'end' - end_time for the overlap block. - - $ol_day_array = $overlap_array[$event_date]; - // Track if $event has been merged in, so we don't re-add the details to 'event' or 'overlapRanges' multiple times. - $already_merged_once = false; - // First, check the existing overlap blocks, see if the event overlaps with any. - if (isset($ol_day_array)) { - foreach ($ol_day_array as $loop_block_key => $loop_ol_block) { - // Should $event be in this $ol_block? If so, add it. - if ($loop_ol_block['blockStart'] < $drawTimes['draw_end'] && $loop_ol_block['blockEnd'] > $drawTimes['draw_start']) { - // ... unless it's already in the $ol_block - if (!in_array(array('time' => $drawTimes['draw_start'], 'key' => $uid), $loop_ol_block['events'])) { - $loop_ol_block['events'][] = array('time' => $drawTimes['draw_start'], 'key' => $uid); - if ($loop_ol_block['blockStart'] > $drawTimes['draw_start']) $loop_ol_block['blockStart'] = $drawTimes['draw_start']; - if ($loop_ol_block['blockEnd'] < $drawTimes['draw_end']) $loop_ol_block['blockEnd'] = $drawTimes['draw_end']; - - // Merge in the new overlap range - $loop_ol_block['overlapRanges'] = merge_range($loop_ol_block['overlapRanges'], $drawTimes['draw_start'], $drawTimes['draw_end']); - $loop_ol_block['maxOverlaps'] = find_max_overlap($loop_ol_block['overlapRanges']); - foreach ($loop_ol_block['events'] as $max_overlap_event) { - $master_array[$event_date][$max_overlap_event['time']][$max_overlap_event['key']]['event_overlap'] = $loop_ol_block['maxOverlaps']; - } - $ol_day_array[$loop_block_key] = $loop_ol_block; - $ol_day_array = flatten_ol_blocks($event_date, $ol_day_array, $loop_block_key); - $already_merged_once = true; - break; - // Handle repeat calls to checkOverlap - semi-bogus since the event shouldn't be created more than once, but this makes sure we don't get an invalid event_overlap. - } else { - $master_array[$event_date][$event_time][$uid]['event_overlap'] = $loop_ol_block['maxOverlaps']; - } - } - } - } - - // Then, check all the events, make sure there isn't a new overlap that we need to create. - foreach ($master_array[$event_date] as $time_key => $time) { - // Skip all-day events for overlap purposes. - if ($time_key != '-1') { - foreach ($time as $loop_event_key => $loop_event) { - // Make sure we haven't already dealt with the event, and we're not checking against ourself. - if ($loop_event['event_overlap'] == 0 && $loop_event_key != $uid) { - $loopDrawTimes = drawEventTimes($loop_event['event_start'], $loop_event['event_end']); - if ($loopDrawTimes['draw_start'] < $drawTimes['draw_end'] && $loopDrawTimes['draw_end'] > $drawTimes['draw_start']) { - if ($loopDrawTimes['draw_start'] < $drawTimes['draw_start']) { - $block_start = $loopDrawTimes['draw_start']; - } else { - $block_start = $drawTimes['draw_start']; - } - if ($loopDrawTimes['draw_end'] > $drawTimes['draw_end']) { - $block_end = $loopDrawTimes['draw_end']; - } else { - $block_end = $drawTimes['draw_end']; - } - $events = array(array('time' => $loopDrawTimes['draw_start'], 'key' => $loop_event_key)); - $overlap_ranges = array(array('count' => 0, 'start' => $loopDrawTimes['draw_start'], 'end' => $loopDrawTimes['draw_end'])); - // Only add $event if we haven't already put it in a block - if (!$already_merged_once) { - $events[] = array('time' => $drawTimes['draw_start'], 'key' => $uid); - $overlap_ranges = merge_range($overlap_ranges, $drawTimes['draw_start'], $drawTimes['draw_end']); - $already_merged_once = true; - } - $ol_day_array[] = array('blockStart' => $block_start, 'blockEnd' => $block_end, 'maxOverlaps' => 1, 'events' => $events, 'overlapRanges' => $overlap_ranges); - - foreach ($events as $max_overlap_event) { - $master_array[$event_date][$max_overlap_event['time']][$max_overlap_event['key']]['event_overlap'] = 1; - } - // Make sure we pass in the key of the newly added item above. - end($ol_day_array); - $last_day_key = key($ol_day_array); - $ol_day_array = flatten_ol_blocks($event_date, $ol_day_array, $last_day_key); - } - } - } - } - } - - $overlap_array[$event_date] = $ol_day_array; - -//for debugging the checkOverlap function -//if ($event_date == '20050506') { -//print 'Date: ' . $event_date . ' / Time: ' . $event_time . ' / Key: ' . $uid . "
\n"; -//print '
';
-//print_r($master_array[$event_date]);
-//print_r($overlap_array[$event_date]);
-//print '
'; -//} - -} - -// Remove an event from the overlap data. -// This could be completely bogus, since overlap array is empty when this gets called in my tests, but I'm leaving it in anyways. -function removeOverlap($ol_start_date, $ol_start_time, $ol_key) { - global $master_array, $overlap_array; - if (isset($overlap_array[$ol_start_date])) { - if (sizeof($overlap_array[$ol_start_date]) > 0) { - $ol_end_time = $master_array[$ol_start_date][$ol_start_time][$ol_key]['event_end']; - foreach ($overlap_array[$ol_start_date] as $block_key => $block) { - if (in_array(array('time' => $ol_start_time, 'key' => $ol_key), $block['events'])) { - // Check if this is a 2-event block (i.e., there's no block left when we remove $ol_key - // and if so, just unset it and move on. - if (count($block['events']) == 2) { - foreach ($block['events'] as $event) { - $master_array[$ol_start_date][$event['time']][$event['key']]['event_overlap'] = 0; - } - unset($overlap_array[$ol_start_date][$block_key]); - } else { - // remove $ol_key from 'events' - $event_key = array_search(array('time' => $ol_start_time, 'key' => $ol_key), $block['events']); - unset($overlap_array[$ol_start_date][$block_key]['events'][$event_key]); - - // These may be bogus, since we're not using drawEventTimes. - // "clean up" 'overlapRanges' and calc the new maxOverlaps. - // use the special "-2" count to tell merge_range we're deleting. - $overlap_array[$ol_start_date][$block_key]['overlapRanges'] = merge_range($block['overlapRanges'], $ol_start_time, $ol_end_time, -2); - $overlap_array[$ol_start_date][$block_key]['maxOverlaps'] = find_max_overlap($block['overlapRanges']); - - // recreate blockStart and blockEnd from the other events, and fix maxOverlap while we're at it. - $blockStart = $ol_end_time; - $blockEnd = $ol_start_time; - foreach ($overlap_array[$ol_start_date][$block_key]['events'] as $event) { - $blockStart = min($blockStart, $event['time']); - $blockEnd = max($blockEnd, $master_array[$ol_start_date][$event['time']][$event['key']]['event_end']); - $master_array[$ol_start_date][$event['time']][$event['key']]['event_overlap'] = $overlap_array[$ol_start_date][$block_key]['maxOverlaps']; - } - $overlap_array[$ol_start_date][$block_key]['blockStart'] = $blockStart; - $overlap_array[$ol_start_date][$block_key]['blockEnd'] = $blockEnd; - } - } - } - } - } -} -?> diff --git a/functions/parse_tzs.php b/functions/parse_tzs.php deleted file mode 100644 index 85ab929..0000000 --- a/functions/parse_tzs.php +++ /dev/null @@ -1,64 +0,0 @@ -$tz_id"; print_r($tz_array[$tz_id]);echo""; - break; - default: - unset ( $data, $prop_pos, $property); - if (ereg ("([^:]+):(.*)", $line, $line)){ - $property = $line[1]; - $data = $line[2]; - $prop_pos = strpos($property,';'); - if ($prop_pos !== false) $property = substr($property,0,$prop_pos); - $property = strtoupper($property); - - switch ($property) { - case 'TZID': - $tz_id = $data; - break; - case 'TZOFFSETFROM': - $offset_from = $data; - break; - case 'TZOFFSETTO': - $offset_to = $data; - break; - } - } - } -} - -?> \ No newline at end of file diff --git a/functions/sanitize.php b/functions/sanitize.php deleted file mode 100644 index a9e72ee..0000000 --- a/functions/sanitize.php +++ /dev/null @@ -1,97 +0,0 @@ - - * @param mixed $value Value to be sanitized - * @return mixed - */ -function recursiveSanitize($value) { - if (is_array($value)) { - $valmod = array(); - foreach ($value as $key => $subval) { - if (is_array($subval)) { - $subval = recursiveSanitize($subval); - } else { - $subval = strip_tags($subval); - } - $valmod[$key] = $subval; - } - $value = $valmod; - } else { - $value = strip_tags($value); - } - - return $value; -} - -foreach ($_REQUEST as $key=>$val){ - switch ($key){ - case 'event_data': - # modify this to allow or disallow different HTML tags in event popups - $allowed = "



    1. "; - $val = strip_tags($val,$allowed); - break; - default: - # cpath - $val = recursiveSanitize($val); - } - - $_REQUEST[$key] = $val; -} -foreach ($_POST as $key=>$val){ - switch ($key){ - case 'action': - $actions = array('login','logout','addupdate','delete'); - if (!in_array($val,$actions)) $val = ''; - break; - case 'date': - case 'time': - if (!is_numeric($val)) $val = ''; - break; - default: - $val = recursiveSanitize($val); - } - $_POST[$key] = $val; - -} -foreach ($_GET as $key=>$val){ - switch ($key){ - case 'cal': - if (!is_array($val)){ - $val = strip_tags($val); - $_GET['cal'] = strip_tags($val); - }else{ - unset ($_GET['cal']); - foreach($val as $cal){ - $_GET['cal'][]= strip_tags($cal); - } - } - break; - case 'getdate': - if (!is_numeric($val)) $val = ''; - break; - default: - $val = recursiveSanitize($val); - } - if ($key != 'cal') $_GET[$key] = $val; - -} -foreach ($_COOKIE as $key=>$val){ - switch ($key){ - case 'time': - if (!is_numeric($val)) $val = ''; - break; - default: - $val = recursiveSanitize($val); - } - $_COOKIE[$key] = $val; -} -?> \ No newline at end of file diff --git a/languages/german.inc.php b/languages/german.inc.php index 5e95514..1fefb06 100644 --- a/languages/german.inc.php +++ b/languages/german.inc.php @@ -1,4 +1,4 @@ - -- cgit v1.2.3