| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?php
- trait CalendarHomepageItem
- {
- public function calendarSettingsArray($infoOnly = false)
- {
- $homepageInformation = [
- 'name' => 'iCal',
- 'enabled' => strpos('personal', $this->config['license']) !== false,
- 'image' => 'plugins/images/tabs/calendar.png',
- 'category' => 'HOMEPAGE',
- 'settingsArray' => __FUNCTION__
- ];
- if ($infoOnly) {
- return $homepageInformation;
- }
- $homepageSettings = [
- 'debug' => true,
- 'settings' => [
- 'Enable' => [
- $this->settingsOption('enable', 'homepageCalendarEnabled'),
- $this->settingsOption('auth', 'homepageCalendarAuth'),
- $this->settingsOption('multiple-url', 'calendariCal', ['label' => 'iCal URL\'s']),
- ],
- 'Misc Options' => [
- $this->settingsOption('calendar-start', 'calendarStart'),
- $this->settingsOption('calendar-end', 'calendarEnd'),
- $this->settingsOption('calendar-starting-day', 'calendarFirstDay'),
- $this->settingsOption('calendar-default-view', 'calendarDefault'),
- $this->settingsOption('calendar-time-format', 'calendarTimeFormat'),
- $this->settingsOption('calendar-locale', 'calendarLocale'),
- $this->settingsOption('calendar-limit', 'calendarLimit'),
- $this->settingsOption('refresh', 'calendarRefresh'),
- ],
- ]
- ];
- return array_merge($homepageInformation, $homepageSettings);
- }
-
- public function calendarHomepagePermissions($key = null)
- {
- $permissions = [
- 'main' => [
- 'enabled' => [
- 'homepageCalendarEnabled'
- ],
- 'auth' => [
- 'homepageCalendarAuth'
- ],
- 'not_empty' => [
- 'calendariCal'
- ]
- ]
- ];
- return $this->homepageCheckKeyPermissions($key, $permissions);
- }
-
- public function homepageOrdercalendar()
- {
- if (
- $this->homepageItemPermissions($this->sonarrHomepagePermissions('calendar')) ||
- $this->homepageItemPermissions($this->radarrHomepagePermissions('calendar')) ||
- $this->homepageItemPermissions($this->lidarrHomepagePermissions('calendar')) ||
- $this->homepageItemPermissions($this->sickrageHomepagePermissions('calendar')) ||
- $this->homepageItemPermissions($this->couchPotatoHomepagePermissions('calendar')) ||
- $this->homepageItemPermissions($this->traktHomepagePermissions('calendar')) ||
- $this->homepageItemPermissions($this->calendarHomepagePermissions('main'))
- ) {
- return '
- <div id="' . __FUNCTION__ . '">
- <div id="calendar" class="fc fc-ltr m-b-30"></div>
- <script>
- // Calendar
- homepageCalendar("' . $this->config['calendarRefresh'] . '");
- // End Calendar
- </script>
- </div>
- ';
- }
- }
-
- public function loadCalendarJS()
- {
- $locale = ($this->config['calendarLocale'] !== 'en') ?? false;
- return ($locale) ? '<script src="plugins/bower_components/calendar/dist/lang-all.js"></script>' : '';
- }
-
- public function getCalendar()
- {
- $startDate = date('Y-m-d', strtotime("-" . $this->config['calendarStart'] . " days"));
- $endDate = date('Y-m-d', strtotime("+" . $this->config['calendarEnd'] . " days"));
- $icalCalendarSources = array();
- $calendarItems = array();
- // SONARR CONNECT
- $items = $this->getSonarrCalendar($startDate, $endDate);
- $calendarItems = is_array($items) ? array_merge($calendarItems, $items) : $calendarItems;
- unset($items);
- // LIDARR CONNECT
- $items = $this->getLidarrCalendar($startDate, $endDate);
- $calendarItems = is_array($items) ? array_merge($calendarItems, $items) : $calendarItems;
- unset($items);
- // RADARR CONNECT
- $items = $this->getRadarrCalendar($startDate, $endDate);
- $calendarItems = is_array($items) ? array_merge($calendarItems, $items) : $calendarItems;
- unset($items);
- // SICKRAGE/BEARD/MEDUSA CONNECT
- $items = $this->getSickRageCalendar();
- $calendarItems = is_array($items) ? array_merge($calendarItems, $items) : $calendarItems;
- unset($items);
- // COUCHPOTATO CONNECT
- $items = $this->getCouchPotatoCalendar();
- $calendarItems = is_array($items) ? array_merge($calendarItems, $items) : $calendarItems;
- unset($items);
- // TRAKT CONNECT
- $items = $this->getTraktCalendar();
- $calendarItems = is_array($items) ? array_merge($calendarItems, $items) : $calendarItems;
- unset($items);
- // iCal URL
- $calendarSources['ical'] = $this->getICalendar();
- unset($items);
- // Finish
- $calendarSources['events'] = $calendarItems;
- $this->setAPIResponse('success', null, 200, $calendarSources);
- return $calendarSources;
- }
- }
|