diff --git a/site/collections/termine.php b/site/collections/termine.php
new file mode 100644
index 0000000..deff9d8
--- /dev/null
+++ b/site/collections/termine.php
@@ -0,0 +1,66 @@
+format('d.m.Y H:i') : $date;
+ } else {
+ $dt = DateTime::createFromFormat('Ymd', $date);
+
+ return $dt ? $dt->format('d.m.Y') : $date;
+ }
+ }
+
+// ICS-Datei laden
+ $ics = @file_get_contents(CAL_URL);
+ if ( ! $ics) {
+ echo '
Kalender konnte nicht geladen werden.
';
+
+ return;
+ }
+
+// Termine parsen
+ function parse_ics($ics)
+ {
+ $lines = explode("\n", $ics);
+ $events = [];
+ $event = [];
+ $inEvent = false;
+ foreach ($lines as $line) {
+ $line = trim($line);
+ if ($line === 'BEGIN:VEVENT') {
+ $inEvent = true;
+ $event = [];
+ } elseif ($line === 'END:VEVENT') {
+ $inEvent = false;
+ $events[] = $event;
+ } elseif ($inEvent) {
+ // Property kann Parameter enthalten, z.B. DTSTART;TZID=Europe/Berlin:20240701T19000000
+ $parts = explode(':', $line, 2);
+ if (count($parts) === 2) {
+ $key = $parts[0];
+ $val = $parts[1];
+ // Nur den eigentlichen Property-Namen extrahieren
+ $key = strtoupper(preg_replace('/;.+$/', '', $key));
+ $event[$key] = $val;
+ }
+ }
+ }
+
+ return $events;
+ }
+
+ $events = parse_ics($ics);
+
+ return function() use ($events) {
+ return $events;
+ }
+?>
\ No newline at end of file
diff --git a/site/snippets/termine-home.php b/site/snippets/termine-home.php
new file mode 100644
index 0000000..66dcb1c
--- /dev/null
+++ b/site/snippets/termine-home.php
@@ -0,0 +1,215 @@
+format('Ymd');
+
+ // Nur zukünftige Termine anzeigen
+ $future_events = array_filter($events, function ($event) use ($today) {
+ return isset($event['DTSTART']) && $event['DTSTART'] >= $today;
+ });
+
+ // --- Deutsche Monatsnamen ---
+ $de_months = [
+ '01' => 'Jan',
+ '02' => 'Feb',
+ '03' => 'Mrz',
+ '04' => 'Apr',
+ '05' => 'Mai',
+ '06' => 'Jun',
+ '07' => 'Jul',
+ '08' => 'Aug',
+ '09' => 'Sep',
+ '10' => 'Okt',
+ '11' => 'Nov',
+ '12' => 'Dez',
+ ];
+?>
+
+
+
Bevorstehende Termine
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/site/snippets/termine.php b/site/snippets/termine.php
index 2cc3b7b..362ca0f 100644
--- a/site/snippets/termine.php
+++ b/site/snippets/termine.php
@@ -1,50 +1,5 @@
Kalender konnte nicht geladen werden.';
-
- return;
-}
-
-// Termine parsen
-function parse_ics($ics)
-{
- $lines = explode("\n", $ics);
- $events = [];
- $event = [];
- $inEvent = false;
- foreach ($lines as $line) {
- $line = trim($line);
- if ($line === 'BEGIN:VEVENT') {
- $inEvent = true;
- $event = [];
- } elseif ($line === 'END:VEVENT') {
- $inEvent = false;
- $events[] = $event;
- } elseif ($inEvent) {
- // Property kann Parameter enthalten, z.B. DTSTART;TZID=Europe/Berlin:20240701T19000000
- $parts = explode(':', $line, 2);
- if (count($parts) === 2) {
- $key = $parts[0];
- $val = $parts[1];
- // Nur den eigentlichen Property-Namen extrahieren
- $key = strtoupper(preg_replace('/;.+$/', '', $key));
- $event[$key] = $val;
- }
- }
- }
-
- return $events;
-}
-
function format_ics_date($date)
{
// Unterstützt sowohl ganztägige als auch Zeitangaben
@@ -59,7 +14,8 @@ function format_ics_date($date)
}
}
-$events = parse_ics($ics);
+$events = collection('termine');
+
// Nur Events mit DTSTART berücksichtigen
$events = array_filter($events, function ($event) {
return isset($event['DTSTART']) && ! empty($event['DTSTART']);
@@ -135,6 +91,7 @@ if ($filter_jahr && $filter_monat) {
$filtered_events = $future_events;
}
?>
+
diff --git a/site/templates/home.php b/site/templates/home.php
new file mode 100644
index 0000000..e5a8214
--- /dev/null
+++ b/site/templates/home.php
@@ -0,0 +1,7 @@
+
+
+
Hallo Welt!
+
+
+
+
\ No newline at end of file