Unterseiten: Fußball-Übersicht, Mannschaften, Jugend, Verein, Rechtliches
Neue Seiten + Routen: fussball, fussball/{erste-mannschaft,zweite-mannschaft,
damen}, jugendfussball, verein, impressum, datenschutz. Dazu die Komponenten
team, team-cards/-roster/-photo/-bento, faq/faq-contact, key-facts, age-groups,
cta-band, training-location und der contact-slider.
Daten in teams/fussball/jugend/verein.json; club.json um Vorstand, Bankdaten,
Datenschutz-Kontakt erweitert. person-grid bekommt $names-Filter, partner-grid
einen Intro-Stil. Seiten setzen $meta['schema'] via team_/page_schema.
Styles für alle neuen Komponenten in components.css.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KDQZ6FuchNUh2bxSW9PeNv
2026-06-19 08:13:04 +02:00
< ? php
declare ( strict_types = 1 );
/**
* Fußball - Übersichtsseite ( Hub ) . Inhalt : data / fussball . json + data / teams . json .
* Struktur : Hero → Mannschafts - Karten → Ansprechpartner → CTA → FAQ .
*/
$page = json_load ( 'fussball' );
$teams = json_load ( 'teams' );
// Karten verlinken auf die vier Unterseiten (3 Senior + Jugend).
$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' => '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' ,
]],
];
$meta = [
'title' => 'Fußball in Kulmbach' ,
2026-07-05 00:27:19 +02:00
'description' => 'Herren-, Damen- und Jugendfußball beim TSV 08 Kulmbach: zwei Herrenmannschaften, Damenmannschaft und Nachwuchs – aktiv werden im Katzbachtal.' ,
Unterseiten: Fußball-Übersicht, Mannschaften, Jugend, Verein, Rechtliches
Neue Seiten + Routen: fussball, fussball/{erste-mannschaft,zweite-mannschaft,
damen}, jugendfussball, verein, impressum, datenschutz. Dazu die Komponenten
team, team-cards/-roster/-photo/-bento, faq/faq-contact, key-facts, age-groups,
cta-band, training-location und der contact-slider.
Daten in teams/fussball/jugend/verein.json; club.json um Vorstand, Bankdaten,
Datenschutz-Kontakt erweitert. person-grid bekommt $names-Filter, partner-grid
einen Intro-Stil. Seiten setzen $meta['schema'] via team_/page_schema.
Styles für alle neuen Komponenten in components.css.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KDQZ6FuchNUh2bxSW9PeNv
2026-06-19 08:13:04 +02:00
'og_image' => 'img/pages/fussball-hero-1600.jpg' ,
'schema' => page_schema (
[
[ 'name' => 'Startseite' , 'slug' => '' ],
[ 'name' => 'Fußball' , 'slug' => 'fussball' ],
],
$page [ 'faq' ] ? ? []
),
];
component ( 'hero' , [ 'hero' => $page [ 'hero' ]]);
component ( 'team-cards' , [
'teams' => $cards ,
'intro' => $page [ 'mannschaften_intro' ] ? ? '' ,
'title_hidden' => true ,
'intro_below' => true ,
]);
component ( 'person-grid' , [
'departments' => [ 'Herrenfußball' , 'Damenfuß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' ],
'title' => 'Ansprechpartner Fußball' ,
'intro' => 'Fragen zu Training, Probetraining oder einem Wechsel? Sprich direkt unsere Verantwortlichen an.' ,
'anchor' => 'kontakt' ,
]);
component ( 'faq' , [ 'faq' => $page [ 'faq' ] ? ? []]);