diff --git a/Readme.md b/Readme.md index e558be6..e6f1973 100644 --- a/Readme.md +++ b/Readme.md @@ -4,6 +4,8 @@ **Webbasiertes WLAN-Voucher-Management für UniFi OS** – mit Multi-Site-Support, Benutzerverwaltung, Microsoft-365-Login und integriertem Auto-Updater. +Entwickelt von **[Loheide.eu](https://loheide.eu)** + ![PHP](https://img.shields.io/badge/PHP-7.4%2B-777BB4?logo=php&logoColor=white) ![MySQL](https://img.shields.io/badge/MySQL-5.7%2B%20%2F%20MariaDB-4479A1?logo=mysql&logoColor=white) ![UniFi OS](https://img.shields.io/badge/UniFi%20OS-7.0%2B-0559C9?logo=ubiquiti&logoColor=white) @@ -541,4 +543,6 @@ vendor/bin/phpstan analyse **Version 2.6.0** · Autor: **Friederich Loheide** · Lizenz: **MIT** +Entwickelt von **[Loheide.eu](https://loheide.eu)** + diff --git a/assets/global.css b/assets/global.css index 49fe976..ce41678 100644 --- a/assets/global.css +++ b/assets/global.css @@ -1535,6 +1535,20 @@ input.search-bar, .site-selector .search-bar { min-width: 240px; width: auto; fl .print-qr { display: flex; justify-content: center; line-height: 0; } .print-qr img, .print-qr canvas { display: block; } +/* Entwicklerhinweis im Seitenfuß */ +.app-credit { + margin: 0; + font-size: 11.5px; + color: var(--text-muted); +} +.app-credit a { color: var(--text-secondary); text-decoration: none; } +.app-credit a:hover { color: var(--accent); text-decoration: underline; } +.sidebar-foot .app-credit { margin-top: 10px; padding: 0 4px; text-align: center; } +.app-footer { max-width: 560px; margin: 20px auto 0; text-align: center; } +.login-container .app-credit { margin-top: 26px; text-align: center; } +.focus-card .app-credit { margin-top: 22px; text-align: center; } +.wrap .app-credit { margin-top: 18px; text-align: center; } + /* Sprungmarke zum Inhalt (nur bei Tastaturfokus sichtbar) */ .skip-link { position: absolute; diff --git a/docs/screenshots/admin-dashboard-dark.png b/docs/screenshots/admin-dashboard-dark.png index f41ea94..b615914 100644 Binary files a/docs/screenshots/admin-dashboard-dark.png and b/docs/screenshots/admin-dashboard-dark.png differ diff --git a/docs/screenshots/admin-dashboard.png b/docs/screenshots/admin-dashboard.png index 60d8402..bfb3012 100644 Binary files a/docs/screenshots/admin-dashboard.png and b/docs/screenshots/admin-dashboard.png differ diff --git a/docs/screenshots/api-keys.png b/docs/screenshots/api-keys.png index 73d2f00..98e3dd0 100644 Binary files a/docs/screenshots/api-keys.png and b/docs/screenshots/api-keys.png differ diff --git a/docs/screenshots/bulk-vouchers.png b/docs/screenshots/bulk-vouchers.png index e8252cd..4ceb658 100644 Binary files a/docs/screenshots/bulk-vouchers.png and b/docs/screenshots/bulk-vouchers.png differ diff --git a/docs/screenshots/integrations.png b/docs/screenshots/integrations.png index 7d68b10..41fb539 100644 Binary files a/docs/screenshots/integrations.png and b/docs/screenshots/integrations.png differ diff --git a/docs/screenshots/login-branding.png b/docs/screenshots/login-branding.png index 56eb3f0..799d8a9 100644 Binary files a/docs/screenshots/login-branding.png and b/docs/screenshots/login-branding.png differ diff --git a/docs/screenshots/login.png b/docs/screenshots/login.png index fcab8a3..133e8f0 100644 Binary files a/docs/screenshots/login.png and b/docs/screenshots/login.png differ diff --git a/docs/screenshots/maintenance.png b/docs/screenshots/maintenance.png index 52a70b7..55d6e4d 100644 Binary files a/docs/screenshots/maintenance.png and b/docs/screenshots/maintenance.png differ diff --git a/docs/screenshots/settings-branding.png b/docs/screenshots/settings-branding.png index 5e5d511..cec6e04 100644 Binary files a/docs/screenshots/settings-branding.png and b/docs/screenshots/settings-branding.png differ diff --git a/docs/screenshots/settings-login.png b/docs/screenshots/settings-login.png index 5a110cb..3c7d00f 100644 Binary files a/docs/screenshots/settings-login.png and b/docs/screenshots/settings-login.png differ diff --git a/docs/screenshots/settings.png b/docs/screenshots/settings.png index 688a9ee..cb6f489 100644 Binary files a/docs/screenshots/settings.png and b/docs/screenshots/settings.png differ diff --git a/docs/screenshots/two-factor.png b/docs/screenshots/two-factor.png index f85ddb6..7d9704b 100644 Binary files a/docs/screenshots/two-factor.png and b/docs/screenshots/two-factor.png differ diff --git a/docs/screenshots/updater-available.png b/docs/screenshots/updater-available.png index 0e3fec4..1ee6cd6 100644 Binary files a/docs/screenshots/updater-available.png and b/docs/screenshots/updater-available.png differ diff --git a/docs/screenshots/updater.png b/docs/screenshots/updater.png index 0e3fec4..1ee6cd6 100644 Binary files a/docs/screenshots/updater.png and b/docs/screenshots/updater.png differ diff --git a/docs/screenshots/vouchers.png b/docs/screenshots/vouchers.png index fb0e301..230dc97 100644 Binary files a/docs/screenshots/vouchers.png and b/docs/screenshots/vouchers.png differ diff --git a/includes/Ui.php b/includes/Ui.php index c2d3815..40bff32 100644 --- a/includes/Ui.php +++ b/includes/Ui.php @@ -116,6 +116,22 @@ class Ui . ''; } + /** Entwicklerhinweis – bewusst an einer Stelle gepflegt. */ + public const CREDIT_NAME = 'Loheide.eu'; + public const CREDIT_URL = 'https://loheide.eu'; + + /** + * Dezenter Hinweis auf den Entwickler, wie er im Seitenfuß erscheint. + */ + public static function credit(): string + { + $label = function_exists('__') ? __('credit_by') : 'Entwickelt von'; + + return '

' . htmlspecialchars($label) . ' ' + . '' + . self::CREDIT_NAME . '

'; + } + /** * Standard-Druckvorlage (wird nur verwendet, solange keine eigene * Vorlage gespeichert ist). {QR_CODE} fuellt der Browser. diff --git a/includes/admin_nav.php b/includes/admin_nav.php index 4b5b099..6d4b671 100644 --- a/includes/admin_nav.php +++ b/includes/admin_nav.php @@ -76,8 +76,8 @@ foreach ($navGroups as $items) { -