requireLogin(); $user = $auth->getUser(); $tenantId = $user['tenant_id'] ?? 0; $flashMessage = null; $flashType = 'info'; // Tenant-Settings laden try { $tenantSettings = new TenantSettingsManager($tenantId); } catch (\Exception $e) { $tenantSettings = null; } // Einstellungen für das Template $settings = [ 'viewer_display_enabled' => $settingsManager->get('viewer_display.enabled') ?? true, 'viewer_min' => $settingsManager->get('viewer_display.min_viewers') ?? 1, 'weather_enabled' => $settingsManager->get('weather.enabled') ?? true, 'weather_location' => $settingsManager->get('weather.location') ?? 'Zürich,CH', 'weather_lat' => $settingsManager->get('weather.lat') ?? '47.3769', 'weather_lon' => $settingsManager->get('weather.lon') ?? '8.5417', 'guestbook_enabled' => $settingsManager->get('content.guestbook_enabled') ?? true, 'gallery_enabled' => $settingsManager->get('content.gallery_enabled') ?? true, 'ai_events_enabled' => $settingsManager->get('content.ai_events_enabled') ?? true, 'show_qr_code' => $settingsManager->get('ui_display.show_qr_code') ?? true, 'show_social_media' => $settingsManager->get('ui_display.show_social_media') ?? true, 'timelapse_reverse' => $settingsManager->get('zoom_timelapse.timelapse_reverse_enabled') ?? true, 'max_zoom' => $settingsManager->get('zoom_timelapse.max_zoom_level') ?? 4.0, ]; // Formular verarbeiten if ($_SERVER['REQUEST_METHOD'] === 'POST') { $updates = [ 'viewer_display.enabled' => isset($_POST['viewer_display_enabled']), 'viewer_display.min_viewers' => (int)($_POST['viewer_min'] ?? 1), 'weather.enabled' => isset($_POST['weather_enabled']), 'weather.location' => trim($_POST['weather_location'] ?? ''), 'weather.lat' => trim($_POST['weather_lat'] ?? ''), 'weather.lon' => trim($_POST['weather_lon'] ?? ''), 'content.guestbook_enabled' => isset($_POST['guestbook_enabled']), 'content.gallery_enabled' => isset($_POST['gallery_enabled']), 'content.ai_events_enabled' => isset($_POST['ai_events_enabled']), 'ui_display.show_qr_code' => isset($_POST['show_qr_code']), 'ui_display.show_social_media' => isset($_POST['show_social_media']), 'zoom_timelapse.timelapse_reverse_enabled' => isset($_POST['timelapse_reverse']), 'zoom_timelapse.max_zoom_level' => (float)($_POST['max_zoom'] ?? 4.0), ]; $success = true; foreach ($updates as $key => $value) { if (!$settingsManager->set($key, $value)) { $success = false; } } if ($success) { $flashMessage = 'Einstellungen gespeichert!'; $flashType = 'success'; // Reload settings $settings = [ 'viewer_display_enabled' => $updates['viewer_display.enabled'], 'viewer_min' => $updates['viewer_display.min_viewers'], 'weather_enabled' => $updates['weather.enabled'], 'weather_location' => $updates['weather.location'], 'weather_lat' => $updates['weather.lat'], 'weather_lon' => $updates['weather.lon'], 'guestbook_enabled' => $updates['content.guestbook_enabled'], 'gallery_enabled' => $updates['content.gallery_enabled'], 'ai_events_enabled' => $updates['content.ai_events_enabled'], 'show_qr_code' => $updates['ui_display.show_qr_code'], 'show_social_media' => $updates['ui_display.show_social_media'], 'timelapse_reverse' => $updates['zoom_timelapse.timelapse_reverse_enabled'], 'max_zoom' => $updates['zoom_timelapse.max_zoom_level'], ]; } else { $flashMessage = 'Fehler beim Speichern einiger Einstellungen.'; $flashType = 'error'; } } $pageTitle = 'Einstellungen'; $currentPage = 'settings'; ob_start(); ?>

Zuschauer-Anzeige

Zuschauer werden erst ab dieser Anzahl angezeigt

Wetter-Widget

Inhalte

Oberfläche