From 475c5731bf3362b6ac8d2dc5d5b43e4b4a6117bd Mon Sep 17 00:00:00 2001 From: RaindropsSys Date: Tue, 21 Mar 2023 16:21:21 +0100 Subject: Updated 26 files and added 1074 files (automated) --- includes/composer/ical/ical.php | 69 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 includes/composer/ical/ical.php (limited to 'includes/composer/ical/ical.php') diff --git a/includes/composer/ical/ical.php b/includes/composer/ical/ical.php new file mode 100644 index 0000000..84d637c --- /dev/null +++ b/includes/composer/ical/ical.php @@ -0,0 +1,69 @@ +parse(file_get_contents($content)); + } + } + + protected function parse(string $content) : iCal + { + $content = str_replace("\r\n ", '', $content); + + preg_match_all('`BEGIN:VEVENT(.+)END:VEVENT`Us', $content, $matches); + foreach($matches[0] as $eventContent) + { + $this->Events[] = new iCalEvent($eventContent); + } + + return $this; + } + + public function getEventsAfterDate(string $date) : array + { + $output = array(); + + $date = strtotime($date); + foreach ($this->Events as $event) + { + $eventTimestamp = strtotime($event->startDateTime); + if ($eventTimestamp >= $date) + { + $output[] = $event; + } + } + + asort($output); + return $output; + } + + public function getActiveEvents() : array + { + $output = array(); + + $currentDate = strtotime(date('Y-m-d')); + foreach ($this->Events as $event) + { + $eventStartTimestamp = strtotime($event->startDateTime); + $eventEndTimestamp = strtotime($event->endDateTime); + if ($currentDate >= $eventStartTimestamp && $currentDate <= $eventEndTimestamp) + { + $output[] = $event; + } + } + + asort($output); + return $output; + } +} \ No newline at end of file -- cgit