From 953662254d32714fa40142d98f7c806994a32924 Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Sun, 31 Oct 2010 17:44:08 +0100 Subject: [PATCH] updated demo code --- demo/exdate.ics | 43 +++++++++++++++++++++++++++++++++++++++++++ demo/index.php | 16 ++++++++-------- 2 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 demo/exdate.ics diff --git a/demo/exdate.ics b/demo/exdate.ics new file mode 100644 index 0000000..1408dd3 --- /dev/null +++ b/demo/exdate.ics @@ -0,0 +1,43 @@ +BEGIN:VCALENDAR +PRODID:-//Google Inc//Google Calendar 70.9054//EN +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-CALNAME:uba.gestion@gmail.com +X-WR-TIMEZONE:Europe/Paris +BEGIN:VTIMEZONE +TZID:Europe/Paris +X-LIC-LOCATION:Europe/Paris +BEGIN:DAYLIGHT +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +TZNAME:CEST +DTSTART:19700329T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +TZNAME:CET +DTSTART:19701025T030000 +RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +DTSTART;VALUE=DATE:20100907 +DTEND;VALUE=DATE:20100908 +RRULE:FREQ=DAILY;UNTIL=20100912 +EXDATE;VALUE=DATE:20100911 +EXDATE;VALUE=DATE:20100909,20100910 +DTSTAMP:20101031T155459Z +UID:5oo2ridecth26kcavj8elhtd4s@google.com +CREATED:00001231T000000Z +DESCRIPTION: +LAST-MODIFIED:20101030T193954Z +LOCATION: +SEQUENCE:1 +STATUS:CONFIRMED +SUMMARY:occur +TRANSP:TRANSPARENT +END:VEVENT +END:VCALENDAR diff --git a/demo/index.php b/demo/index.php index f6b4f0c..10e8794 100644 --- a/demo/index.php +++ b/demo/index.php @@ -5,8 +5,8 @@ require_once('../SG_iCal.php'); function dump_t($x) { echo "
".print_r($x,true)."
"; } - -$ICS = "basic.ics"; +$ICS = "exdate.ics"; +//echo dump_t(file_get_contents($ICS)); $ical = new SG_iCalReader($ICS); $query = new SG_iCal_Query(); @@ -24,16 +24,15 @@ foreach($evts as $id => $ev) { "end" => $ev->getEnd()-1, "allDay" => $ev->isWholeDay() ); - - $data[] = $jsEvt; if (isset($ev->recurrence)) { - $count = 1; + $count = 0; $start = $ev->getStart(); - //$freq = new SG_iCal_Freq($ev->recurrence->rrule, $start); $freq = $ev->getFrequency(); + if ($freq->firstOccurrence() == $start) + $data[] = $jsEvt; while (($next = $freq->nextOccurrence($start)) > 0 ) { - if (!$next or $count >= 200) break; + if (!$next or $count >= 1000) break; $count++; $start = $next; $jsEvt["start"] = $start; @@ -41,7 +40,8 @@ foreach($evts as $id => $ev) { $data[] = $jsEvt; } - } + } else + $data[] = $jsEvt; } //echo(date('Ymd\n',$data[0][start]));