aboutsummaryrefslogtreecommitdiffstats
path: root/functions
diff options
context:
space:
mode:
authorChad Little <clittle@users.sourceforge.net>2003-09-20 19:13:12 +0000
committerChad Little <clittle@users.sourceforge.net>2003-09-20 19:13:12 +0000
commitfae38172f95e53853037beddd7998af0c676fc3d (patch)
tree0ea7db145df4c3cf9d3293735a99c46328f0339b /functions
parent2ba3f29f78b9ee4d3358cf1daa4d1d2431c82aa2 (diff)
downloadphpicalendar-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.php25
-rw-r--r--functions/list_icals.php12
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&amp;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&amp;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&amp;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&amp;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&amp;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&amp;getdate=$getdate\">$cal_displayname_tmp Webcal</option>";
}
}
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy