Die Termine können gerade nicht geladen werden.
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' => 'Januar', '02' => 'Februar', '03' => 'März', '04' => 'April', '05' => 'Mai', '06' => 'Juni', '07' => 'Juli', '08' => 'August', '09' => 'September', '10' => 'Oktober', '11' => 'November', '12' => 'Dezember', ]; // --- Gruppierung aller Termine nach Jahr und Monat für die Sidebar --- function group_events_by_year_month($events) { $grouped = []; foreach ($events as $event) { if (!isset($event['DTSTART'])) { continue; } $date = $event['DTSTART']; $year = substr($date, 0, 4); $month = substr($date, 4, 2); $grouped[$year][$month][] = $event; } krsort($grouped); // Jahre absteigend foreach ($grouped as &$months) { krsort($months); // Monate absteigend } return $grouped; } $all_events_grouped = group_events_by_year_month($events); // --- Filter aus URL - sichere Eingabe --- $filter_jahr = filter_input(INPUT_GET, 'jahr', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? null; $filter_monat = filter_input(INPUT_GET, 'monat', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? null; if ($filter_jahr && $filter_monat) { $filtered_events = array_filter($events, function ($event) use ($filter_jahr, $filter_monat) { $date = $event['DTSTART'] ?? ''; return substr($date, 0, 4) === $filter_jahr && substr($date, 4, 2) === $filter_monat; }); } elseif ($filter_jahr) { $filtered_events = array_filter($events, function ($event) use ($filter_jahr) { $date = $event['DTSTART'] ?? ''; return substr($date, 0, 4) === $filter_jahr; }); } else { $filtered_events = $future_events; } ?>
Keine Termine gefunden.
'', 'has_time' => false, 'iso' => '']; $date = $date_info['display'] ?? ''; $time = ($date_info['has_time'] ?? false) ? substr($date, 11) : 'ganztägig'; $date = substr($date, 0, 10); $iso_date = $date_info['iso'] ?? ''; // Sichere HTML-Ausgabe $safe_date = htmlspecialchars($date, ENT_QUOTES, 'UTF-8'); $safe_time = htmlspecialchars($time, ENT_QUOTES, 'UTF-8'); $safe_iso_date = htmlspecialchars($iso_date, ENT_QUOTES, 'UTF-8'); $safe_summary = htmlspecialchars($summary, ENT_QUOTES, 'UTF-8'); ?>
Datum Uhrzeit Titel
ganztägig