コード例 #1
0
 private function getEventNodeProperties(PhutilCalendarEventNode $event)
 {
     $properties = array();
     $uid = $event->getUID();
     if (!strlen($uid)) {
         throw new Exception(pht('Unable to write ICS document: event has no UID, but each event ' . 'MUST have a UID.'));
     }
     $properties[] = $this->newTextProperty('UID', $uid);
     $created = $event->getCreatedDateTime();
     if ($created) {
         $properties[] = $this->newDateTimeProperty('CREATED', $event->getCreatedDateTime());
     }
     $dtstamp = $event->getModifiedDateTime();
     if (!$dtstamp) {
         throw new Exception(pht('Unable to write ICS document: event has no modified time, but ' . 'each event MUST have a modified time.'));
     }
     $properties[] = $this->newDateTimeProperty('DTSTAMP', $dtstamp);
     $dtstart = $event->getStartDateTime();
     if ($dtstart) {
         $properties[] = $this->newDateTimeProperty('DTSTART', $dtstart);
     }
     $dtend = $event->getEndDateTime();
     if ($dtend) {
         $properties[] = $this->newDateTimeProperty('DTEND', $event->getEndDateTime());
     }
     $name = $event->getName();
     if (strlen($name)) {
         $properties[] = $this->newTextProperty('SUMMARY', $name);
     }
     $description = $event->getDescription();
     if (strlen($description)) {
         $properties[] = $this->newTextProperty('DESCRIPTION', $description);
     }
     $organizer = $event->getOrganizer();
     if ($organizer) {
         $properties[] = $this->newUserProperty('ORGANIZER', $organizer);
     }
     $attendees = $event->getAttendees();
     if ($attendees) {
         foreach ($attendees as $attendee) {
             $properties[] = $this->newUserProperty('ATTENDEE', $attendee);
         }
     }
     return $properties;
 }