From: Jan Schneider Date: Wed, 11 Aug 2010 20:36:49 +0000 (+0200) Subject: Revert "Remove unused code. Michael, I guess the fromDriver() stuff can go too?" X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=fe6c80b3816211aab772b5f22f688b9a6f234a34;p=horde.git Revert "Remove unused code. Michael, I guess the fromDriver() stuff can go too?" This reverts commit 734fe073b1bfd49a3c5c9cf438db6555292193b1. --- diff --git a/kronolith/lib/Event/Resource.php b/kronolith/lib/Event/Resource.php index beff52558..a5c478deb 100644 --- a/kronolith/lib/Event/Resource.php +++ b/kronolith/lib/Event/Resource.php @@ -22,6 +22,11 @@ class Kronolith_Event_Resource extends Kronolith_Event public $calendarType = 'resource'; /** + * @var array + */ + private $_properties = array(); + + /** * Imports a backend specific event object. * * @param array $event Backend specific event object that this object @@ -114,6 +119,84 @@ class Kronolith_Event_Resource extends Kronolith_Event } /** + * 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