Frauenmannschaft statt Damen + zweite Mannschaft vorerst aus dem Matchcenter

Umbenennung durchgängig: „Damenmannschaft" → „Frauenmannschaft" und
„Damenfußball" → „Frauenfußball". Der Abteilungsname ist ein Zuordnungs-
schlüssel und musste auf allen Seiten gleichzeitig wandern — teams.json
(department + contact_department), ansprechpartner.json, die Abteilungslisten
auf Start- und Fußballseite, die Auswahl im Kontaktformular UND die Whitelist
in contact-submit.php. Geprüft: Ansprechpartner erscheinen weiter auf allen
vier Seiten, Formular-Optionen und serverseitige Whitelist sind deckungsgleich.

URL /fussball/damen und der Datenschlüssel „damen" bleiben absichtlich — eine
Slug-Änderung würde bestehende Links und die Suchmaschinen-Historie brechen,
sichtbar ist der Slug nirgends.

Die zweite Mannschaft ist in matchcenter.teams auskommentiert (nicht gelöscht):
Die BFV-Mannschaft hinter der ID lief 25/26 als „(SG1) TSV Melkendorf I/
TSV 08 Kulmbach II" und liefert in 26/27 nur noch „TSV Melkendorf" — also
Spiele ohne den TSV 08, samt Tabelle, die Melkendorf als eigenen Verein
markiert. Begründung steht bei der Zeile; nach Klärung im Verein reicht ein
Entfernen des Kommentars, ggf. mit neuer team_id. Die Seite
/fussball/zweite-mannschaft und ihr Menüpunkt bleiben unberührt, sie hängen
nicht am Matchcenter. Die Matchcenter-Description nannte die Zweite noch und
ist entsprechend neu gefasst.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-27 00:41:02 +02:00
parent 68c3b51c41
commit 17acfe7081
19 changed files with 43 additions and 38 deletions

View File

@@ -58,7 +58,7 @@ $interest = $field('interest');
$subject = $field('subject');
$message = $field('message');
$interests = ['', 'Herrenfußball', 'Damenfußball', 'Jugendfußball', 'Turnen', 'Sonstiges'];
$interests = ['', 'Herrenfußball', 'Frauenfußball', 'Jugendfußball', 'Turnen', 'Sonstiges'];
$valid = $name !== '' && mb_strlen($name) <= 200
&& filter_var($email, FILTER_VALIDATE_EMAIL) !== false

View File

@@ -17,7 +17,7 @@ $club = json_load('club');
$return = $return ?? '';
$intro = $intro ?? null;
$interests = ['Herrenfußball', 'Damenfußball', 'Jugendfußball', 'Turnen', 'Sonstiges'];
$interests = ['Herrenfußball', 'Frauenfußball', 'Jugendfußball', 'Turnen', 'Sonstiges'];
$sent = isset($_GET['sent']);
$error = isset($_GET['error']) ? (string) $_GET['error'] : null;

View File

@@ -16,7 +16,7 @@ declare(strict_types=1);
<div class="matchcenter-empty__actions">
<a class="btn" href="<?= e(url('fussball/erste-mannschaft')) ?>">1. Mannschaft</a>
<a class="btn btn--outline" href="<?= e(url('fussball/zweite-mannschaft')) ?>">2. Mannschaft</a>
<a class="btn btn--outline" href="<?= e(url('fussball/damen')) ?>">Damen</a>
<a class="btn btn--outline" href="<?= e(url('fussball/damen')) ?>">Frauen</a>
</div>
</div>
</div>

View File

@@ -5,7 +5,7 @@ declare(strict_types=1);
/**
* Ansprechpartner-Grid aus data/ansprechpartner.json (Single Source of Truth).
* Alle Props optional:
* $departments array — nur diese Abteilungen zeigen (z. B. ['Herrenfußball','Damenfußball']).
* $departments array — nur diese Abteilungen zeigen (z. B. ['Herrenfußball','Frauenfußball']).
* $names array — zusätzlich auf diese Namen einschränken (z. B. ['Benedikt Höfner']).
* $title string — Überschrift überschreiben (Default aus JSON).
* $intro string — Intro-Text überschreiben (Default aus JSON; '' = ausblenden).

View File

@@ -3,7 +3,7 @@
declare(strict_types=1);
/**
* Mannschafts-Seite (DRY-Template für 1./2. Herren + Damen). Props:
* Mannschafts-Seite (DRY-Template für 1./2. Herren + Frauen). Props:
* $team array — Eintrag aus data/teams.json.
* $slug string — voller Seiten-Slug (für Anker-Links).
* Aufbau: Hero → Team-Bento (Bild, Einleitung, Training, Spielort) → FAQ + Ansprechpartner.

View File

@@ -4,7 +4,7 @@ declare(strict_types=1);
/**
* Ansprechpartner — Hero (Vereinsgelände) → zwei zusammengefasste person-grid-
* Sektionen: Fußball (Herren/Damen/Jugend) und Turnen, aus data/ansprechpartner.json.
* Sektionen: Fußball (Herren/Frauen/Jugend) und Turnen, aus data/ansprechpartner.json.
*/
$page = json_load('ansprechpartner');

View File

@@ -13,7 +13,7 @@ $teams = json_load('teams');
$cards = [
['name' => '1. Mannschaft', 'slug' => 'fussball/erste-mannschaft', 'category' => 'Herren', 'league' => 'Kreisklasse', 'image' => $teams['erste-mannschaft']['team_photo']['image'] ?? $teams['erste-mannschaft']['hero']['image']],
['name' => '2. Mannschaft', 'slug' => 'fussball/zweite-mannschaft', 'category' => 'Herren', 'image' => $teams['zweite-mannschaft']['hero']['image']],
['name' => 'Damenmannschaft', 'slug' => 'fussball/damen', 'category' => 'Damen', 'image' => $teams['damen']['hero']['image']],
['name' => 'Frauenmannschaft', 'slug' => 'fussball/damen', 'category' => 'Frauen', 'image' => $teams['damen']['hero']['image']],
['name' => 'Jugendfußball', 'slug' => 'jugendfussball', 'category' => 'G- bis C-Jugend', 'image' => [
'base' => 'img/pages/jugendfussball-hero', 'widths' => [640, 1000, 1440], 'alt' => 'Jugendfußball des TSV 08 Kulmbach',
]],
@@ -21,7 +21,7 @@ $cards = [
$meta = [
'title' => 'Fußball in Kulmbach',
'description' => 'Herren-, Damen- und Jugendfußball beim TSV 08 Kulmbach: zwei Herrenmannschaften, Damenmannschaft und Nachwuchs aktiv werden im Katzbachtal.',
'description' => 'Herren-, Frauen- und Jugendfußball beim TSV 08 Kulmbach: zwei Herrenmannschaften, Frauenmannschaft und Nachwuchs aktiv werden im Katzbachtal.',
'og_image' => 'img/pages/fussball-hero-1600.jpg',
'schema' => page_schema(
[
@@ -41,7 +41,7 @@ component('team-cards', [
]);
component('person-grid', [
'departments' => ['Herrenfußball', 'Damenfußball'],
'departments' => ['Herrenfußball', 'Frauenfußball'],
// Auf dem Hub bewusst nur die beiden Haupt-Ansprechpartner (mannschaftsspezifische
// Zusatzkontakte wie Rustem erscheinen auf der jeweiligen Team-Seite).
'names' => ['Benedikt Höfner', 'Sam Kern'],

View File

@@ -12,7 +12,7 @@ $home = json_load('home');
$meta = [
'title' => 'Fußball & Turnen in Kulmbach TSV 08 Kulmbach',
'title_absolute' => true,
'description' => 'Dein Sportverein für Fußball und Turnen in Kulmbach: Jugend-, Herren- und Damenfußball, Turnen und Trampolin seit 1908 im Katzbachtal. Jetzt Mitglied werden!',
'description' => 'Dein Sportverein für Fußball und Turnen in Kulmbach: Jugend-, Herren- und Frauenfußball, Turnen und Trampolin seit 1908 im Katzbachtal. Jetzt Mitglied werden!',
'scripts' => ['form.js', 'carousel.js'],
'schema' => [website_schema()],
];
@@ -30,7 +30,7 @@ component('partner-grid', ['intro' => $home['partners']]);
// Auf der Startseite bewusst nur die Haupt-Ansprechpartner je Bereich; die
// vollständige Turn-Disziplin-Liste lebt auf /ansprechpartner.
component('person-grid', [
'departments' => ['Herrenfußball', 'Damenfußball', 'Jugendfußball', 'Erwachsenenturnen'],
'departments' => ['Herrenfußball', 'Frauenfußball', 'Jugendfußball', 'Erwachsenenturnen'],
'columns' => 3,
]);
component('contact-form', ['intro' => $home['contact']]);

View File

@@ -15,7 +15,7 @@ $upcoming = $mc['upcoming'] ?? [];
$meta = [
'title' => 'Matchcenter Spiele, Ergebnisse & Tabellen',
'description' => 'Spielplan, Ergebnisse und Tabellen der Mannschaften des TSV 08 Kulmbach 1. und 2. Mannschaft sowie Damen, automatisch aktuell.',
'description' => 'Spielplan, Ergebnisse und Tabellen der Aktivenmannschaften des TSV 08 Kulmbach: 1. Mannschaft und Frauenmannschaft automatisch aktuell.',
'og_image' => 'img/pages/fussball-hero-1600.jpg',
'scripts' => ['crest.js', 'group-tabs.js'],
'schema' => array_merge(

View File

@@ -3,13 +3,14 @@
declare(strict_types=1);
/**
* Damenmannschaft (Damenfußball). Inhalt: data/teams.json → damen.
* Frauenmannschaft. Inhalt: data/teams.json → damen (Slug/Key bleiben „damen",
* damit die URL /fussball/damen und die Abteilungs-Zuordnung stabil bleiben).
*/
$slug = 'fussball/damen';
$team = json_load('teams')['damen'];
$meta = [
'title' => 'Damenmannschaft Damenfußball Kulmbach',
'title' => 'Frauenmannschaft Frauenfußball Kulmbach',
'description' => 'Frauen- und Mädchenfußball beim TSV 08 Kulmbach: Ob erfahren oder Wiedereinsteigerin im Katzbachtal findest du dein Team. Komm zum Probetraining.',
'og_image' => $team['hero']['image']['base'] . '-1600.jpg',
'schema' => team_schema($team, $slug),

View File

@@ -13,7 +13,7 @@ $cards = [
[
'name' => 'Fußball',
'slug' => 'fussball',
'category' => 'Herren · Damen · Jugend',
'category' => 'Herren · Frauen · Jugend',
'image' => ['base' => 'img/pages/fussball-hero', 'widths' => [640, 1000, 1600], 'alt' => 'Fußball beim TSV 08 Kulmbach'],
],
[