Neubau Fundament + Startseite: Designsystem, PHP-Komponenten, Brevo-Formular, Instagram-Sync
- Ordnerstruktur mit public/-Docroot, Deny-.htaccess für app/bin/config/data/storage
- CLAUDE.md mit Leitplanken (self-hosted only, Single Source of Truth, Component-first)
- Design-Tokens aus alter Seite extrahiert (Akzent #e20612, Coolvetica/Abel als woff2)
- Front Controller mit Routen-Register, Sitemap, Canonical, JSON-LD (SportsClub)
- Startseite: Hero, Instagram-Feed (lokaler Cache), Historie/Sportheim, Stats, Partner, Kontakt
- Kontaktformular via PHPMailer/Brevo mit Honeypot + HMAC-Time-Trap (kein reCAPTCHA)
- bin/instagram-sync.php: Scraper mit Strategie-Kette, flock, atomarem Cache, lokalen Bildern
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 21:16:25 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* EINZIGES Slug-Register der Seite (siehe CLAUDE.md).
|
|
|
|
|
* Slug => ['file' => Page-Datei in app/pages/, 'sitemap' => in sitemap.xml aufnehmen?]
|
|
|
|
|
*
|
|
|
|
|
* Neue Seite = Datei in app/pages/ + Eintrag hier (+ optional data/navigation.json).
|
|
|
|
|
* Canonical und Sitemap folgen automatisch.
|
|
|
|
|
*/
|
|
|
|
|
return [
|
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
|
|
|
'' => ['file' => 'home.php', 'sitemap' => true],
|
|
|
|
|
'fussball' => ['file' => 'fussball.php', 'sitemap' => true],
|
|
|
|
|
'fussball/erste-mannschaft' => ['file' => 'team-erste.php', 'sitemap' => true],
|
|
|
|
|
'fussball/zweite-mannschaft' => ['file' => 'team-zwei.php', 'sitemap' => true],
|
|
|
|
|
'fussball/damen' => ['file' => 'team-damen.php', 'sitemap' => true],
|
|
|
|
|
'jugendfussball' => ['file' => 'jugendfussball.php', 'sitemap' => true],
|
|
|
|
|
'verein' => ['file' => 'verein.php', 'sitemap' => true],
|
|
|
|
|
'historie' => ['file' => 'historie.php', 'sitemap' => true],
|
|
|
|
|
'impressum' => ['file' => 'impressum.php', 'sitemap' => true],
|
|
|
|
|
'datenschutz' => ['file' => 'datenschutz.php', 'sitemap' => true],
|
|
|
|
|
'404' => ['file' => '404.php', 'sitemap' => false],
|
Neubau Fundament + Startseite: Designsystem, PHP-Komponenten, Brevo-Formular, Instagram-Sync
- Ordnerstruktur mit public/-Docroot, Deny-.htaccess für app/bin/config/data/storage
- CLAUDE.md mit Leitplanken (self-hosted only, Single Source of Truth, Component-first)
- Design-Tokens aus alter Seite extrahiert (Akzent #e20612, Coolvetica/Abel als woff2)
- Front Controller mit Routen-Register, Sitemap, Canonical, JSON-LD (SportsClub)
- Startseite: Hero, Instagram-Feed (lokaler Cache), Historie/Sportheim, Stats, Partner, Kontakt
- Kontaktformular via PHPMailer/Brevo mit Honeypot + HMAC-Time-Trap (kein reCAPTCHA)
- bin/instagram-sync.php: Scraper mit Strategie-Kette, flock, atomarem Cache, lokalen Bildern
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 21:16:25 +02:00
|
|
|
];
|