/** * @return Vcalendar */ function & getDocument($method = 'PUBLISH', $include_attachments = false) { $this->document = new Vcalendar(); $this->setHeaders($method); foreach($this->eventSets as $set) { if (!($set)) continue; $id = $set['event_id']; if(is_null($this->vevents[$id])) { $this->vevents[$id] = &$this->addVevent($set); } } $attendees = run_query_get_events_attendee(array_keys($this->vevents)); if ( strcasecmp($method,"REPLY") == 0 && $this->entities && is_array($this->entities) && count($this->entities) && array_key_exists("user",$this->entities) && is_array($this->entities["user"]) ) { $userId = reset(array_keys($this->entities["user"])); // print_r($this->entities); while($attendees->next_record()) { // print_r($attendees->Record); if ( $attendees->f('eventlink_entity_id') == $userId ) { $this->addAttendee($this->vevents[$attendees->f('event_id')] , $attendees->Record); break; } } } else { while($attendees->next_record()) { $this->addAttendee($this->vevents[$attendees->f('event_id')] , $attendees->Record); } } if(count($this->vevents) > 0) { $exceptions = run_query_get_events_exception(array_keys($this->vevents)); while($exceptions->next_record()) { $date = new Of_Date($exceptions->f('eventexception_date')); $timezone = $exceptions->f('event_timezone'); if ($timezone) $date->setOriginalTimeZone($timezone); $this->addExdate($this->vevents[$exceptions->f('eventexception_parent_id')] , $date); $enddate = clone $date; $enddate->addSecond(3600); $this->addExdate($this->vevents[$exceptions->f('eventexception_parent_id')] , $enddate); } } foreach($this->vevents as $id => $vevent) { VCalendar_Utils::privatizeEvent($this->vevents[$id]); } return $this->document; }