From ae66ce4633b7b949f5947f11228c00913f6e10bb Mon Sep 17 00:00:00 2001 From: iwonder Date: Fri, 13 Mar 2020 11:41:00 +0000 Subject: [PATCH] =?UTF-8?q?Add=20switch=20for=20disabling=20event=20calend?= =?UTF-8?q?ar=20(SARS-CoV-2=20Switch=E2=84=A2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.php | 65 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/index.php b/index.php index 9b096d6..2f21495 100644 --- a/index.php +++ b/index.php @@ -3,6 +3,7 @@ require_once 'vendor/autoload.php'; use ICal\ICal; static $DATE_FORMAT = 'd.m.Y H:i'; static $VISITORS_FILE = '/media/sg/dorf.jetzt_visitors'; +static $ENABLE_CALENDAR = false; static $ICAL_URL = 'https://chaosdorf.de/~derf/cccd_all.ics'; $state_map = array( 'closed' => (object) array( @@ -12,7 +13,7 @@ $state_map = array( ), 'maybe_open' => (object) array( 'state_string' => 'Das Dorf ist gerade vielleicht geöffnet:

Der Clubraum ist offen, aber es findet keine Veranstaltung statt.

- Der Status kann sich also kstartdate_loopurzfristig ändern.', + Der Status kann sich also kurzfristig ändern.', 'svg' => 'done', 'color' => 'brown', ), @@ -51,33 +52,35 @@ $hash_to_state = array( $img = file_get_contents('https://chaosdorf.de/raumstatus/status.png'); $hash = md5($img); $state = $hash_to_state[$hash]; +if ($ENABLE_CALENDAR){ $ical = new ICal(false, array( - 'defaultSpan' => 2, - 'defaultTimeZone' => 'Europe/Berlin', - 'defaultWeekStart' => 'MO', - 'filterDaysBefore' => '1', - )); -$ical->initUrl($ICAL_URL, $acceptLanguage = 'de'); -$events = $ical->eventsFromInterval('2 week'); -$first_event = $events[0]; -$events = array_slice($events, 1); -$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']); -if ($locale !== null){ - setlocale(LC_TIME, $locale); + 'defaultSpan' => 2, + 'defaultTimeZone' => 'Europe/Berlin', + 'defaultWeekStart' => 'MO', + 'filterDaysBefore' => '1', + )); + $ical->initUrl($ICAL_URL, $acceptLanguage = 'de'); + $events = $ical->eventsFromInterval('2 week'); + $first_event = $events[0]; + $events = array_slice($events, 1); + $locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']); + if ($locale !== null){ + setlocale(LC_TIME, $locale); + } + function format_event($event): string{ + global $DATE_FORMAT, $ical; + $startdate_loop = $ical->iCalDateToDateTime($event->dtstart_array[3]); + $startdate_str = $startdate_loop->format($DATE_FORMAT); + $interval_loop = new DateInterval($event->duration); + if ($interval_loop->d != 0 || $interval_loop->h >= 24){ + $enddate_str = $startdate_loop->add($interval_loop)->format($DATE_FORMAT); + }else{ + $enddate_str = $startdate_loop->add($interval_loop)->format('H:i'); + } + return $startdate_str . ' – ' . $enddate_str; + } } $v = file_get_contents($VISITORS_FILE); -function format_event($event): string{ - global $DATE_FORMAT, $ical; - $startdate_loop = $ical->iCalDateToDateTime($event->dtstart_array[3]); - $startdate_str = $startdate_loop->format($DATE_FORMAT); - $interval_loop = new DateInterval($event->duration); - if ($interval_loop->d != 0 || $interval_loop->h >= 24){ - $enddate_str = $startdate_loop->add($interval_loop)->format($DATE_FORMAT); - }else{ - $enddate_str = $startdate_loop->add($interval_loop)->format('H:i'); - } - return $startdate_str . ' – ' . $enddate_str; -} ?> @@ -107,6 +110,7 @@ function format_event($event): string{

Events
+
Nächste Veranstaltung

summary, ENT_QUOTES, 'UTF-8') ?>
@@ -123,7 +127,16 @@ function format_event($event): string{ - Event-Kalender + Event-Kalender + +
Aktuell keine Veranstaltungen.
+

+ + Aktuell finden als Vorsichtsmaßnahme keine öffentlichen Veranstaltungen statt.
+ Bitte beobachte den Blog des Chaosdorf für weitere Informationen. +
+

+