Turn-Anfrageformular: Feld „Geburtsdatum des Kindes" wieder da
Auf der alten Seite gab es das Feld, beim Neubau ist es untergegangen. Gegen 2024.tsv08kulmbach.de geprüft: dort hieß es input_alter_kind, war type="date", OPTIONAL und trug das Label „Geburtsdatum des Kindes" — genau so wieder eingebaut. Die Abteilung braucht es, weil die Gruppen nach Alter eingeteilt sind. Nur in der Turn-Variante. In der allgemeinen wäre es sinnlos und würde ohne Not personenbezogene Daten Minderjähriger erheben. Dafür drei Stellen: - contact_variant(): Schalter ask_birthdate (true nur für turnen) - contact-form.php: Feld definiert, bedingt gerendert, direkt nach der Gruppenauswahl wie auf der alten Seite - contact-submit.php: Validierung UND Rücksetzen auf leer, wenn die Variante das Feld nicht anbietet — sonst könnte ein manipulierter POST es an der allgemeinen Variante vorbei einschmuggeln Validierung serverseitig, nicht nur per type=date: echtes Datum, nicht in der Zukunft, nicht vor 1900. createFromFormat mit Rückvergleich, weil PHP sonst Scheindaten wie 2019-02-31 stillschweigend auf den 3. März verschiebt. Geprüft mit ausreichend altem Token (die Time-Trap verlangt 3 s, meine ersten Versuche liefen deshalb als Bot durch): 2019-02-31 abgewiesen, 2030-01-01 abgewiesen, gültiges Datum passiert. Ohne JS bleibt der Wert bei HTTP 422 erhalten (value="2019-03-12" im Re-Render nachgewiesen). Kein neues Markup: form-field kann type=date und min/max längst, die Prop für den Hilfetext heißt hint (nicht help, das war mein erster Fehlgriff). Docblock der Komponente um date und min/max ergänzt. Datenschutzerklärung mitgezogen, wie die Projektregel es für neue Formularfelder verlangt — mit Zweckbindung (Zuordnung zur Altersgruppe) und dem ausdrücklichen Hinweis, dass es keine Pflichtangabe ist. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NzeVVgMCrzCDJAKeLEdKr7
This commit is contained in:
@@ -1370,6 +1370,7 @@ function contact_variant(string $department): array
|
||||
'interests' => ['Herrenfußball', 'Frauenfußball', 'Jugendfußball', 'Turnen', 'Ehrenamtlich mithelfen', 'Sonstiges'],
|
||||
'interest_required' => false,
|
||||
'ask_subject' => true,
|
||||
'ask_birthdate' => false,
|
||||
'message_required' => true,
|
||||
'to' => '',
|
||||
'context' => 'Kontaktanfrage',
|
||||
@@ -1395,6 +1396,13 @@ function contact_variant(string $department): array
|
||||
// Kern der Anfrage, und sie ersetzt hier das Betreff-Feld.
|
||||
'interest_required' => true,
|
||||
'ask_subject' => false,
|
||||
// Geburtsdatum nur hier: die Turnabteilung braucht bei Anfragen für Kinder
|
||||
// die Altersgruppe, um die passende Gruppe zuzuordnen (Mäuse, Tiger,
|
||||
// Hühner …). Gab es auf der alten Seite als optionales Feld
|
||||
// „Geburtsdatum des Kindes" und ist beim Neubau untergegangen.
|
||||
// In der allgemeinen Variante wäre es sinnlos und würde unnötig
|
||||
// personenbezogene Daten von Minderjährigen erheben.
|
||||
'ask_birthdate' => true,
|
||||
// Bewusst optional (wie auf der alten Seite): „Interessiere mich für
|
||||
// Trampolin, ruft mich an" ist eine vollständige Anfrage. Name, Mail und
|
||||
// Disziplin stehen ja schon da.
|
||||
|
||||
Reference in New Issue
Block a user