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
This commit is contained in:
53
app/pages/fussball.php
Normal file
53
app/pages/fussball.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?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',
|
||||
'description' => 'Herren-, Damen- und Jugendfußball beim TSV 08 Kulmbach: erste und zweite Mannschaft auf Kreisklasse-Niveau, Damenmannschaft und Nachwuchs – aktiv werden im Katzbachtal.',
|
||||
'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'] ?? []]);
|
||||
Reference in New Issue
Block a user