public $calendarType = 'resource';
/**
- * @var array
- */
- private $_properties = array();
-
- /**
* Imports a backend specific event object.
*
* @param array $event Backend specific event object that this object
}
/**
- * Prepares this event to be saved to the backend.
- */
- public function toDriver()
- {
- $driver = $this->getDriver();
-
- /* Basic fields. */
- $this->_properties['event_creator_id'] = $driver->convertToDriver($this->creator);
- $this->_properties['event_title'] = $driver->convertToDriver($this->title);
- $this->_properties['event_description'] = $driver->convertToDriver($this->description);
- $this->_properties['event_location'] = $driver->convertToDriver($this->location);
- $this->_properties['event_private'] = (int)$this->private;
- $this->_properties['event_status'] = $this->status;
- $this->_properties['event_attendees'] = serialize($driver->convertToDriver($this->attendees));
- $this->_properties['event_resources'] = serialize($driver->convertToDriver($this->getResources()));
- $this->_properties['event_modified'] = $_SERVER['REQUEST_TIME'];
-
- if ($this->isAllDay()) {
- $this->_properties['event_start'] = $this->start->strftime('%Y-%m-%d %H:%M:%S');
- $this->_properties['event_end'] = $this->end->strftime('%Y-%m-%d %H:%M:%S');
- $this->_properties['event_allday'] = 1;
- } else {
- if ($driver->getParam('utc')) {
- $start = clone $this->start;
- $end = clone $this->end;
- $start->setTimezone('UTC');
- $end->setTimezone('UTC');
- } else {
- $start = $this->start;
- $end = $this->end;
- }
- $this->_properties['event_start'] = $start->strftime('%Y-%m-%d %H:%M:%S');
- $this->_properties['event_end'] = $end->strftime('%Y-%m-%d %H:%M:%S');
- $this->_properties['event_allday'] = 0;
- }
-
- /* Alarm. */
- $this->_properties['event_alarm'] = (int)$this->alarm;
-
- /* Alarm Notification Methods. */
- $this->_properties['event_alarm_methods'] = serialize($driver->convertToDriver($this->methods));
-
- /* Recurrence. */
- if (!$this->recurs()) {
- $this->_properties['event_recurtype'] = 0;
- } else {
- $recur = $this->recurrence->getRecurType();
- if ($this->recurrence->hasRecurEnd()) {
- if ($driver->getParam('utc')) {
- $recur_end = clone $this->recurrence->recurEnd;
- $recur_end->setTimezone('UTC');
- } else {
- $recur_end = $this->recurrence->recurEnd;
- }
- } else {
- $recur_end = new Horde_Date(array('year' => 9999, 'month' => 12, 'mday' => 31, 'hour' => 23, 'min' => 59, 'sec' => 59));
- }
-
- $this->_properties['event_recurtype'] = $recur;
- $this->_properties['event_recurinterval'] = $this->recurrence->getRecurInterval();
- $this->_properties['event_recurenddate'] = $recur_end->format('Y-m-d H:i:s');
- $this->_properties['event_recurcount'] = $this->recurrence->getRecurCount();
-
- switch ($recur) {
- case Horde_Date_Recurrence::RECUR_WEEKLY:
- $this->_properties['event_recurdays'] = $this->recurrence->getRecurOnDays();
- break;
- }
- $this->_properties['event_exceptions'] = implode(',', $this->recurrence->getExceptions());
- }
- }
-
- public function getProperties()
- {
- return $this->_properties;
- }
-
- /**
* Returns a reference to a driver that's valid for this event.
*
* @return Kronolith_Driver A driver that this event can use to save