44 lines
2.2 KiB
PHP
44 lines
2.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Hervorgehobener Hinweis, den es in zwei Tonlagen gibt. Props:
|
||
|
|
* $text string — der Hinweis selbst (Pflicht, leer → nichts)
|
||
|
|
* $title string (optional) — Überschrift. Ohne sie liest sich besonders die rote
|
||
|
|
* Variante wie eine Fehlermeldung; mit ihr ist klar, dass es eine Information ist.
|
||
|
|
* $tone 'info' (Default) | 'stop' — 'info' ist die neutrale Glas-Fläche mit rotem Icon,
|
||
|
|
* 'stop' die gefüllte rote. Die Tonlage sagt, ob etwas GEHT oder NICHT geht:
|
||
|
|
* „neue Kinder können schnuppern" ist eine Einladung und darf nicht so aussehen
|
||
|
|
* wie „wir können niemanden aufnehmen". Rot ist die Ausnahme, nicht der Standard.
|
||
|
|
* $icon string (optional, Default 'info-circle') — Icon-Name aus public/assets/icons/
|
||
|
|
* $level 'h2' (Default) | 'h3' — Überschriftenebene, passend zur Umgebung, damit die
|
||
|
|
* Folge auf der Seite nicht springt
|
||
|
|
* $class string (optional) — Zusatzklassen für die Einbettung (Position/Breite im
|
||
|
|
* jeweiligen Layout). Farbe und Innenaufbau kommen ausschließlich von hier.
|
||
|
|
*
|
||
|
|
* Bewusst eine Komponente statt dreimal dasselbe Markup: der Hinweis steht auf
|
||
|
|
* /turnen über dem Anfrageformular, als Kachel auf /turnen/eltern-kind-turnen und
|
||
|
|
* auf /turnen/trampolin. Der TEXT gehört nie hierher, sondern in die data/*.json
|
||
|
|
* der Seite (dort steht auch, welche Tonlage gilt).
|
||
|
|
*/
|
||
|
|
$text = trim((string) ($text ?? ''));
|
||
|
|
if ($text === '') {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
$title = trim((string) ($title ?? ''));
|
||
|
|
$tone = ($tone ?? 'info') === 'stop' ? 'stop' : 'info';
|
||
|
|
$icon = (string) ($icon ?? 'info-circle');
|
||
|
|
$level = ($level ?? 'h2') === 'h3' ? 'h3' : 'h2';
|
||
|
|
$class = trim((string) ($class ?? ''));
|
||
|
|
?>
|
||
|
|
<div class="notice notice--<?= $tone ?><?= $class !== '' ? ' ' . e($class) : '' ?>">
|
||
|
|
<?= icon($icon, 'notice__icon') ?>
|
||
|
|
<div class="notice__body">
|
||
|
|
<?php if ($title !== ''): ?>
|
||
|
|
<<?= $level ?> class="notice__title"><?= e($title) ?></<?= $level ?>>
|
||
|
|
<?php endif; ?>
|
||
|
|
<p><?= e($text) ?></p>
|
||
|
|
</div>
|
||
|
|
</div>
|