Austritt Turnen: Kündigung darf formlos per Mail kommen

Rückmeldung der Turnabteilung. Der Austritt-Block auf /turnen nannte bisher nur
die Schriftform und die Frist zum 30. September, nicht aber, wohin die Kündigung
geht.

Die Adresse steht wie überall ausschließlich in club.json (email_turnen), der
Satz in turnen.json markiert ihre Stelle nur mit {mail} — dasselbe Muster wie
der Material-Aufruf auf /historie. Ersetzt wird nach inline_links_html(), damit
der Fließtext escaped bleibt und nur der Platzhalter zu einem mailto-Link wird.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RWoqDYuANFbJDGFQAgaRdT
This commit is contained in:
2026-07-31 22:26:37 +02:00
parent 06a18a2d19
commit 63a045835e
2 changed files with 13 additions and 2 deletions

View File

@@ -29,6 +29,17 @@ declare(strict_types=1);
*/ */
$page = json_load('turnen')['overview']; $page = json_load('turnen')['overview'];
// Die Kündigung darf formlos per Mail kommen (Turnabteilung, 31.07.2026). Die Adresse
// steht ausschließlich in club.json — der Austritt-Text in turnen.json markiert ihre
// Stelle mit {mail}, dasselbe Muster wie der Material-Aufruf auf /historie. Ersetzt
// wird NACH inline_links_html(): so bleibt der Fließtext escaped und nur der Platzhalter
// wird zu HTML. Umgekehrt käme der fertige Link escaped als Text auf die Seite.
$mailTurnen = json_load('club')['email_turnen'];
$austrittText = strtr(
inline_links_html($page['austritt']['text'] ?? ''),
['{mail}' => '<a href="mailto:' . e($mailTurnen) . '">' . e($mailTurnen) . '</a>']
);
// Heros aller Turn-Seiten zeigen VORÜBERGEHEND das Drohnen-Luftbild des // Heros aller Turn-Seiten zeigen VORÜBERGEHEND das Drohnen-Luftbild des
// Vereinsgeländes (img/pages/vereinsgelaende, Quelle: data/turnen.json) statt des // Vereinsgeländes (img/pages/vereinsgelaende, Quelle: data/turnen.json) statt des
// Fußballplatz-Bildes. Ehrlicher wäre ein Bild aus der Turnhalle — liegt eines // Fußballplatz-Bildes. Ehrlicher wäre ein Bild aus der Turnhalle — liegt eines
@@ -87,7 +98,7 @@ component('team-cards', [
<?php if (!empty($page['austritt']['title'])): ?> <?php if (!empty($page['austritt']['title'])): ?>
<div class="fees__note"> <div class="fees__note">
<h3 class="fees__note-title"><?= e($page['austritt']['title']) ?></h3> <h3 class="fees__note-title"><?= e($page['austritt']['title']) ?></h3>
<p><?= inline_links_html($page['austritt']['text']) ?></p> <p><?= $austrittText ?></p>
</div> </div>
<?php endif; ?> <?php endif; ?>
</div> </div>

View File

@@ -45,7 +45,7 @@
], ],
"austritt": { "austritt": {
"title": "Austritt", "title": "Austritt",
"text": "Der Austritt aus dem Verein ist nur zum Ende eines Kalenderjahres möglich und muss bis spätestens 30. September schriftlich erklärt werden. Der Beitrag ist in jedem Fall bis zum Jahresende zu entrichten." "text": "Der Austritt aus dem Verein ist nur zum Ende eines Kalenderjahres möglich und muss bis spätestens 30. September schriftlich erklärt werden. Die Kündigung kannst du formlos per E-Mail an {mail} schicken. Der Beitrag ist in jedem Fall bis zum Jahresende zu entrichten."
}, },
"faq": [ "faq": [
{ "q": "Welche Turngruppen gibt es beim TSV 08 Kulmbach?", "a": "Eltern-Kind- und Kinderturnen, Erwachsenenturnen, Fitness und Pilates, Trampolinturnen sowie Wettkampfturnen, von den Jüngsten ab 2 Jahren bis zu Erwachsenen." }, { "q": "Welche Turngruppen gibt es beim TSV 08 Kulmbach?", "a": "Eltern-Kind- und Kinderturnen, Erwachsenenturnen, Fitness und Pilates, Trampolinturnen sowie Wettkampfturnen, von den Jüngsten ab 2 Jahren bis zu Erwachsenen." },