diff options
author | Chad Little <clittle@users.sourceforge.net> | 2004-05-16 20:30:19 +0000 |
---|---|---|
committer | Chad Little <clittle@users.sourceforge.net> | 2004-05-16 20:30:19 +0000 |
commit | afcfa0c4ab39291d30ded5e111c5537698e7c84e (patch) | |
tree | addfb369a8bdf2fe5ecdcb66e69480c97fa7851a | |
parent | a59106f8507e94e8b19bbe9bbed9280f32894d26 (diff) | |
download | phpicalendar-afcfa0c4ab39291d30ded5e111c5537698e7c84e.tar.gz phpicalendar-afcfa0c4ab39291d30ded5e111c5537698e7c84e.tar.bz2 phpicalendar-afcfa0c4ab39291d30ded5e111c5537698e7c84e.zip |
Fix for recurrence-id moving whole day events.
-rw-r--r-- | functions/ical_parser.php | 8 | ||||
-rw-r--r-- | functions/template.php | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/functions/ical_parser.php b/functions/ical_parser.php index 519b6f8..a781893 100644 --- a/functions/ical_parser.php +++ b/functions/ical_parser.php @@ -147,8 +147,10 @@ foreach ($cal_filelist as $filename) { } if ($uid_valid && isset($processed[$uid]) && isset($recurrence_id['date'])) { + $old_start_date = $processed[$uid][0]; $old_start_time = $processed[$uid][1]; + if ($recurrence_id['value'] == 'DATE') $old_start_time = '-1'; $start_date_tmp = $recurrence_id['date']; if (!isset($start_date)) $start_date = $old_start_date; if (!isset($start_time)) $start_time = $master_array[$old_start_date][$old_start_time][$uid]['event_start']; @@ -166,7 +168,11 @@ foreach ($cal_filelist as $filename) { removeOverlap($start_date_tmp, $old_start_time, $uid); if (isset($master_array[$start_date_tmp][$old_start_time][$uid])) { unset($master_array[$start_date_tmp][$old_start_time][$uid]); // SJBO added $uid twice here + if (sizeof($master_array[$start_date_tmp][$old_start_time]) == 0) { + unset($master_array[$start_date_tmp][$old_start_time]); + } } + $write_processed = false; } else { $write_processed = true; @@ -221,7 +227,7 @@ foreach ($cal_filelist as $filename) { if ($uid_valid && $write_processed) { if (!isset($hour)) $hour = 00; if (!isset($minute)) $minute = 00; - $processed[$uid] = array($start_date,($hour.$minute)); + $processed[$uid] = array($start_date,($hour.$minute), $type); } // Handling of the all day events diff --git a/functions/template.php b/functions/template.php index 1aad78e..1ad8e3f 100644 --- a/functions/template.php +++ b/functions/template.php @@ -556,7 +556,7 @@ class Page { $return_adtmp = ''; $return_etmp = ''; - if (is_array($master_array[$next_day])) { + if (is_array($master_array[$next_day]) && sizeof($master_array[$next_day]) > 0) { foreach ($master_array[$next_day] as $event_times) { foreach ($event_times as $val) { $event_text = stripslashes(urldecode($val["event_text"])); |