* $time string 'HH:MM' oder leer * $location string Ortsname der Veranstaltung * $karte string 'club' = auf unserem eigenen Gelände: Adresse kommt aus * data/club.json und die Karte wird gezeigt. Alles andere (oder * leer) → keine Karte, nur der Ortsname (ein Fest woanders hätte * sonst eine falsche Karte daneben). * $anfahrt array optionale Absätze zum Parken/Zugang * * Nur für Feste, die noch ausstehen (app/pages/veranstaltung.php ruft die * Komponente danach nicht mehr auf) — deshalb steht hier durchgehend Zukunft. * * KEINE Leaflet-Karte, sondern ein statisches Kartenbild: Leaflet würde seine * Kacheln zur Laufzeit von einem fremden Tile-Server holen, und genau das * verbietet Regel 1 (die CSP mit img-src 'self' würde sie ohnehin blocken). * Das Bild liegt selbst gehostet bei uns, der Klick führt erst dann zu Google * Maps, wenn jemand ihn macht. Namensnennung für die OSM-Daten steht als * Bildunterschrift, das verlangt die ODbL. */ $dateText = $date_text ?? ''; $dateIso = $date_iso ?? ''; $time = $time ?? ''; $location = $location ?? ''; $karte = $karte ?? ''; $anfahrt = $anfahrt ?? []; $istBeiUns = $karte === 'club'; $club = $istBeiUns ? json_load('club') : []; $adresse = $club['address'] ?? []; $geo = $club['geo'] ?? []; // Kartenlink ohne API-Schlüssel und ohne Einbettung: Koordinaten aus club.json // (Single Source), damit die Adresse hier nicht als Text zweitverwertet wird. $mapsUrl = ''; if ($istBeiUns && !empty($geo['lat']) && !empty($geo['lng'])) { $mapsUrl = 'https://www.google.com/maps/search/?api=1&query=' . $geo['lat'] . ',' . $geo['lng']; } ?>