From 65669516eee7b3775725279c458a115fb771d3b3 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Thu, 21 Nov 2002 22:05:52 +0000 Subject: cleaner calendar, some recurrence id stuff. still not working. --- calendars/greg.ics | 19 ------------------- functions/ical_parser.php | 27 +++++++++++++++++++++++---- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/calendars/greg.ics b/calendars/greg.ics index 4a22467..b5de9b9 100644 --- a/calendars/greg.ics +++ b/calendars/greg.ics @@ -6,25 +6,6 @@ PRODID:-//Apple Computer\, Inc//iCal 1.0//EN X-WR-CALNAME;VALUE=TEXT:Recurrance VERSION:2.0 -BEGIN:VEVENT -SEQUENCE:14 -DTSTAMP:20021121T040319Z -SUMMARY:Monthly -UID:80DEF908-FD77-11D6-B909-000393BBDCD8 -DTSTART;TZID=US/Pacific:20021120T101500 -DURATION:PT2H30M -RRULE:FREQ=MONTHLY;INTERVAL=1;BYMONTHDAY=19,20,21 -END:VEVENT - -BEGIN:VEVENT -RECURRENCE-ID;TZID=US/Pacific:20021121T101500 -DTSTAMP:20021121T040425Z -SUMMARY:Monthly changed -DTSTART;TZID=US/Pacific:20021122T101500 -UID:80DEF908-FD77-11D6-B909-000393BBDCD8 -DURATION:PT2H30M -END:VEVENT - BEGIN:VEVENT SEQUENCE:8 DTSTART;TZID=US/Eastern:20020928T200000 diff --git a/functions/ical_parser.php b/functions/ical_parser.php index 1918902..b4bdd0f 100644 --- a/functions/ical_parser.php +++ b/functions/ical_parser.php @@ -162,7 +162,9 @@ if ($parse_file) { } // RECURRENCE-ID Support - $recurrence_delete = array ("$recurrence_d" => array ("$recurrence_t" => $uid)); + if ($recurrence_d) { + $recurrence_delete["$recurrence_d"]["$recurrence_t"] = $uid; + } // handle single changes in recurring events // Maybe this is no longer need since done at bottom of parser? - CL 11/20/02 @@ -812,14 +814,31 @@ if ($parse_file) { // Remove pesky recurrences foreach ($recurrence_delete as $delete => $delete_key) { foreach ($delete_key as $key => $val) { - if (is_array($master_array["$delete"]["$key"]["$val"])) { + if (is_array($master_array[($delete)][($key)][($val)])) { unset($master_array["$delete"]["$key"]["$val"]); - if (sizeof($master_array["$delete"]["$key"] < 1)) { + // Remove date from array if no events + if (sizeof($master_array["$delete"]["$key"] = 1)) { + #echo "deleting $delete $key $val
"; unset($master_array["$delete"]["$key"]); - if (sizeof($master_array["$delete"] < 1)) { + if (!sizeof($master_array["$delete"] > 1)) { + #echo "deleting $delete $key $val
"; unset($master_array["$delete"]); } } + // print_r($master_array["$delete"]); + // Check for overlaps and rewrite them + foreach($master_array["$delete"] as $overlap_time => $overlap_val) { + $recur_data_date = $delete; + foreach ($overlap_val as $uid => $val) { + $start_time = $val['event_start']; + $end_time = $val['event_end']; + reset($master_array); + #$nbrOfOverlaps = checkOverlap($recur_data_date, $start_time, $end_time); + $master_array[($recur_data_date)][($start_time)][($uid)]['event_overlap'] = $nbrOfOverlaps; + #echo "$recur_data_date - $uid - $start_time - $end_time - $nbrOfOverlaps
"; + #print_r($val); + } + } } } } -- cgit v1.2.3