Betreiber-Zentralstelle, Mandanten-Design und schlankerer Einstieg

Funktions-Schalter je Mandant (app/features.php, tenant_features): der
Betreiber schaltet FAQ, Selbsteintrag, PDF, PayPal-Eingang, CSV-Import,
Mailversand, Jahresabschluss, Datenexport und eigenes Design pro Mandant
frei. Gesperrte Funktionen verschwinden aus Menue und Schaltflaechen, ihre
Seiten weisen Aufrufe und POSTs ab. Das Back-Office ist jetzt fuer
Platform-Admins im Menue verlinkt statt nur per URL erreichbar.

Eigenes Design je Mandant: Akzentfarbe und Logo in den Mandant-
Einstellungen, eingebettet ueber app/branding.php; das Logo liegt
geschuetzt in var/tenant_logos und wird nur ueber
tenant-logo-anzeigen.php an den eigenen Mandanten ausgeliefert.

Weniger Startinformationen: Startpaket neuer Mandanten auf zwei
Beispielfragen gekuerzt, Anleitung von ~1400 auf ~750 Woerter gestrafft
und um Abschnitte zu gesperrten Funktionen bereinigt.

Vorder-/Rueckseite erst bei mehr als 50 Personen (vorher schon ab 50).
Die Schwelle liegt jetzt gemeinsam in app/ledger.php und gilt auch fuer
die Vorder-/Rueckseiten-Auswahl beim Erfassen, wo sie bisher unabhaengig
von der Teamgroesse angeboten wurde.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 22:52:55 +02:00
co-authored by Claude Opus 5
parent a93e067e04
commit d24ee9bf91
30 changed files with 881 additions and 172 deletions
+17 -2
View File
@@ -11,12 +11,27 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="assets/css/main.css" />
<link rel="stylesheet" href="assets/css/app.css" />
</head>
<body class="is-preload">
<?php
require_once __DIR__ . '/app/ledger.php';
require_once __DIR__ . '/app/notices.php';
require_once __DIR__ . '/app/features.php';
require_once __DIR__ . '/app/branding.php';
// Eigenes Design des Mandanten: die Akzentfarbe wird als kleines Stylesheet
// direkt hier eingebettet - eine eigene CSS-Datei je Mandant waere ein
// zusaetzlicher Request fuer wenige Zeilen. Die Farbe ist als Hex-Wert
// validiert (saas_update_tenant_settings), kann also nicht aus der
// Style-Deklaration ausbrechen.
$headerBranding = app_branding_for_current_user(app_db_pdo());
if ($headerBranding['color'] !== '') {
echo "\t\t<style>\n" . app_branding_css($headerBranding['color']) . "\t\t</style>\n";
}
?>
</head>
<body class="is-preload">
<?php
// Aktuellen Hinweis fuer den passenden Mandanten abrufen: eingeloggte
// SaaS-Nutzer sehen den Hinweis ihres Mandanten, der Legacy-/Dev-Fallback