Querschnitt-Verbesserungen ohne eigenes Feature: - Navigation: Untermenü-Trenner (separator) + Mitmachen-Link, rote Akzent-Leiste - Startseiten-Hero zentriert (align center, ohne Hero-CTAs); .hero--center-Styles - person-card/person-grid: Kontakt-Layout, 3-Spalten-Raster (Startseite) - jsonld: geo aus club.json; cta unterstützt #hash-Anker - verein: hartcodierten Maps-Link/Inline-CTA entfernt, .facility zentriert - tokens: Sepia-Farben für Timeline; base: globale p-max-width entfernt - historie: Timeline um 2024/2025 ergänzt - Icons link-45deg (Footer) und robot (meta) nachgereicht Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HGzc6GhWhmLJt1jC2q1SRZ
70 lines
2.5 KiB
PHP
70 lines
2.5 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
/**
|
||
* Vereins-Übersichtsseite (Hub). Inhalt: data/verein.json.
|
||
* Struktur: Hero → Abteilungs-Kacheln → Gelände → Leitbild → Historien-Teaser → FAQ.
|
||
*/
|
||
$page = json_load('verein');
|
||
|
||
// Zwei Abteilungs-Kacheln. Turnen verlinkt bereits auf /turnen (Seite folgt).
|
||
$cards = [
|
||
[
|
||
'name' => 'Fußball',
|
||
'slug' => 'fussball',
|
||
'category' => 'Herren · Damen · Jugend',
|
||
'image' => ['base' => 'img/pages/fussball-hero', 'widths' => [640, 1000, 1600], 'alt' => 'Fußball beim TSV 08 Kulmbach'],
|
||
],
|
||
[
|
||
'name' => 'Turnabteilung',
|
||
'slug' => 'turnen',
|
||
'category' => 'Turnen · Trampolin',
|
||
'image' => ['base' => 'img/pages/turnen', 'widths' => [640, 1000], 'alt' => 'Turnabteilung des TSV 08 Kulmbach'],
|
||
],
|
||
];
|
||
|
||
$meta = [
|
||
'title' => 'Der Verein',
|
||
'description' => 'Der TSV 1908 Kulmbach e. V. – seit 1908 dein Sportverein im Katzbachtal in Kulmbach. Über 650 Mitglieder, die Abteilungen Fußball und Turnen, zuhause auf der Hans-Rausch-Sportanlage.',
|
||
'og_image' => 'img/pages/vereinsgelaende-1600.jpg',
|
||
'schema' => page_schema(
|
||
[
|
||
['name' => 'Startseite', 'slug' => ''],
|
||
['name' => 'Der Verein', 'slug' => 'verein'],
|
||
],
|
||
$page['faq'] ?? []
|
||
),
|
||
];
|
||
|
||
component('hero', ['hero' => $page['hero']]);
|
||
|
||
component('team-cards', [
|
||
'teams' => $cards,
|
||
'title' => 'Unsere Abteilungen',
|
||
'title_hidden' => true,
|
||
'intro' => $page['abteilungen_intro'] ?? '',
|
||
'intro_below' => true,
|
||
'anchor' => 'abteilungen',
|
||
]);
|
||
?>
|
||
<section class="section section--tinted facility" id="gelaende">
|
||
<div class="container">
|
||
<h2><?= e($page['gelaende']['title']) ?></h2>
|
||
<p class="facility__lead"><?= e($page['gelaende']['text']) ?></p>
|
||
<figure class="facility__figure">
|
||
<?php component('img', ['image' => $page['gelaende']['image'], 'sizes' => '(max-width: 1200px) 100vw, 1200px', 'class' => 'facility__img']); ?>
|
||
<?php if (!empty($page['gelaende']['caption'])): ?>
|
||
<figcaption class="facility__caption"><?= e($page['gelaende']['caption']) ?></figcaption>
|
||
<?php endif; ?>
|
||
</figure>
|
||
|
||
</div>
|
||
</section>
|
||
<?php
|
||
component('section', ['section' => $page['about']]);
|
||
|
||
component('section', ['section' => $page['historie_teaser']]);
|
||
|
||
component('faq', ['faq' => $page['faq'] ?? []]);
|