Unifi-Voucher-Tool/tools
Friederich Loheide 4159b92268
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
Display-Seiten individuell gestalten
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>
2026-09-23 16:58:54 +00:00
..
demo Display-Seiten individuell gestalten 2026-09-23 16:58:54 +00:00
runner Einrichtung für einen Forgejo-Actions-Runner beilegen 2026-09-23 15:06:19 +00:00
.htaccess Sicherheits-Header, Werkzeuge und Dokumentation 2026-09-23 06:49:14 +00:00
README.md Einrichtung für einen Forgejo-Actions-Runner beilegen 2026-09-23 15:06:19 +00:00
screenshots.py Display-Seiten individuell gestalten 2026-09-23 16:58:54 +00:00

Werkzeuge

Demo-Instanz (tools/demo/build.py)

Baut aus dem Projekt eine lauffähige Kopie ohne Datenbank: Database und Auth werden durch Stubs mit festen Beispieldaten ersetzt (tools/demo/overlay/). Das Original bleibt unverändert.

python3 tools/demo/build.py /tmp/uvt-demo
php -S 127.0.0.1:8123 -t /tmp/uvt-demo

Nützlich für:

  • Screenshots für die Dokumentation immer mit denselben Daten
  • Smoke-Test jede Seite einmal rendern, ohne MySQL aufzusetzen

Demo-spezifische Zustände werden über Query-Parameter erreicht:

Parameter Wirkung
?demo=result / ?demo=bulk Voucher-Ergebnis bzw. Bulk-Liste auf index.php
?demo=new frisch erzeugter Schlüssel auf admin/api_keys.php
?anon=1 nicht angemeldet (für die Login-Seite)
?theme=dark erzwingt den Dark Mode
?brand=custom / ?brand=nopanel Beispiel-Branding der Login-Seite

Screenshots (tools/screenshots.py)

Rendert die Bilder aus docs/screenshots/ neu. Voraussetzung ist ein headless Chromium; der Pfad kommt aus $CHROME_BIN oder wird in den üblichen Verzeichnissen gesucht.

python3 tools/demo/build.py /tmp/uvt-demo
php -S 127.0.0.1:8123 -t /tmp/uvt-demo &
CHROME_BIN=/usr/bin/chromium python3 tools/screenshots.py

Actions-Runner (tools/runner/)

Compose-Datei und Anleitung, um einen Forgejo-Actions-Runner einzurichten. Ohne Runner bleiben ci.yml und release.yml in der Warteschlange stehen. Details: tools/runner/README.md.

Die Skripte sind Hilfsmittel für die Entwicklung im Betrieb werden sie nicht benötigt und sind per .htaccess nicht über HTTP erreichbar.