97 lines
4.2 KiB
PHP
97 lines
4.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Logo zum Herunterladen. Inhalt: data/logo.json.
|
||
|
|
* Struktur: Hero → Varianten mit Downloads (samt ZIP-Knopf) → Farben → frühere Logos.
|
||
|
|
*
|
||
|
|
* Bewusst KARG (Entscheidung Felix, 17.09.2026): Einleitungstext, Nutzungshinweis,
|
||
|
|
* Abschnittsüberschrift und FAQ waren gebaut und sind wieder raus. Eine Downloadseite
|
||
|
|
* ist ein Regal, kein Text: Wappen, Knöpfe, Farben. Wer etwas fragen will, findet den
|
||
|
|
* Weg über die Fußzeile. Die Überschrift steht noch im DOM, aber visually-hidden,
|
||
|
|
* damit die Heading-Kette nicht von h1 auf h3 springt.
|
||
|
|
*
|
||
|
|
* Die DATEIEN erzeugt bin/logo-build.php nach public/assets/downloads/logo/; diese Seite
|
||
|
|
* kennt nur die Variantenschlüssel und liest Größen beim Rendern von der Platte.
|
||
|
|
*/
|
||
|
|
$page = json_load('logo');
|
||
|
|
|
||
|
|
$zip = 'downloads/logo/tsv08-kulmbach-logo-paket.zip';
|
||
|
|
$zipFile = PUBLIC_PATH . '/assets/' . $zip;
|
||
|
|
$zipSize = is_file($zipFile) ? number_format(filesize($zipFile) / 1024 / 1024, 1, ',', '.') . ' MB' : '';
|
||
|
|
|
||
|
|
// Farbfläche über eine Klasse, nie über ein style-Attribut: die CSP verwirft Inline-Styles
|
||
|
|
// in Produktion stillschweigend. Die Klasse holt sich den Wert aus dem Token in tokens.css,
|
||
|
|
// die JSON nennt nur den Namen. Unbekannte Namen fallen still weg.
|
||
|
|
$farbKlassen = ['accent' => 'accent', 'black' => 'black', 'bg' => 'bg', 'white' => 'white'];
|
||
|
|
|
||
|
|
$meta = [
|
||
|
|
'title' => 'Logo herunterladen',
|
||
|
|
'description' => 'Unser Vereinswappen zum Herunterladen: als Vektor für die Druckerei, als PNG und JPG für Dokumente und Aushänge, dazu unsere Vereinsfarben.',
|
||
|
|
'og_image' => 'downloads/logo/tsv08-kulmbach-logo-farbig-1000.jpg',
|
||
|
|
'schema' => page_schema([
|
||
|
|
['name' => 'Startseite', 'slug' => ''],
|
||
|
|
['name' => 'Der Verein', 'slug' => 'verein'],
|
||
|
|
['name' => 'Logo herunterladen', 'slug' => 'logo'],
|
||
|
|
]),
|
||
|
|
];
|
||
|
|
|
||
|
|
component('hero', ['hero' => $page['hero']]);
|
||
|
|
?>
|
||
|
|
<?php
|
||
|
|
component('logo-downloads', [
|
||
|
|
'varianten' => $page['varianten'] ?? [],
|
||
|
|
'title' => $page['varianten_title'] ?? 'Das aktuelle Wappen',
|
||
|
|
'title_hidden' => true,
|
||
|
|
'anchor' => 'varianten',
|
||
|
|
'paket' => $zipSize === '' ? [] : [
|
||
|
|
'label' => $page['paket']['label'] ?? 'Alle Dateien als ZIP',
|
||
|
|
'href' => asset($zip),
|
||
|
|
'meta' => 'ZIP, ' . $zipSize,
|
||
|
|
],
|
||
|
|
]);
|
||
|
|
?>
|
||
|
|
<?php if (!empty($page['farben']['items'])): ?>
|
||
|
|
<section class="section logo-farben" id="farben">
|
||
|
|
<div class="container">
|
||
|
|
<header class="logo-farben__head">
|
||
|
|
<h2><?= e($page['farben']['title']) ?></h2>
|
||
|
|
<?php if (!empty($page['farben']['text'])): ?>
|
||
|
|
<p class="logo-farben__intro"><?= e($page['farben']['text']) ?></p>
|
||
|
|
<?php endif; ?>
|
||
|
|
</header>
|
||
|
|
<ul class="logo-farben__grid" role="list">
|
||
|
|
<?php foreach ($page['farben']['items'] as $farbe): ?>
|
||
|
|
<?php $klasse = $farbKlassen[$farbe['token'] ?? ''] ?? null; ?>
|
||
|
|
<li class="logo-farbe">
|
||
|
|
<?php if ($klasse !== null): ?>
|
||
|
|
<span class="logo-farbe__swatch logo-farbe__swatch--<?= e($klasse) ?>"></span>
|
||
|
|
<?php endif; ?>
|
||
|
|
<div class="logo-farbe__body">
|
||
|
|
<h3 class="logo-farbe__name"><?= e($farbe['name']) ?></h3>
|
||
|
|
<dl class="logo-farbe__werte">
|
||
|
|
<div><dt>HEX</dt><dd><?= e($farbe['hex']) ?></dd></div>
|
||
|
|
<div><dt>RGB</dt><dd><?= e($farbe['rgb']) ?></dd></div>
|
||
|
|
<div><dt>CMYK</dt><dd><?= e($farbe['cmyk']) ?></dd></div>
|
||
|
|
</dl>
|
||
|
|
<?php if (!empty($farbe['hinweis'])): ?>
|
||
|
|
<p class="logo-farbe__hinweis"><?= e($farbe['hinweis']) ?></p>
|
||
|
|
<?php endif; ?>
|
||
|
|
</div>
|
||
|
|
</li>
|
||
|
|
<?php endforeach; ?>
|
||
|
|
</ul>
|
||
|
|
</div>
|
||
|
|
</section>
|
||
|
|
<?php endif; ?>
|
||
|
|
<?php
|
||
|
|
// Rendert nichts, solange retro[] leer ist: alte Vereinslogos liegen bisher nirgends vor.
|
||
|
|
component('logo-downloads', [
|
||
|
|
'varianten' => $page['retro'] ?? [],
|
||
|
|
'title' => $page['retro_title'] ?? 'Frühere Vereinslogos',
|
||
|
|
'text' => $page['retro_text'] ?? '',
|
||
|
|
'anchor' => 'frueher',
|
||
|
|
'tinted' => true,
|
||
|
|
]);
|