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:
@@ -6,6 +6,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']).
|
||||
* $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).
|
||||
* $anchor string — Sektions-ID (Default 'ansprechpartner').
|
||||
@@ -24,6 +25,12 @@ if (!empty($departments)) {
|
||||
static fn (array $p): bool => in_array($p['department'] ?? '', $departments, true)
|
||||
));
|
||||
}
|
||||
if (!empty($names)) {
|
||||
$persons = array_values(array_filter(
|
||||
$persons,
|
||||
static fn (array $p): bool => in_array($p['name'] ?? '', $names, true)
|
||||
));
|
||||
}
|
||||
|
||||
if ($persons === []) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user