/** * Extracts all matching contacts with email address and name * * @param string $term * @return array */ public function addBirthdays($userid, $calId) { if (!$this->contactsManager->isEnabled()) { return array(); } $addrBooks = $this->contactsManager->getAddressBooks(); $aContacts = array(); foreach ($addrBooks as $key => $addrBook) { if (is_integer($key)) { $bContacts = \OCA\ContactsPlus\VCard::all($key); $aContacts = array_merge($aContacts, $bContacts); } } $sDateFormat = $this->configInfo->getUserValue($this->userId, $this->appName, 'dateformat', 'd-m-Y'); if ($sDateFormat === 'd-m-Y') { $sDateFormat = 'd.m.Y'; } $aResult = array(); foreach ($aContacts as $contact) { $vcard = \Sabre\VObject\Reader::read($contact['carddata']); if (isset($vcard->BDAY)) { $Birthday = new \DateTime((string) $vcard->BDAY); $checkForm = $Birthday->format('d-m-Y'); $temp = explode('-', $checkForm); $getAge = $this->getAge($temp[2], $temp[1], $temp[0]); $title = $contact['fullname']; $birthdayOutput = $Birthday->format($sDateFormat); $aktYear = $Birthday->format('d-m'); $aktYear = $aktYear . date('-Y'); $start = new \DateTime($aktYear); $end = new \DateTime($aktYear . ' +1 day'); $vcalendar = new VObject('VCALENDAR'); $vcalendar->add('PRODID', 'ownCloud Calendar'); $vcalendar->add('VERSION', '2.0'); $vevent = new VObject('VEVENT'); $vcalendar->add($vevent); $vevent->setDateTime('CREATED', 'now'); $vevent->add('DTSTART'); $vevent->DTSTART->setDateTime($start); $vevent->add('DTEND'); $vevent->DTEND->setDateTime($end); $vevent->DTSTART['VALUE'] = 'date'; $vevent->DTEND['VALUE'] = 'date'; $vevent->{'RRULE'} = 'FREQ=YEARLY;INTERVAL=1'; $vevent->{'TRANSP'} = 'TRANSPARENT'; $vevent->{'SUMMARY'} = (string) $title . ' (' . $getAge . ')'; $description = (string) $this->l10n->t("Happy Birthday! Born on: ") . $birthdayOutput; $vevent->setString('DESCRIPTION', $description); $vevent->{'UID'} = substr(md5(rand() . time()), 0, 10); $insertid = Object::add($calId, $vcalendar->serialize()); if ($this->isDuplicate($insertid)) { Object::delete($insertid); } } } }
/** * @NoAdminRequired */ public function newTask() { //relatedto,hiddenfield, read_worker,$_POST,mytaskcal, mytaskmode $relatedto = $this->params('relatedto'); $hiddenPostField = $this->params('hiddenfield'); $myTaskCal = $this->params('mytaskcal'); $myTaskMode = $this->params('mytaskmode'); $calId = $this->params('calId'); if (isset($hiddenPostField) && $hiddenPostField === 'newitTask') { $cid = $this->params('read_worker'); $postRequestAll = $this->getParams(); $vcalendar = TasksApp::createVCalendarFromRequest($postRequestAll); $id = Object::add($cid, $vcalendar->serialize()); $vcalendar1 = TasksApp::getVCalendar($id, true, true); $vtodo = $vcalendar1->VTODO; $aTask = TasksApp::getEventObject($id, true, true); $aCalendar = CalendarCalendar::find($aTask['calendarid']); $user_timezone = CalendarApp::getTimezone(); $task_info = TasksApp::arrayForJSON($id, $vtodo, $user_timezone, $aCalendar, $aTask); $response = new JSONResponse(); $response->setData($task_info); return $response; } if (isset($relatedto) && $relatedto !== '') { $calMainId = TasksApp::getCalIdByUID($relatedto); } $calendarsArrayTmp = CalendarCalendar::allCalendars($this->userId, true); //Filter Importent Values $calendar_options = array(); $checkArray = array(); $checkShareArray = array(); $bShareCalId = ''; foreach ($calendarsArrayTmp as $calendar) { $isAktiv = $calendar['active']; if ($this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'calendar_' . $calendar['id']) != '') { $isAktiv = $this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'calendar_' . $calendar['id']); } if (!array_key_exists('active', $calendar)) { $isAktiv = 1; } if ((int) $isAktiv === 1 && $calendar['userid'] !== $this->userId) { $sharedCalendar = \OCP\Share::getItemSharedWithBySource(CalendarApp::SHARECALENDAR, CalendarApp::SHARECALENDARPREFIX . $calendar['id']); if ($sharedCalendar && $sharedCalendar['permissions'] & \OCP\PERMISSION_CREATE) { array_push($calendar_options, $calendar); $checkShareArray[$calendar['id']] = $calendar['id']; } } if ($isAktiv === 1 && $calendar['userid'] === $this->userId) { array_push($calendar_options, $calendar); $checkArray[$calendar['id']] = $calendar['id']; } } $priorityOptionsArray = TasksApp::getPriorityOptionsFilterd(); $access_class_options = CalendarApp::getAccessClassOptions(); $priorityOptions = TasksApp::generateSelectFieldArray('priority', '', $priorityOptionsArray, false); $activeCal = ''; if ($this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'choosencalendar')) { $activeCal = $this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'choosencalendar'); } $reminder_options = CalendarApp::getReminderOptions(); $reminder_advanced_options = CalendarApp::getAdvancedReminderOptions(); $reminder_time_options = CalendarApp::getReminderTimeOptions(); if ($myTaskMode !== 'calendar' || $myTaskCal === 0) { $activeCal = $activeCal; } else { $activeCal = $myTaskCal; } if (isset($calId) && $calId != '') { $activeCal = $calId; } //reminder $reminderdate = ''; $remindertime = ''; $params = ['priorityOptions' => $priorityOptions, 'relatedToUid' => $relatedto, 'access_class_options' => $access_class_options, 'calendar_options' => $calendar_options, 'calendar' => $activeCal, 'mymode' => $myTaskMode, 'mycal' => $myTaskCal, 'bShareCalId' => $bShareCalId, 'accessclass' => '', 'reminder_options' => $reminder_options, 'reminder' => 'none', 'reminder_time_options' => $reminder_time_options, 'reminder_advanced_options' => $reminder_advanced_options, 'reminder_advanced' => 'DISPLAY', 'remindertimeselect' => '', 'remindertimeinput' => '', 'reminderemailinput' => '', 'reminder_rules' => '', 'reminderdate' => '', 'remindertime' => '']; $response = new TemplateResponse($this->appName, 'event.new', $params, ''); return $response; }
/** * @NoAdminRequired */ public function newEvent() { $postRequestAll = $this->getParams(); $pStart = $this->params('viewstart'); $pEnd = $this->params('viewend'); // \OCP\Util::writeLog($this->appName,'foundDESCR '.$pStart.':'.$Start, \OCP\Util::DEBUG); $calId = $this->params('calendar'); $errarr = $this->objectParser->validateRequest($postRequestAll); if ($errarr) { $errarr['status'] = 'error'; $response = new JSONResponse($errarr); return $response; } else { $vcalendar = $this->objectParser->createVCalendarFromRequest($postRequestAll); $id = Object::add($calId, $vcalendar->serialize()); $editedEvent = CalendarApp::getEventObject($id, false, false); if (stristr($pStart, '(')) { $temp = explode('(', $pStart); $pStart = $temp[0]; } if (stristr($pEnd, '(')) { $temp = explode('(', $pEnd); $pEnd = $temp[0]; } $start = new \DateTime($pStart); $end = new \DateTime($pEnd); $events = $this->generateEventOutput($editedEvent, $start, $end); $params = ['status' => 'success', 'data' => ['id' => $id, 'events' => $events]]; $response = new JSONResponse($params); return $response; } }
/** * @NoAdminRequired */ public function newEvent() { $postRequestAll = $this->getParams(); $pStart = $this->params('viewstart'); $pEnd = $this->params('viewend'); $calId = $this->params('calendar'); $errarr = Object::validateRequest($postRequestAll); if ($errarr) { $errarr['status'] = 'error'; $response = new JSONResponse($errarr); return $response; } else { $vcalendar = Object::createVCalendarFromRequest($postRequestAll); $id = Object::add($calId, $vcalendar->serialize()); $editedEvent = CalendarApp::getEventObject($id, false, false); $start = new \DateTime($pStart); $end = new \DateTime($pEnd); $events = CalendarApp::generateEventOutput($editedEvent, $start, $end); $params = ['status' => 'success', 'data' => ['id' => $id, 'events' => $events]]; $response = new JSONResponse($params); return $response; } }