Revert "Remove unused code. Michael, I guess the fromDriver() stuff can go too?"
authorJan Schneider <jan@horde.org>
Wed, 11 Aug 2010 20:36:49 +0000 (22:36 +0200)
committerJan Schneider <jan@horde.org>
Wed, 11 Aug 2010 20:48:20 +0000 (22:48 +0200)
This reverts commit 734fe073b1bfd49a3c5c9cf438db6555292193b1.

kronolith/lib/Event/Resource.php

index beff525..a5c478d 100644 (file)
@@ -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