Display-Seiten individuell gestalten
Some checks are pending
CI / PHP Lint (push) Waiting to run
CI / PHP Lint (pull_request) Waiting to run
CI / PHP Lint-1 (pull_request) Waiting to run
CI / PHP Lint-1 (push) Waiting to run
CI / Unit Tests & Static Analysis (pull_request) Waiting to run
CI / Unit Tests & Static Analysis (push) Waiting to run

Jede Display-Seite bringt jetzt ihr eigenes Erscheinungsbild mit – der
Empfang sieht anders aus als der Tagungsraum nebenan:

- eigenes Logo (leer = Logo aus den Einstellungen)
- formatfüllendes Hintergrundbild mit einstellbarer Abdunklung (0–90 %),
  damit die Karte auf hellen Fotos lesbar bleibt
- eigene Akzentfarbe für den Knopf (leer = Farbe aus dem Design-Tab)
- Karte wahlweise hell oder dunkel; auf Fotos wirkt dunkel meist ruhiger

Logo und Hintergrund lassen sich hochladen oder als URL hinterlegen; beim
Löschen einer Display-Seite verschwinden die hochgeladenen Dateien mit.

Nebenbei aufgeräumt: das Bildfeld (Vorschau + Upload + URL + Entfernen)
lag als Funktion in admin/settings.php und wird jetzt von beiden Seiten
genutzt – Ui::imageField() für die Darstellung, Upload::resolveField()
für die Auswertung.

Sicherheit: die Akzentfarbe landet in einem style-Attribut, deshalb wird
sie sowohl beim Speichern als auch beim Ausgeben auf eine echte Hex-Farbe
geprüft; ein Test hält das fest.

Migration 0006, database.sql nachgezogen, 4 neue Tests (42 gesamt),
Screenshots ergänzt, Version 2.8.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Friederich Loheide 2026-09-23 16:58:54 +00:00
parent 943e427150
commit 4159b92268
31 changed files with 405 additions and 82 deletions

View file

@ -0,0 +1,8 @@
-- Display-Seiten individuell gestalten: eigenes Logo, Hintergrundbild,
-- Akzentfarbe und helle oder dunkle Karte je Kiosk.
ALTER TABLE `kiosks` ADD COLUMN `logo_url` VARCHAR(500) NULL AFTER `subline`;
ALTER TABLE `kiosks` ADD COLUMN `background_url` VARCHAR(500) NULL AFTER `logo_url`;
ALTER TABLE `kiosks` ADD COLUMN `bg_overlay` TINYINT NOT NULL DEFAULT 45 AFTER `background_url`;
ALTER TABLE `kiosks` ADD COLUMN `accent_color` VARCHAR(7) NULL AFTER `bg_overlay`;
ALTER TABLE `kiosks` ADD COLUMN `card_style` ENUM('light','dark') NOT NULL DEFAULT 'light' AFTER `accent_color`;