diff --git a/public/index.php b/public/index.php index ffd0ab6..d7a3fc1 100644 --- a/public/index.php +++ b/public/index.php @@ -3,6 +3,23 @@ // Strenge Typprüfung für Parameter- und Rückgabetypen aktivieren. declare(strict_types=1); +/** + * Front-Controller der Webanwendung. + * + * Aufgaben: + * - Startet die Session und initialisiert den Autoloader für den App-Namespace. + * - Lädt die zentrale Konfiguration aus config/config.php. + * - Instanziiert die Hauptcontroller (Auth, Dashboard, User-Management). + * - Steuert das Routing anhand des GET-Parameters "route". + * - Leitet View-Result-Arrays an das zentrale Layout (renderLayout) weiter + * oder führt Redirects aus. + * + * WICHTIG: + * - Diese Datei ist der einzige öffentliche Einstiegspunkt (Entry Point) der App. + * - Alle neuen Routen sollten über den Switch-Block am Ende ergänzt werden. + */ + + // Eine neue Session wird gestartet und die entsprechende Variable ($_SESSION) angelegt oder eine bestehende wird fortgesetzt. session_start(); @@ -33,7 +50,9 @@ spl_autoload_register( require __DIR__ . '/views/layout.php'; -// Pfad zur Konfigurationsdatei prüfen und Konfiguration laden +// Die Konfigurationsdatei liefert ein assoziatives Array mit den Teilbereichen +// "ldap", "snmp" und "security" (u. a. Session-Keys, Timeout-Einstellungen, OIDs). + $configPath = __DIR__ . '/../config/config.php'; if (file_exists($configPath) === false) { // Fail fast: ohne Konfiguration macht die App keinen Sinn @@ -105,14 +124,21 @@ function handleResult(?array $result): void renderLayout($contentView, $viewData, $pageTitle, is_string($activeMenu) ? $activeMenu : null); } -// Controller instanziieren +// Zentrale Controller der Anwendung initialisieren und ihnen die vollständige Konfiguration übergeben. +// Die Controller holen sich daraus bei Bedarf ihre spezifischen Teilkonfigurationen (z. B. "ldap" oder "snmp"). + $authController = new AuthController($config); $dashboardController = new DashboardController($config); $userManagementController = new UserManagementController($config); -// Route bestimmen +// Route aus dem Query-Parameter lesen. Standardroute ist "login", +// sodass nicht angemeldete Benutzer automatisch auf die Login-Seite geführt werden. + $route = $_GET['route'] ?? 'login'; +// Einfache Router-Logik: Jede Route ruft eine Controller-Methode auf und +// übergibt deren View-Result an handleResult(). Neue Seiten werden hier ergänzt. + switch ($route) { case 'login': // Login-Formular anzeigen (ggf. mit Fehlermeldung) diff --git a/public/views/dashboard.php b/public/views/dashboard.php index 1f8ab86..ea5180d 100644 --- a/public/views/dashboard.php +++ b/public/views/dashboard.php @@ -2,6 +2,18 @@ declare(strict_types=1); +/** + * View-Template für das Server-Dashboard. + * + * Aufgaben: + * - Visualisiert den vom SnmpServerStatusService gelieferten Serverstatus. + * - Zeigt Kennzahlen wie Hostname, Uptime, CPU-Auslastung, RAM-Auslastung + * und Belegung der Systempartition "C:" an. + * + * Erwartete View-Daten: + * - array $serverStatus Assoziatives Array mit Statuswerten (hostname, uptime, cpu_usage, memory_usage, disk_usage_c, last_update). + */ + /** @var array $serverStatus */ ?> diff --git a/public/views/layout.php b/public/views/layout.php index 0365213..d122a32 100644 --- a/public/views/layout.php +++ b/public/views/layout.php @@ -26,6 +26,8 @@ function renderLayout(string $contentView, array $viewData, string $pageTitle, ? } } + // Basispfad für alle Layout-Teilansichten (Head, Sidebar, Topbar, Footer, Scripts). + $partialsPath = __DIR__ . '/partials'; $isLoginPage = !empty($viewData['loginPage']); ?> diff --git a/public/views/login.php b/public/views/login.php index a3830d6..2eaa1a9 100644 --- a/public/views/login.php +++ b/public/views/login.php @@ -1,7 +1,20 @@ diff --git a/public/views/partials/footer.php b/public/views/partials/footer.php index 5de355c..f425be2 100644 --- a/public/views/partials/footer.php +++ b/public/views/partials/footer.php @@ -1,5 +1,16 @@ diff --git a/public/views/partials/head.php b/public/views/partials/head.php index 96e0060..74520a7 100644 --- a/public/views/partials/head.php +++ b/public/views/partials/head.php @@ -1,5 +1,16 @@ -Bereich und den Beginn des HTML-Body. + * + * Aufgaben: + * - Setzt Zeichensatz und Dokumenttitel (inkl. optionalem Seitentitel). + * - Bindet die CSS-Ressourcen des SB-Admin-2-Templates sowie DataTables ein. + * - Öffnet das -Element und den Wrapper für das Layout. + * + * WICHTIG: + * - Diese Datei wird ausschließlich über das zentrale Layout (layout.php) eingebunden. + */ + ?> diff --git a/public/views/partials/scripts.php b/public/views/partials/scripts.php index 6deaec0..b13f8c9 100644 --- a/public/views/partials/scripts.php +++ b/public/views/partials/scripts.php @@ -1,5 +1,19 @@ diff --git a/public/views/partials/sidebar.php b/public/views/partials/sidebar.php index dc23d9b..ea97dd7 100644 --- a/public/views/partials/sidebar.php +++ b/public/views/partials/sidebar.php @@ -1,5 +1,17 @@