Files
tsv08kulmbach-website/app/pages/matchcenter.php
fs 169878a4f7 Heros vereinheitlicht: Unterseiten nur Überschrift + Teaser
Alle Unterseiten-Heros auf ein einheitliches Muster gebracht — nur title +
text, dazu compact und align bottom-left. kicker und tagline entfernt
(team-erste/zwei/damen, jugendfussball, matchcenter, ansprechpartner,
mitglied-werden), historie von zentriert auf bottom-left. Der große
Startseiten-Hero (display) bleibt unverändert.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HGzc6GhWhmLJt1jC2q1SRZ
2026-06-20 20:29:57 +02:00

53 lines
1.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
declare(strict_types=1);
/**
* Matchcenter: Spielplan, Ergebnisse und Tabellen der Aktivenmannschaften.
* Daten: data/matchcenter.json (maschinenverwaltet von bin/matchcenter-sync.php).
* Struktur: Hero → „Nächste Spiele"-Slider → pro Mannschaft eine Sektion
* (Nächste Spiele · Letzte Ergebnisse · Tabelle). Ohne Cache rendert die Seite
* einen freundlichen Hinweis statt eines Fehlers (Graceful Degradation).
*/
$mc = json_load('matchcenter');
$teams = $mc['teams'] ?? [];
$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.',
'og_image' => 'img/pages/fussball-hero-1600.jpg',
'scripts' => ['carousel.js', 'crest.js'],
'schema' => array_merge(
page_schema([
['name' => 'Startseite', 'slug' => ''],
['name' => 'Fußball', 'slug' => 'fussball'],
['name' => 'Matchcenter', 'slug' => 'matchcenter'],
]),
sportsevent_nodes($upcoming)
),
];
component('hero', ['hero' => [
'compact' => true,
'align' => 'bottom-left',
'title' => 'Matchcenter',
'text' => 'Alle Spiele, Ergebnisse und Tabellen unserer Aktivenmannschaften immer aktuell.',
'image' => [
'base' => 'img/pages/fussball-hero',
'widths' => [640, 1000, 1600],
'alt' => '',
],
]]);
if ($teams === []) {
component('matchcenter-empty');
return;
}
component('match-slider', ['matches' => $upcoming]);
foreach ($teams as $team) {
component('matchcenter-section', ['team' => $team]);
}