Esempio n. 1
0
 public function testParsingOfEndTimeWithTzidSetAndUntilSetUnderRRULE()
 {
     $ical = new SG_iCal();
     $timezone['tzid'] = 'America/New_York';
     $timezone['daylight'] = array('tzoffsetfrom' => '-0500', 'tzoffsetto' => '-0400', 'tzname' => 'EDT', 'dtstart' => '19700308T020000', 'rrule' => 'FREQ=YEARLY;BYMONTH=3;BYDAY=2SU');
     $timezone['standard'] = array('tzoffsetfrom' => '-0400', 'tzoffsetto' => '-0500', 'tzname' => 'EST', 'dtstart' => '19701101T020000', 'rrule' => 'FREQ=YEARLY;BYMONTH=11;BYDAY=1SU');
     $timezone2['tzid'] = 'Europe/Copenhagen';
     $timezone2['daylight'] = array('tzoffsetfrom' => '+0100', 'tzoffsetto' => '+0200', 'tzname' => 'CEST', 'dtstart' => '19700329T020000', 'rrule' => 'FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU');
     $timezone2['standard'] = array('tzoffsetfrom' => '+0200', 'tzoffsetto' => '+0100', 'tzname' => 'CET', 'dtstart' => '19701025T030000', 'rrule' => 'FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU');
     $ical->addTimeZone(new SG_iCal_VTimeZone($timezone));
     $ical->addtimeZone(new SG_iCal_VTimeZone($timezone2));
     $data['uid'] = new SG_iCal_Line('uid');
     //this takes place after Copenhagens change back to standard time
     $data['dtstart'] = new SG_iCal_Line('DTSTART;TZID=Europe/Copenhagen:20091027T100000');
     $data['rrule'] = new SG_iCal_Line('RRULE:FREQ=DAILY;UNTIL=20091030T130000Z');
     date_default_timezone_set('America/New_York');
     $event = new SG_iCal_VEvent($data, $ical);
     $this->assertEquals(strtotime('20091030T090000'), $event->getProperty('laststart'));
 }
Esempio n. 2
0
 public function parseEvent(\SG_iCal_VEvent $event)
 {
     $test = new Test();
     $test->setName($event->getSummary());
     $date = new \DateTime();
     $date->setTimestamp($event->getStart());
     $test->setDate($date);
     $test->setNumReminder(0);
     $test->setId($event->getUID());
     $test->setFinishToken((string) rand());
     // Check validity of event
     $description = $event->getDescription();
     $res = explode("\n", $description);
     $teachNameAndInitial = $this->clearParticule($res[count($res) - 2]);
     if (!$this->isTeacher($teachNameAndInitial)) {
         throw new BadEventException($test, "Bad event : " . $event->getSummary());
     }
     $test->setTeacher($this->findTeacher($this->getSurname($teachNameAndInitial), $this->getInital($teachNameAndInitial)));
     return $test;
 }