diff options
author | Chad Little <clittle@users.sourceforge.net> | 2003-09-20 19:13:12 +0000 |
---|---|---|
committer | Chad Little <clittle@users.sourceforge.net> | 2003-09-20 19:13:12 +0000 |
commit | fae38172f95e53853037beddd7998af0c676fc3d (patch) | |
tree | 0ea7db145df4c3cf9d3293735a99c46328f0339b /functions | |
parent | 2ba3f29f78b9ee4d3358cf1daa4d1d2431c82aa2 (diff) | |
download | phpicalendar-fae38172f95e53853037beddd7998af0c676fc3d.tar.gz phpicalendar-fae38172f95e53853037beddd7998af0c676fc3d.tar.bz2 phpicalendar-fae38172f95e53853037beddd7998af0c676fc3d.zip |
Added BYYEARDAY support, added getdate to switching calendars.
Diffstat (limited to 'functions')
-rw-r--r-- | functions/ical_parser.php | 25 | ||||
-rw-r--r-- | functions/list_icals.php | 12 |
2 files changed, 27 insertions, 10 deletions
diff --git a/functions/ical_parser.php b/functions/ical_parser.php index 4a368ab..87d66ab 100644 --- a/functions/ical_parser.php +++ b/functions/ical_parser.php @@ -209,10 +209,13 @@ foreach ($cal_filelist as $filename) { // Handling of the all day events if ((isset($allday_start) && $allday_start != '')) { - $start = strtotime($allday_start); - if (isset($allday_end)) { - $end = strtotime($allday_end); - } else { + $start = strtotime($allday_start); + if ($spans_day) { + $allday_end = date('Ymd',$end_unixtime); + } + if (isset($allday_end)) { + $end = strtotime($allday_end); + } else { $end = strtotime('+1 day', $start); } if (($end > $mArray_begin) && ($end < $mArray_end)) { @@ -505,6 +508,19 @@ foreach ($cal_filelist as $filename) { } $recur_data[] = $next_date_time; } + 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); + } + $recur_data[] = $next_date_time; + } break; default: // anything else we need to end the loop @@ -740,6 +756,7 @@ foreach ($cal_filelist as $filename) { if (preg_match("/^DTSTART;VALUE=DATE/i", $field)) { $allday_start = $data; $start_date = $allday_start; + $start_unixtime = strtotime($data); } else { if (preg_match("/^DTSTART;TZID=/i", $field)) { $tz_tmp = explode('=', $field); diff --git a/functions/list_icals.php b/functions/list_icals.php index 43b476a..57de27a 100644 --- a/functions/list_icals.php +++ b/functions/list_icals.php @@ -30,18 +30,18 @@ if ($display_ical_list == "yes") { $cal_displayname_tmp = str_replace("32", " ", $cal_filename_tmp); if (!in_array($cal_filename_tmp, $blacklisted_cals)) { if ($cal_tmp == $cal) { - print "<option value=\"$current_view.php?cal=$cal_tmp\" selected>$cal_displayname_tmp $calendar_lang</option>"; + print "<option value=\"$current_view.php?cal=$cal_tmp&getdate=$getdate\" selected>$cal_displayname_tmp $calendar_lang</option>"; } else { - print "<option value=\"$current_view.php?cal=$cal_tmp\">$cal_displayname_tmp $calendar_lang</option>"; + print "<option value=\"$current_view.php?cal=$cal_tmp&getdate=$getdate\">$cal_displayname_tmp $calendar_lang</option>"; } } } // option to open all (non-web) calenders together if ($cal == $ALL_CALENDARS_COMBINED) { - print "<option value=\"$current_view.php?cal=$ALL_CALENDARS_COMBINED\" selected>$all_cal_comb_lang</option>"; + print "<option value=\"$current_view.php?cal=$ALL_CALENDARS_COMBINED&getdate=$getdate\" selected>$all_cal_comb_lang</option>"; } else { - print "<option value=\"$current_view.php?cal=$ALL_CALENDARS_COMBINED\">$all_cal_comb_lang</option>"; + print "<option value=\"$current_view.php?cal=$ALL_CALENDARS_COMBINED&getdate=$getdate\">$all_cal_comb_lang</option>"; } foreach($list_webcals as $cal_tmp) { @@ -51,9 +51,9 @@ if ($display_ical_list == "yes") { $cal_displayname_tmp = substr($cal_displayname_tmp,0,-4); $cal_encoded_tmp = urlencode($cal_tmp); if ($cal_tmp == $cal_httpPrefix || $cal_tmp == $cal_webcalPrefix) { - print "<option value=\"$current_view.php?cal=$cal_encoded_tmp\" selected>$cal_displayname_tmp Webcal</option>"; + print "<option value=\"$current_view.php?cal=$cal_encoded_tmp&getdate=$getdate\" selected>$cal_displayname_tmp Webcal</option>"; } else { - print "<option value=\"$current_view.php?cal=$cal_encoded_tmp\">$cal_displayname_tmp Webcal</option>"; + print "<option value=\"$current_view.php?cal=$cal_encoded_tmp&getdate=$getdate\">$cal_displayname_tmp Webcal</option>"; } } } |