Example #1
0
 /**
  * @NoAdminRequired
  */
 public function getEventsDayView()
 {
     $this->session->close();
     if (\OCP\User::isLoggedIn()) {
         $monthToCalc = intval($this->params('month')) + 1;
         $year = intval($this->params('year'));
         $ersterTag = mktime(0, 0, 0, $monthToCalc, 1, $year);
         if (date("L", $ersterTag)) {
             $iSchaltMonat = 29;
         } else {
             $iSchaltMonat = 28;
         }
         $MonthEndDayArray = array(31, $iSchaltMonat, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
         $letzterTag = mktime(23, 59, 59, $monthToCalc, $MonthEndDayArray[$monthToCalc - 1], $year);
         $start = new \DateTime('@' . $ersterTag);
         $end = new \DateTime('@' . $letzterTag);
         $calendars = CalendarCalendar::allCalendars($this->userId, true);
         $calendars[] = ['id' => 'shared_events', 'active' => 1];
         $events = '';
         $aCalBirthdays = [];
         foreach ($calendars as $calInfo) {
             $isAktiv = (int) $calInfo['active'];
             if ($this->configInfo->getUserValue($this->userId, $this->appName, 'calendar_' . $calInfo['id']) !== '') {
                 $isAktiv = (int) $this->configInfo->getUserValue($this->userId, $this->appName, 'calendar_' . $calInfo['id']);
             }
             $aCalBirthdays[$calInfo['id']] = 0;
             if ($calInfo['uri'] === 'bdaycpltocal_' . $calInfo['userid']) {
                 $aCalBirthdays[$calInfo['id']] = 1;
             }
             $events[] = CalendarApp::getrequestedEvents($calInfo['id'], $start, $end);
         }
         $output = array();
         $aSort = array();
         $eventArray = array();
         if (is_array($events)) {
             foreach ($events as $event) {
                 foreach ($event as $eventInfo) {
                     $eventInfo['bday'] = 0;
                     if ($aCalBirthdays[$eventInfo['calendarid']]) {
                         $eventInfo['bday'] = 1;
                     }
                     if ((int) $eventInfo['repeating'] === 0) {
                         $start_dt = new \DateTime($eventInfo['startdate'], new \DateTimeZone('UTC'));
                         $startDate = $start_dt->format('Y/m/d');
                         $start_tmst = new \DateTime($startDate, new \DateTimeZone('UTC'));
                         $startTimeStamp = $start_tmst->format('U');
                         $end_dt = new \DateTime($eventInfo['enddate'], new \DateTimeZone('UTC'));
                         $endTimeStamp = $end_dt->format('U');
                         $aSort[$startTimeStamp] = $startDate;
                         if ($endTimeStamp > $startTimeStamp + 24 * 60 * 60) {
                             $datetime1 = new \DateTime($eventInfo['startdate']);
                             $datetime2 = new \DateTime($eventInfo['enddate']);
                             $interval = $datetime1->diff($datetime2);
                             $count = (int) $interval->format('%a');
                             for ($i = 1; $i < $count; $i++) {
                                 $start_dtNew = new \DateTime($eventInfo['startdate'], new \DateTimeZone('UTC'));
                                 $start_dtNew->modify('+' . $i . ' day');
                                 $startDateNew = $start_dtNew->format('Y/m/d');
                                 $start_tmstNew = new \DateTime($startDateNew, new \DateTimeZone('UTC'));
                                 $startTimeStampNew = $start_tmstNew->format('U');
                                 $aSort[$startTimeStampNew] = $startDateNew;
                                 //OCP\Util::writeLog('calendar','STARTDATE'.$startDateNew.' -> '.$eventInfo['summary'], OCP\Util::DEBUG);
                                 $eventArray[$startDateNew][] = $this->generateEventOutput($eventInfo, $start, $end);
                             }
                         }
                         $eventArray[$startDate][] = $this->generateEventOutput($eventInfo, $start, $end);
                     }
                     if ((int) $eventInfo['repeating'] === 1) {
                         $cachedinperiod = $this->repeatController->getEventInperiod($eventInfo['id'], $start, $end);
                         $counter = 0;
                         foreach ($cachedinperiod as $cacheinfo) {
                             $start_dt_cache = new \DateTime($cacheinfo['startdate'], new \DateTimeZone('UTC'));
                             $startCacheDate = $start_dt_cache->format('Y/m/d');
                             $start_Cachetmst = new \DateTime($startCacheDate, new \DateTimeZone('UTC'));
                             $startCacheTimeStamp = $start_Cachetmst->format('U');
                             $aSort[$startCacheTimeStamp] = $startCacheDate;
                             $eventArray[$startCacheDate][] = $this->generateEventOutput($eventInfo, $start, $end);
                             $counter++;
                         }
                     }
                     if (is_array($eventArray)) {
                         $output = array_merge($output, $eventArray);
                     }
                 }
             }
             asort($aSort);
             $params = ['data' => $output, 'sortdate' => $aSort];
             $response = new JSONResponse();
             $response->setData($params);
             return $response;
         }
     }
 }
 /**
  * @PublicPage
  * @NoCSRFRequired
  */
 public function getEventsPublic()
 {
     $token = $this->params('t');
     $pStart = $this->params('start');
     $pEnd = $this->params('end');
     $calendar_id = null;
     \OC::$server->getSession()->close();
     if (isset($token)) {
         $linkItem = \OCP\Share::getShareByToken($token, false);
         if (is_array($linkItem) && isset($linkItem['uid_owner'])) {
             $rootLinkItem = \OCP\Share::resolveReShare($linkItem);
             if (isset($rootLinkItem['uid_owner'])) {
                 \OCP\JSON::checkUserExists($rootLinkItem['uid_owner']);
                 $calendar_id = CalendarApp::validateItemSource($linkItem['item_source'], CalendarApp::SHARECALENDARPREFIX);
             }
         }
     }
     $start = new \DateTime('@' . $pStart);
     $end = new \DateTime('@' . $pEnd);
     $events = CalendarApp::getrequestedEvents($calendar_id, $start, $end);
     $output = array();
     foreach ($events as $event) {
         $eventArray = CalendarApp::generateEventOutput($event, $start, $end);
         if (is_array($eventArray)) {
             $output = array_merge($output, $eventArray);
         }
     }
     $response = new JSONResponse();
     $response->setData($output);
     return $response;
 }
 /**
  * @PublicPage
  * @NoCSRFRequired
  */
 public function getEventsPublic()
 {
     $token = $this->params('t');
     $pStart = $this->params('start');
     $pEnd = $this->params('end');
     $calendar_id = null;
     \OC::$server->getSession()->close();
     if (isset($token)) {
         $linkItem = $this->shareConnector->getShareByToken($token);
         if (is_array($linkItem) && isset($linkItem['uid_owner'])) {
             $rootLinkItem = $this->shareConnector->resolveReShare($linkItem);
             if (isset($rootLinkItem['uid_owner'])) {
                 \OCP\JSON::checkUserExists($rootLinkItem['uid_owner']);
                 $calendar_id = $this->shareConnector->validateItemSource($linkItem['item_source'], $this->shareConnector->getConstSharePrefixCalendar());
             }
         }
     }
     $start = new \DateTime('@' . $pStart);
     $end = new \DateTime('@' . $pEnd);
     $aCalendar = CalendarApp::getCalendar($calendar_id, false, false);
     $isBirthday = false;
     if ($aCalendar['uri'] === 'bdaycpltocal_' . $aCalendar['userid']) {
         $isBirthday = true;
     }
     $events = CalendarApp::getrequestedEvents($calendar_id, $start, $end);
     $output = array();
     foreach ($events as $event) {
         $event['bday'] = 0;
         if ($isBirthday === true) {
             $event['bday'] = 1;
         }
         $eventArray = $this->eventController->generateEventOutput($event, $start, $end);
         if (is_array($eventArray)) {
             $output = array_merge($output, $eventArray);
         }
     }
     $response = new JSONResponse();
     $response->setData($output);
     return $response;
 }