]> source.dussan.org Git - nextcloud-server.git/commitdiff
Revert "Revert "create OC_Calendar_Object::generateStartEndDate function""
authorGeorg Ehrke <dev@georgswebsite.de>
Mon, 18 Jun 2012 12:47:58 +0000 (14:47 +0200)
committerGeorg Ehrke <dev@georgswebsite.de>
Mon, 18 Jun 2012 12:47:58 +0000 (14:47 +0200)
This reverts commit e3b58f6783aa173ceb9c26476ddf01dc570fc5e8.

apps/calendar/lib/app.php
apps/calendar/lib/object.php
apps/calendar/lib/repeat.php

index 17c23f4ea327be574b339ee22a197a290ed99953..e3be8c8428f1b0dceece6cdcbf8ffbf40020999c 100644 (file)
@@ -400,36 +400,10 @@ class OC_Calendar_App{
                }else{
                        $object->expand($start, $end);
                        foreach($object->getComponents() as $vevent){
-                               if(get_class($vevent) != 'Sabre_VObject_Component_VEvent'){
+                               if(!($vevent instanceof Sabre_VObject_Component_VEvent)){
                                        continue;
                                }
-                               $dynamicoutput = array();
-                               $dtstart = $vevent->DTSTART;
-                               $start_dt = $dtstart->getDateTime();
-                               $dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
-                               $end_dt = $dtend->getDateTime();
-                               
-                               if($allday){
-                                       $dynamicoutput['start'] = $start_dt->format('Y-m-d');
-                                       $end_dt->modify('-1 sec');
-                                       $dynamicoutput['end'] = $end_dt->format('Y-m-d');
-                               }else{
-                                       $start_dt->setTimezone(new DateTimeZone(self::$tz));
-                                       $end_dt->setTimezone(new DateTimeZone(self::$tz));
-                                       $dynamicoutput['start'] = $start_dt->format('Y-m-d H:i:s');
-                                       $dynamicoutput['end'] = $end_dt->format('Y-m-d H:i:s');
-                               }
-
-                               // Handle exceptions to recurring events
-                               /*$exceptionDateObjects = $vevent->select('EXDATE');
-                               $exceptionDateMap = Array();
-                               foreach ($exceptionDateObjects as $exceptionObject) {
-                                       foreach($exceptionObject->getDateTimes() as $datetime) {
-                                               $ts = $datetime->getTimestamp();
-                                               $exceptionDateMap[idate('Y',$ts)][idate('m', $ts)][idate('d', $ts)] = true;
-                                       }
-                               }*/
-
+                               $dynamicoutput = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), self::$tz);
                                $return[] = array_merge($staticoutput, $dynamicoutput);
                        }
                }
index ba3fa814f36c08a18d81571cbfe9d50edb0bedde..07f2afb7b57bc4f442ceb2753b3046f8fc1236e0 100644 (file)
@@ -807,4 +807,21 @@ class OC_Calendar_Object{
                $event = self::find($id);
                return ($event['repeating'] == 1)?true:false;
        }
+
+       public static function generateStartEndDate($dtstart, $dtend, $tz){
+               $start_dt = $dtstart->getDateTime();
+               $end_dt = $dtend->getDateTime();
+               $return = array();
+               if($allday){
+                       $return['start'] = $start_dt->format('Y-m-d');
+                       $end_dt->modify('-1 hour');
+                       $return['end'] = $end_dt->format('Y-m-d');
+               }else{
+                       $start_dt->setTimezone(new DateTimeZone($tz));
+                       $end_dt->setTimezone(new DateTimeZone($tz));
+                       $return['start'] = $start_dt->format('Y-m-d H:i:s');
+                       $return['end'] = $end_dt->format('Y-m-d H:i:s');
+               }
+               return $return;
+       }
 }
index 4b9cbdcd4ba532c1f5e6c2fedda1d60128249e45..6976378ebda82f160b86252bc4ac68f0598a7888 100644 (file)
@@ -95,25 +95,12 @@ class OC_Calendar_Repeat{
                $end->modify('+5 years');
                $object->expand($start, $end);
                foreach($object->getComponents() as $vevent){
-                       if(get_class($vevent) != 'Sabre_VObject_Component_VEvent'){
+                       if(!($vevent instanceof Sabre_VObject_Component_VEvent)){
                                continue;
                        }
-                       $dtstart = $vevent->DTSTART;
-                       $start_dt = $dtstart->getDateTime();
-                       $dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
-                       $end_dt = $dtend->getDateTime();
-                       if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE){
-                               $startdate = $start_dt->format('Y-m-d');
-                               $end_dt->modify('-1 sec');
-                               $enddate = $end_dt->format('Y-m-d');
-                       }else{
-                               $start_dt->setTimezone(new DateTimeZone('UTC'));
-                               $end_dt->setTimezone(new DateTimeZone('UTC'));
-                               $startdate = $start_dt->format('Y-m-d H:i:s');
-                               $enddate = $end_dt->format('Y-m-d H:i:s');
-                       }
+                       $startenddate = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), 'UTC');
                        $stmt = OCP\DB::prepare('INSERT INTO *PREFIX*calendar_repeat (eventid,calid,startdate,enddate) VALUES(?,?,?,?)');
-                       $stmt->execute(array($id,OC_Calendar_Object::getCalendarid($id),$startdate,$enddate));
+                       $stmt->execute(array($id,OC_Calendar_Object::getCalendarid($id),$startenddate['start'],$startenddate['end']));
                }
                return true;
        }