= h($e['title']) ?>
+ += nl2br(h(mb_strimwidth($e['description'], 0, 220, '…'))) ?>
+ + + + + + +diff --git a/admin.php b/admin.php new file mode 100644 index 0000000..735ad8e --- /dev/null +++ b/admin.php @@ -0,0 +1,344 @@ + $ev) { + if ($ev['id'] === $id) { $idx = $k; break; } + } + $record = [ + 'id' => $id, + 'title' => $title, + 'speaker' => $speaker, + 'date' => $date, + 'time' => $time, + 'venue_name' => $venue_name, + 'venue_address' => $venue_address, + 'price' => $price, + 'doors_open' => $doors_open, + 'tickets_info' => $tickets_info, + 'catering' => $catering, + 'tags' => $tags, + 'description' => $description, + 'image' => $imagePath, + 'slug' => $slug, + 'updated_at' => now_iso() + ]; + if ($idx !== null) { + $events[$idx] = $record; + } else { + $record['created_at'] = now_iso(); + $events[] = $record; + } + save_events($events); + header('Location: admin.php?ok=1'); + exit; + } catch (Throwable $e) { + $error = 'Fehler: ' . $e->getMessage(); + } + } + } + + // DELETE + if (isset($_GET['delete'])) { + $events = load_events(); + $id = $_GET['delete']; + $events = array_values(array_filter($events, fn($e) => $e['id'] !== $id)); + save_events($events); + header('Location: admin.php?deleted=1'); + exit; + } + + // EDIT load + $editEvent = null; + if (isset($_GET['edit'])) { + $id = $_GET['edit']; + foreach (load_events() as $e) { + if ($e['id'] === $id) { $editEvent = $e; break; } + } + } +} +?> + + +
+ + +Anlegen, bearbeiten, Bilder hochladen.
+Noch keine Einträge.
+ +| Datum | +Titel | +Ort | ++ |
|---|---|---|---|
| = h($e['date']) ?> = h($e['time']) ?> | +
+ = h($e['title']) ?>
+ = h($e['speaker']) ?>
+ |
+ = h($e['venue_name']) ?> | ++ Bearbeiten + Löschen + | +
Tipp
+Informationen zur Verarbeitung personenbezogener Daten nach DSGVO.
+
+ Verantwortlich im Sinne der Datenschutzgesetze, insbesondere der EU-Datenschutzgrundverordnung (DSGVO), ist:
+ Alexander Kerst
+ Erfurter Straße 29b
+ 99189 Walschleben
+ Deutschland
+ E-Mail: walschleber.kultour@gmail.com
+
+ Wir verarbeiten personenbezogene Daten der Nutzer grundsätzlich nur, soweit dies zur Bereitstellung einer funktionsfähigen Website sowie unserer Inhalte und Leistungen erforderlich ist. + Die Verarbeitung personenbezogener Daten erfolgt regelmäßig nur nach Einwilligung der Nutzer oder wenn die Verarbeitung durch gesetzliche Vorschriften gestattet ist. +
+ ++ Die Verarbeitung erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO (Vertrag/Anbahnung), + Art. 6 Abs. 1 lit. c DSGVO (rechtliche Verpflichtung) oder Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse, z. B. für den sicheren Betrieb der Website). + Bei Einwilligungen stützen wir uns auf Art. 6 Abs. 1 lit. a DSGVO. +
+ ++ Personenbezogene Daten werden gelöscht, sobald der Zweck der Speicherung entfällt oder gesetzliche Aufbewahrungsfristen ablaufen. +
+ ++ Eine Übermittlung Ihrer persönlichen Daten an Dritte erfolgt nur, wenn dies gesetzlich erlaubt ist, + zur Erfüllung eines Vertrags erforderlich ist oder Sie ausdrücklich eingewilligt haben. +
+ ++ Unsere Website verwendet Cookies. Cookies sind kleine Textdateien, die auf Ihrem Endgerät gespeichert werden. + Sie dienen dazu, unsere Website nutzerfreundlicher und sicherer zu machen. + Sie können die Speicherung von Cookies durch Ihre Browsereinstellungen verhindern. + Bereits gespeicherte Cookies können jederzeit gelöscht werden. +
+ +Sie haben folgende Rechte gemäß DSGVO:
++ Wir setzen technische und organisatorische Sicherheitsmaßnahmen ein, um Ihre Daten gegen Manipulation, Verlust oder unbefugten Zugriff zu schützen. + Unsere Sicherheitsmaßnahmen werden entsprechend der technologischen Entwicklung fortlaufend verbessert. +
+ ++ Wir behalten uns vor, diese Datenschutzerklärung bei Bedarf anzupassen, + um sie stets den aktuellen rechtlichen Anforderungen sowie Änderungen unserer Leistungen anzupassen. +
+ +
'; + $html = strip_tags($input, $allowed); + + // Gefährliche Event-Handler entfernen (on*) + $html = preg_replace('/\s+on\w+\s*=\s*(".*?"|\'.*?\'|[^\s>]+)/i', '', $html); + + // style-Attribute entfernen (vermeidet versteckte JS/CSS-Tricks) + $html = preg_replace('/\s+style\s*=\s*(".*?"|\'.*?\'|[^\s>]+)/i', '', $html); + + // href bereinigen: nur http/https erlauben, sonst entfernen + // Außerdem rel/target ergänzen + $html = preg_replace_callback( + '/]*href\s*=\s*(["\'])(.*?)\2[^>]*)>/i', + function ($m) { + $attr = $m[1]; + $url = $m[3]; + + // javascript:, data:, mailto: usw. blocken (nur http/https) + if (!preg_match('~^https?://~i', $url)) { + // href wegnehmen + $attr = preg_replace('/\s*href\s*=\s*(".*?"|\'.*?\'|[^\s>]+)/i', '', $attr); + $url = null; + } + + // target & rel setzen + if ($url) { + // target="_blank" + if (!preg_match('/\btarget\s*=/i', $attr)) { + $attr .= ' target="_blank"'; + } + // rel ergänzen + if (preg_match('/\brel\s*=\s*("|\')(.*?)\1/i', $attr, $r)) { + $rels = array_map('trim', explode(' ', $r[2] ?: '')); + foreach (['noopener','nofollow','ugc'] as $need) { + if (!in_array($need, $rels, true)) $rels[] = $need; + } + $attr = preg_replace('/\brel\s*=\s*("|\')(.*?)\1/i', ' rel="'.implode(' ', $rels).'"', $attr); + } else { + $attr .= ' rel="noopener nofollow ugc"'; + } + } + + return ''; + }, + $html + ); + + // Restliche "href='javascript:…'"-Muster sicherheitshalber neutralisieren + $html = preg_replace('/href\s*=\s*(["\'])\s*javascript:[^"\']*\1/i', '', $html); + + // Doppelte/überflüssige Leerzeichen in Tags aufräumen + $html = preg_replace('/\s{2,}/', ' ', $html); + + return $html; +} + diff --git a/gitignore.md b/gitignore.md new file mode 100644 index 0000000..abd1369 --- /dev/null +++ b/gitignore.md @@ -0,0 +1,2 @@ +data +data/talks.json \ No newline at end of file diff --git a/impressum.html b/impressum.html new file mode 100644 index 0000000..7de3bdf --- /dev/null +++ b/impressum.html @@ -0,0 +1,87 @@ + + + + +
Impressum – Walschleber KulTour + + + + + + + + + + + + + + + + + + + ++ + ++ ++Impressum
+Gesetzliche Anbieterkennzeichnung.
++ + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..6fbc7a3 --- /dev/null +++ b/index.html @@ -0,0 +1,156 @@ + + + + ++ ++Dienstanbieter gemäß § 5 TMG:
+ +
+ Alexander Kerst
+ Erfurter Straße 29b
+ 99189 Walschleben
+ DeutschlandKontakt:
+ +
+ Telefon: +49 (0)172 8729594
+ E-Mail: walschleber.kultour@gmail.comVertreten durch:
+ +
+ Alexander KerstBereitstellung & Administration:
+ +
+ Louis-Alexander KerstVerantwortlich für den Inhalt nach § 55 Abs. 2 RStV:
+ +
+ Alexander Kerst
+ Erfurter Straße 29b
+ 99189 Walschleben
+ Deutschland
+ +EU-Streitschlichtung
+ +
+ Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit: + https://ec.europa.eu/consumers/odr.
+ Unsere E-Mail-Adresse finden Sie oben im Impressum.Verbraucherstreitbeilegung/Universalschlichtungsstelle
+ +
+ Wir sind nicht verpflichtet und nicht bereit, an Streitbeilegungsverfahren vor einer + Verbraucherschlichtungsstelle teilzunehmen.Walschleber KulTour – Kultur erleben! + + + + + + + + + + + + + + + + + + + + + + ++ + + + ++++++ ++Kultur erleben in Walschleben
+Vorträge, Lesungen und Multivisionsshows – Geschichten, die bewegen. Gemütlich, nahbar, inspirierend.
+ ++ + + +Warum KulTour?
+Abende, die im Kopf bleiben
++++Beeindruckende Bilder
Live‑Reportagen & Multivision.+Nah dran
Frag die Referenten direkt.+Gemütliches Ambiente
Einlass & Bewirtung vor Ort.+ + + + ++ + + +++++++Was ist die KulTour?
+Eine ehrenamtliche Vortragsreihe in Walschleben mit wechselnden Themen aus Reise, Abenteuer und Kultur – live erzählt, mit Herz und Nähe zum Publikum.
+ Mehr erfahren +++++Newsletter
+Verpasse keinen Termin: Trage dich in unseren Newsletter ein und erhalte neue Veranstaltungen direkt per E‑Mail.
+ Newsletter abonnieren ++ +++++Aktuelle Highlights
+ Alle Termine ansehen +Die Übersicht der kommenden Veranstaltungen findest du im Programm.
++ + + + + + + + + diff --git a/kontakt.html b/kontakt.html new file mode 100644 index 0000000..3e89fd7 --- /dev/null +++ b/kontakt.html @@ -0,0 +1,88 @@ + + + + +Kontakt – Walschleber KulTour + + + + + + + + + + + + + + + + + + + + ++ + ++ ++Kontakt
+Fragen? Presse? Du möchtest einen Vortrag anbieten? Wir freuen uns auf deine Nachricht.
++ + + + + + + + diff --git a/newsletter.html b/newsletter.html new file mode 100644 index 0000000..80db98d --- /dev/null +++ b/newsletter.html @@ -0,0 +1,117 @@ + + + + +++++++Schreib uns
+Walschleber KulTour
+ +Erfurter Straße 29b, 99189 Walschleben
+ +
+ +Du planst einen Vortrag oder eine Lesung?
+Schick uns kurz Thema, Datumsidee und ein paar Stichworte – wir melden uns!
++ ++Newsletter – Walschleber KulTour + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ ++Newsletter
+Verpasse keinen Termin – wir mailen dir neue Veranstaltungen beizeiten.
++ + + + + + + + + + + diff --git a/programm.php b/programm.php new file mode 100644 index 0000000..b620046 --- /dev/null +++ b/programm.php @@ -0,0 +1,232 @@ + + + + + ++ ++++ + +++Anmeldung
+Schnell & DSGVO‑konform
+Trage deine E‑Mail ein und bestätige die Anmeldung per Double‑Opt‑In.
+ + ++ + + + ++ ++ Hinweis: Wir verwenden MailerLite als Newsletter‑Dienst. Mit deiner Anmeldung erklärst du dich mit der Verarbeitung deiner Daten + zum Versand des Newsletters einverstanden. Details findest du in unserer Datenschutzerklärung. +
+++++Vorteile
+Warum abonnieren?
++
+- Frühzeitig über neue Termine informiert
+- Besondere Hinweise & Hintergründe
+- Nur relevante Infos – kein Spam
+- Jederzeit mit einem Klick abmelden
+Programm | = h(SITE_NAME) ?> + + + + + + + + + + + + + + + + + + + ++ + +++Programm
+Alle kommenden Termine auf einen Blick.
++ + + + + + + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..445383f --- /dev/null +++ b/robots.txt @@ -0,0 +1 @@ +robots.txt \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..ea39475 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,11 @@ + +Derzeit sind keine zukünftigen Termine eingetragen.+ +++ +Sortierung: demnächst zuerst+ Zum Archiv ++ ++ + + + + + + +++ ++ + + +++ + ++
+ Kommender Termin +++ = date('d.m.Y', strtotime($e['date'])) ?> · = h($e['time'] ?: '19:30') ?> ++ += h($e['title']) ?>
+ +mit = h($e['speaker']) ?>+ + + += nl2br(h(mb_strimwidth($e['description'], 0, 220, '…'))) ?>
+ + + + + + ++ Tickets sichern ++ +Tickets: = h($e['tickets_info']) ?>+ + + ++ diff --git a/ueber-uns.html b/ueber-uns.html new file mode 100644 index 0000000..e074256 --- /dev/null +++ b/ueber-uns.html @@ -0,0 +1,105 @@ + + + + ++ https://walschleber-kultour.com/ 2025-08-23 + https://walschleber-kultour.com/programm.php 2025-08-23 + https://walschleber-kultour.com/vergangene-vortraege.php 2025-08-23 + https://walschleber-kultour.com/ueber-uns.html 2025-08-23 + https://walschleber-kultour.com/kontakt.html 2025-08-23 + https://walschleber-kultour.com/newsletter.html 2025-08-23 + https://walschleber-kultour.com/impressum.html 2025-08-23 + https://walschleber-kultour.com/datenschutz.html 2025-08-23 Über uns – Walschleber KulTour + + + + + + + + + + + + + + + + + + + + + ++ + ++ ++Über uns
+Ehrenamtlich organisiert – mit Herz für Kultur in Walschleben.
++ + + + + + + + diff --git a/uploads/.htaccess b/uploads/.htaccess new file mode 100644 index 0000000..3511172 --- /dev/null +++ b/uploads/.htaccess @@ -0,0 +1,4 @@ +# Verhindert das Ausführen von PHP/Skripten im Upload-Ordner +RemoveHandler .php .phtml .php3 .php4 .php5 .php7 .phps +php_flag engine off +Options -ExecCGI diff --git a/uploads/event_20250823_152334_f4a8d298.jpg b/uploads/event_20250823_152334_f4a8d298.jpg new file mode 100644 index 0000000..d50089b Binary files /dev/null and b/uploads/event_20250823_152334_f4a8d298.jpg differ diff --git a/uploads/event_20250823_163636_d219cdf4.png b/uploads/event_20250823_163636_d219cdf4.png new file mode 100644 index 0000000..9756921 Binary files /dev/null and b/uploads/event_20250823_163636_d219cdf4.png differ diff --git a/uploads/event_20250823_165136_e33e0cd1.jpg b/uploads/event_20250823_165136_e33e0cd1.jpg new file mode 100644 index 0000000..e528808 Binary files /dev/null and b/uploads/event_20250823_165136_e33e0cd1.jpg differ diff --git a/uploads/event_20250823_170338_21fe418b.jpg b/uploads/event_20250823_170338_21fe418b.jpg new file mode 100644 index 0000000..ba1bfee Binary files /dev/null and b/uploads/event_20250823_170338_21fe418b.jpg differ diff --git a/uploads/event_20250823_170643_efa79403.jpg b/uploads/event_20250823_170643_efa79403.jpg new file mode 100644 index 0000000..26c5836 Binary files /dev/null and b/uploads/event_20250823_170643_efa79403.jpg differ diff --git a/uploads/event_20250823_170757_3546dbb5.jpg b/uploads/event_20250823_170757_3546dbb5.jpg new file mode 100644 index 0000000..6b6b03c Binary files /dev/null and b/uploads/event_20250823_170757_3546dbb5.jpg differ diff --git a/uploads/event_20250823_170918_09cf85f1.webp b/uploads/event_20250823_170918_09cf85f1.webp new file mode 100644 index 0000000..e854ade Binary files /dev/null and b/uploads/event_20250823_170918_09cf85f1.webp differ diff --git a/uploads/event_20250823_171051_f24a525e.webp b/uploads/event_20250823_171051_f24a525e.webp new file mode 100644 index 0000000..2f5af92 Binary files /dev/null and b/uploads/event_20250823_171051_f24a525e.webp differ diff --git a/uploads/event_20250823_171146_4ed983a2.webp b/uploads/event_20250823_171146_4ed983a2.webp new file mode 100644 index 0000000..5a644b2 Binary files /dev/null and b/uploads/event_20250823_171146_4ed983a2.webp differ diff --git a/uploads/event_20250823_171232_bcaa6aec.jpg b/uploads/event_20250823_171232_bcaa6aec.jpg new file mode 100644 index 0000000..1a2570d Binary files /dev/null and b/uploads/event_20250823_171232_bcaa6aec.jpg differ diff --git a/uploads/event_20250823_171452_1ae353ef.jpg b/uploads/event_20250823_171452_1ae353ef.jpg new file mode 100644 index 0000000..bc31a07 Binary files /dev/null and b/uploads/event_20250823_171452_1ae353ef.jpg differ diff --git a/uploads/event_20250823_171543_a8ce7002.jpg b/uploads/event_20250823_171543_a8ce7002.jpg new file mode 100644 index 0000000..d7068e8 Binary files /dev/null and b/uploads/event_20250823_171543_a8ce7002.jpg differ diff --git a/uploads/event_20250823_171628_84e4f3b2.jpg b/uploads/event_20250823_171628_84e4f3b2.jpg new file mode 100644 index 0000000..1dafc31 Binary files /dev/null and b/uploads/event_20250823_171628_84e4f3b2.jpg differ diff --git a/uploads/event_20250823_171708_ce153af4.jpg b/uploads/event_20250823_171708_ce153af4.jpg new file mode 100644 index 0000000..830e3f5 Binary files /dev/null and b/uploads/event_20250823_171708_ce153af4.jpg differ diff --git a/uploads/event_20250823_171742_5f78ac32.jpg b/uploads/event_20250823_171742_5f78ac32.jpg new file mode 100644 index 0000000..204cdf6 Binary files /dev/null and b/uploads/event_20250823_171742_5f78ac32.jpg differ diff --git a/uploads/event_20250823_171818_6026328d.jpg b/uploads/event_20250823_171818_6026328d.jpg new file mode 100644 index 0000000..f1e3092 Binary files /dev/null and b/uploads/event_20250823_171818_6026328d.jpg differ diff --git a/uploads/event_20250823_171927_0be17110.jpg b/uploads/event_20250823_171927_0be17110.jpg new file mode 100644 index 0000000..ecee25e Binary files /dev/null and b/uploads/event_20250823_171927_0be17110.jpg differ diff --git a/uploads/event_20250823_172055_c4ccc353.jpg b/uploads/event_20250823_172055_c4ccc353.jpg new file mode 100644 index 0000000..5924fe4 Binary files /dev/null and b/uploads/event_20250823_172055_c4ccc353.jpg differ diff --git a/uploads/event_20250823_172139_c634afea.jpg b/uploads/event_20250823_172139_c634afea.jpg new file mode 100644 index 0000000..109b3a7 Binary files /dev/null and b/uploads/event_20250823_172139_c634afea.jpg differ diff --git a/uploads/event_20250823_172213_b2add0d8.jpg b/uploads/event_20250823_172213_b2add0d8.jpg new file mode 100644 index 0000000..6d2ce7c Binary files /dev/null and b/uploads/event_20250823_172213_b2add0d8.jpg differ diff --git a/uploads/event_20250823_172255_836b5781.jpg b/uploads/event_20250823_172255_836b5781.jpg new file mode 100644 index 0000000..e951f0b Binary files /dev/null and b/uploads/event_20250823_172255_836b5781.jpg differ diff --git a/uploads/event_20250823_172346_82de8f39.jpg b/uploads/event_20250823_172346_82de8f39.jpg new file mode 100644 index 0000000..b1f179d Binary files /dev/null and b/uploads/event_20250823_172346_82de8f39.jpg differ diff --git a/uploads/event_20250823_172513_bb38c7d8.jpg b/uploads/event_20250823_172513_bb38c7d8.jpg new file mode 100644 index 0000000..059ba19 Binary files /dev/null and b/uploads/event_20250823_172513_bb38c7d8.jpg differ diff --git a/uploads/event_20250823_172556_f68f8cda.jpg b/uploads/event_20250823_172556_f68f8cda.jpg new file mode 100644 index 0000000..4b38cfd Binary files /dev/null and b/uploads/event_20250823_172556_f68f8cda.jpg differ diff --git a/uploads/event_20250915_172534_0e78d94a.jpg b/uploads/event_20250915_172534_0e78d94a.jpg new file mode 100644 index 0000000..0d43cf2 Binary files /dev/null and b/uploads/event_20250915_172534_0e78d94a.jpg differ diff --git a/uploads/event_20250915_172841_09eb4636.jpg b/uploads/event_20250915_172841_09eb4636.jpg new file mode 100644 index 0000000..1e3faea Binary files /dev/null and b/uploads/event_20250915_172841_09eb4636.jpg differ diff --git a/uploads/event_20250915_172956_d35b9177.jpg b/uploads/event_20250915_172956_d35b9177.jpg new file mode 100644 index 0000000..540a538 Binary files /dev/null and b/uploads/event_20250915_172956_d35b9177.jpg differ diff --git a/uploads/event_20250915_173058_1b245c28.jpg b/uploads/event_20250915_173058_1b245c28.jpg new file mode 100644 index 0000000..53ab871 Binary files /dev/null and b/uploads/event_20250915_173058_1b245c28.jpg differ diff --git a/uploads/event_20250915_173205_6a9a8f04.jpg b/uploads/event_20250915_173205_6a9a8f04.jpg new file mode 100644 index 0000000..150cbd3 Binary files /dev/null and b/uploads/event_20250915_173205_6a9a8f04.jpg differ diff --git a/uploads/event_20250915_180536_19dffeff.jpg b/uploads/event_20250915_180536_19dffeff.jpg new file mode 100644 index 0000000..6d509c8 Binary files /dev/null and b/uploads/event_20250915_180536_19dffeff.jpg differ diff --git a/uploads/event_20250915_184036_684c6c66.jpg b/uploads/event_20250915_184036_684c6c66.jpg new file mode 100644 index 0000000..9c3adbc Binary files /dev/null and b/uploads/event_20250915_184036_684c6c66.jpg differ diff --git a/uploads/event_20250915_184120_fdb0b6c5.jpg b/uploads/event_20250915_184120_fdb0b6c5.jpg new file mode 100644 index 0000000..ff5ed91 Binary files /dev/null and b/uploads/event_20250915_184120_fdb0b6c5.jpg differ diff --git a/uploads/event_20250916_065906_64e18fcb.jpg b/uploads/event_20250916_065906_64e18fcb.jpg new file mode 100644 index 0000000..07f25d3 Binary files /dev/null and b/uploads/event_20250916_065906_64e18fcb.jpg differ diff --git a/uploads/event_20250917_212102_3c046a84.jpg b/uploads/event_20250917_212102_3c046a84.jpg new file mode 100644 index 0000000..b241a79 Binary files /dev/null and b/uploads/event_20250917_212102_3c046a84.jpg differ diff --git a/vergangene-vortraege.php b/vergangene-vortraege.php new file mode 100644 index 0000000..44a1a0b --- /dev/null +++ b/vergangene-vortraege.php @@ -0,0 +1,173 @@ + !is_upcoming($e))); +usort($past, 'by_datetime_desc'); +$jsonld = render_event_jsonld_graph($past); +?> + + + + +++ +++ +++Unsere Idee
+Abende voller Geschichten
+Wir bringen besondere Vorträge nach Walschleben: Reise, Abenteuer, Kultur – live, nahbar und inspirierend. Unser Ziel: Menschen zusammenbringen, die Lust auf gute Geschichten haben.
++
+- +
Qualität
Ausgewählte Referentinnen und Referenten.- +
Atmosphäre
Gemütlich, freundlich, persönlich.- +
Vor Ort
Einlass & Bewirtung – ein runder Abend.++++Partner
+Gemeinsam stark
+Die KulTour wird durch lokale Vereine und Unterstützer getragen.
++
+- Gemeinde Walschleben
+- SV Empor Walschleben
+- WalschbergRunners
+- Blumenhof Kerst
++ +++++ Zum Programm +Lust auf einen Abend bei uns?
+Hier geht’s zum aktuellen Programm.
+Vergangene Vorträge | = h(SITE_NAME) ?> + + + + + + + + + + + + + + + + + + + ++ + +++Vergangene Vorträge
+Archiv der bisherigen Veranstaltungen.
++ + + + + + + +Noch keine vergangenen Einträge.+ +++ +Sortierung: neueste zuerst+ Zu den kommenden Terminen ++ ++ + + + + + + +++ ++ + + +++ + ++
+ Archiv +++ = date('d.m.Y', strtotime($e['date'])) ?> · = h($e['time'] ?: '19:30') ?> ++ += h($e['title']) ?>
+ +mit = h($e['speaker']) ?>+ + + += nl2br(h(mb_strimwidth($e['description'], 0, 240, '…'))) ?>
+ + + + + +