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/icalEvent.php | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 includes/composer/ical/icalEvent.php (limited to 'includes/composer/ical/icalEvent.php') diff --git a/includes/composer/ical/icalEvent.php b/includes/composer/ical/icalEvent.php new file mode 100644 index 0000000..a2791c2 --- /dev/null +++ b/includes/composer/ical/icalEvent.php @@ -0,0 +1,56 @@ +parseEvent($eventContent); + } + + protected function parseEvent(string $eventContent) : iCalEvent + { + $content = str_replace("\r\n ", '', $eventContent); + + $this->title = $this->getEventDetail($content, "SUMMARY:"); + $this->description = $this->getEventDetail($content, "DESCRIPTION:"); + $this->startDateTime = $this->getEventDateTime($content, "DTSTART"); + $this->endDateTime = $this->getEventDateTime($content, "DTEND"); + $this->location = $this->getEventDetail($content, "LOCATION:"); + $this->created = date('d.m.Y H:i', strtotime($this->getEventDetail($content, "CREATED:"))); + $this->lastModified = date('d.m.Y H:i', strtotime($this->getEventDetail($content, "LAST-MODIFIED:"))); + + return $this; + } + + protected function getEventDetail(string $eventContent, string $eventDetailKey) : string + { + $output = ""; + + if (preg_match('`^' . $eventDetailKey . '(.*)$`m', $eventContent, $match)) + { + $output = trim($match[1]); + } + + return $output; + } + + protected function getEventDateTime(string $eventContent, string $eventDetailKey) : string + { + $output = ""; + + if (preg_match('`^' . $eventDetailKey . '(?:;.+)?:([0-9]+(T[0-9]+Z?)?)`m', $eventContent, $match)) + { + $output = date('d.m.Y H:i', strtotime($match[1])); + } + + return $output; + } +} \ No newline at end of file -- cgit