requireLogin(); $user = $auth->getUser(); $tenantId = $user['tenant_id'] ?? 0; // Stats laden $stats = [ 'viewers_current' => 0, 'viewers_today' => 0, 'viewers_peak' => 0, 'stream_status' => 'unknown', ]; // Versuche Stats aus DB zu laden try { $db = Database::getInstance(); if ($tenantId > 0) { // Aktuelle Zuschauer (vereinfacht) $viewerFile = dirname(__DIR__) . '/active_viewers.json'; if (file_exists($viewerFile)) { $viewers = json_decode(file_get_contents($viewerFile), true); $stats['viewers_current'] = count($viewers ?? []); } // Heute Stats $todayStats = $db->fetchOne( "SELECT SUM(viewer_count) as total, MAX(viewer_count) as peak FROM viewer_stats WHERE tenant_id = ? AND DATE(recorded_at) = CURDATE()", [$tenantId] ); if ($todayStats) { $stats['viewers_today'] = $todayStats['total'] ?? 0; $stats['viewers_peak'] = $todayStats['peak'] ?? 0; } // Stream Status $stream = $db->fetchOne( "SELECT last_status FROM tenant_streams WHERE tenant_id = ? AND is_primary = 1", [$tenantId] ); $stats['stream_status'] = $stream['last_status'] ?? 'unknown'; } } catch (\Exception $e) { // DB nicht verfügbar - Legacy-Modus $viewerFile = dirname(__DIR__) . '/active_viewers.json'; if (file_exists($viewerFile)) { $viewers = json_decode(file_get_contents($viewerFile), true); $stats['viewers_current'] = count($viewers ?? []); } } // Page Setup $pageTitle = 'Übersicht'; $currentPage = 'overview'; ob_start(); ?>
Aktivitäten werden hier angezeigt, sobald Analytics aktiviert ist.