$_defaultFavicon, 'favicon_png' => '', 'branding' => ['logo' => '', 'logoDark' => '', 'adminLogo' => '', 'name' => '', 'showBranding' => true, 'logoDisplay' => 'both', 'logoSize' => 'medium'], 'theme' => ['adminTheme' => 'light', 'preset' => 'soft', 'density' => 'auto', 'font' => 'system', 'fontSize' => 'default', 'primaryColor' => '#3858e9', 'accentColor' => '', 'sidebarBg' => '', 'darkPrimaryColor' => '', 'darkAccentColor' => '', 'darkSidebarBg' => '', 'dangerColor' => '', 'warningColor' => '', 'successColor' => '', 'buttonGlow' => true, 'buttonRadius' => 6], 'modules' => ['ai' => true, 'news' => true, 'events' => true, 'messages' => true, 'iconManager' => true], 'dashboard' => ['itemsPerPage' => 50, 'iconManagerItemsPerPage' => 50, 'mediaItemsPerPage' => 25]]; if (defined('SETTINGS_PATH') && file_exists(SETTINGS_PATH)) { $loadedSettings = json_decode(file_get_contents(SETTINGS_PATH), true); if (is_array($loadedSettings)) { foreach ($siteSettings as $key => $defaults) { if (isset($loadedSettings[$key]) && is_array($loadedSettings[$key])) { $siteSettings[$key] = array_replace($defaults, $loadedSettings[$key]); } } // Preserve top-level keys (favicon, favicon_png) if (!empty($loadedSettings['favicon'])) $siteSettings['favicon'] = $loadedSettings['favicon']; if (!empty($loadedSettings['favicon_png'])) $siteSettings['favicon_png'] = $loadedSettings['favicon_png']; } } $adminTheme = $siteSettings['theme']['adminTheme'] ?? 'light'; $dashboardModules = array_replace(['news' => true, 'events' => true, 'messages' => true, 'iconManager' => true, 'ai' => true], is_array($siteSettings['modules'] ?? null) ? $siteSettings['modules'] : []); $aiFeaturesEnabled = !empty($dashboardModules['ai']); $aiDashboardVisible = $aiFeaturesEnabled; $_aiDashboardPublicSettings = $aiFeaturesEnabled && function_exists('raijuAiLoadSettings') ? raijuAiLoadSettings(true) : []; $_aiDashboardCopilotAvailable = $aiFeaturesEnabled && !empty($_aiDashboardPublicSettings['enabled']) && !empty($_aiDashboardPublicSettings['hasApiKey']) && !empty($_aiDashboardPublicSettings['features']['backendAssistant']) && (!isset($_aiDashboardPublicSettings['assistantSurfaces']['dashboard']) || !empty($_aiDashboardPublicSettings['assistantSurfaces']['dashboard'])); $validDashboardTabs = ['home', 'content', 'settings']; if (!empty($dashboardModules['news'])) $validDashboardTabs[] = 'news'; if (!empty($dashboardModules['events'])) $validDashboardTabs[] = 'events'; if (!empty($dashboardModules['messages'])) $validDashboardTabs[] = 'mails'; if ($isAdminUser) $validDashboardTabs[] = 'media'; if ($isAdminUser && !empty($dashboardModules['iconManager'])) $validDashboardTabs[] = 'icons'; if ($isAdminUser) $validDashboardTabs[] = 'backup'; if ($isAdminUser) $validDashboardTabs[] = 'system'; // SVG icon helper — keeps inline SVG paths in one place function rjIcon(string $name, int $size = 16, string $strokeWidth = '1.5'): string { static $paths = [ 'hamburger' => '', 'collapse' => '', 'home' => '', 'edit' => '', 'eye' => '', 'mail' => '', 'calendar' => '', 'image' => '', 'icons' => '', 'settings' => '', 'logout' => '', 'trash' => '', 'back' => '', 'undo' => '', 'redo' => '', 'news' => '', 'download' => '', 'upload' => '', 'alert' => '', 'refresh' => '', 'ai' => '', ]; $p = $paths[$name] ?? ''; return "{$p}"; } ?> Dashboard - <?php echo defined('SITE_NAME') ? SITE_NAME : 'Admin'; ?> '--rj-danger-base', 'warningColor' => '--rj-warning-base', 'successColor' => '--rj-success-base'] as $_semKey => $_semVar) { $_semRaw = strtolower((string)($_t[$_semKey] ?? '')); if (preg_match('/^#[0-9a-f]{6}$/', $_semRaw)) $_semantic[$_semVar] = $_semRaw; } $_sbLight = $_sbLightOverride !== '' ? $_sbLightOverride : "color-mix(in srgb, {$_pcLight} 12%, white)"; $_sbDark = $_sbDarkOverride !== '' ? $_sbDarkOverride : "color-mix(in srgb, {$_pcDark} 10%, #0b0d12)"; ?>
24, 'height' => 24, 'class' => 'topbar-logo']); endif; ?>

— this is a significant security risk.
→

0 0
0
0
0
0
0

true, 'rights' => array_combine(RAIJU_AGENT_RIGHTS, array_map('raijuAgentCan', RAIJU_AGENT_RIGHTS)), 'classic' => raijuAgentSettings()['classicMode'] !== false, 'maxUploadFiles' => 6, 'maxUploadBytes' => function_exists('getMediaConfig') ? (int)(getMediaConfig('image')['maxSize'] ?? 10485760) : 10485760, ]; } } ?>