CLAUDE.md: SSoT-Tabelle um neue Datenquellen + JSON-LD-Konvention
SSoT-Tabelle ergänzt um teams/fussball/jugend/verein/banners.json, damit Mannschafts- und Seiteninhalte aus der Quelle statt aus Templates kommen. Per-Page-Meta-Abschnitt dokumentiert das $meta['schema']-Muster und die *_schema()-Helper. 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:
10
CLAUDE.md
10
CLAUDE.md
@@ -36,12 +36,22 @@ selbst gehosteter Stack ohne Abhängigkeiten von Drittanbietern.
|
||||
| Navigation (Labels/Reihenfolge) | `data/navigation.json` | Menüpunkte in Templates |
|
||||
| Vereinsdaten (Name, Adresse, Kontakt, Social, Geo) | `data/club.json` | Adresse/E-Mail irgendwo als Text duplizieren |
|
||||
| Startseiten-Inhalte | `data/home.json` | Texte in `pages/home.php` |
|
||||
| Mannschaften (Kader, Trainer, Hero, FAQ) | `data/teams.json` | Spieler-/Trainernamen in Team-Templates |
|
||||
| Fußball-/Jugend-/Vereinsseite (Inhalte) | `data/fussball.json` · `data/jugend.json` · `data/verein.json` | Texte in den jeweiligen `pages/*.php` |
|
||||
| Banner-Slider (Startseite) | `data/banners.json` | Slides in `pages/home.php` oder der Komponente |
|
||||
| Partner/Sponsoren | `data/partners.json` | — |
|
||||
| Instagram-Cache | `data/instagram.json` + `public/assets/img/instagram/` | **maschinenverwaltet von `bin/instagram-sync.php` — nie von Hand editieren** |
|
||||
| Icons | `public/assets/icons/` (Bootstrap Icons, lokal) via `icon()`-Helper | Inline-SVG-Pfade von Hand ins Markup, Emoji/Unicode-Glyphen, gezeichnete CSS-Icons, Icon-Font/CDN |
|
||||
|
||||
Per-Page-Meta (Title/Description/OG) lebt in der jeweiligen Page-Datei (`app/pages/*.php`) im `$meta`-Array.
|
||||
|
||||
**Strukturierte Daten (JSON-LD):** Seiten setzen `$meta['schema']` = Array von schema.org-Knoten;
|
||||
`app/components/jsonld.php` hängt sie an den globalen `@graph` (Organization `#club`) an — nie ein
|
||||
`<script type="application/ld+json">` von Hand ins Markup. Knoten **nur** über die Helper in
|
||||
`helpers.php` bauen: `breadcrumb_schema()`, `faq_schema()`, `page_schema()` (Breadcrumb + optional FAQ),
|
||||
`team_schema()` (SportsTeam + Breadcrumb + FAQ, verweist via `#club` auf den Club). Sichtbare FAQ +
|
||||
FAQPage-Schema aus derselben `data/*.json`-Quelle, damit Inhalt und Markup nie auseinanderlaufen.
|
||||
|
||||
## Architektur-Muster
|
||||
|
||||
- **Front Controller:** `public/index.php` → Slug-Lookup in `app/routes.php` → Page-Datei setzt `$meta`
|
||||
|
||||
Reference in New Issue
Block a user