$key], ['value' => trim($value)] ); return $setting->save(); } public function getAdminVars($adminSetting = false) { try { return Cache::remember('admin_settings', $this->cacheTTL, function () use ($adminSetting) { $settings = Setting::global() ->where('key', 'LIKE', 'admin_%') ->pluck('value', 'key') ->toArray(); $adminSettings = [ 'title' => $settings['admin_title'] ?? config('_var.appTitle'), 'author' => config('_var.author'), 'description' => config('_var.description'), 'favicon' => $this->getFaviconPaths($settings), 'app_name' => $settings['admin_app_name'] ?? config('_var.appName'), 'image_logo' => $this->getImageLogoPaths($settings), ]; return $adminSetting ? $adminSettings[$adminSetting] : $adminSettings; }); } catch (\Exception $e) { echo __METHOD__; echo "
" . $e->getMessage() . "

"; die('You must configure the database.'); } } public function getVuexyCustomizerVars() { // Obtener valores de la base de datos $settings = Setting::global() ->where('key', 'LIKE', 'vuexy_%') ->pluck('value', 'key') ->toArray(); // Obtener configuraciones predeterminadas $defaultConfig = Config::get('custom.custom', []); // Mezclar las configuraciones predeterminadas con las de la base de datos return collect($defaultConfig) ->mapWithKeys(function ($defaultValue, $key) use ($settings) { $vuexyKey = 'vuexy_' . $key; // Convertir clave al formato de la base de datos // Obtener valor desde la base de datos o usar el predeterminado $value = $settings[$vuexyKey] ?? $defaultValue; // Forzar booleanos para claves específicas if (in_array($key, ['displayCustomizer', 'footerFixed', 'menuFixed', 'menuCollapsed', 'showDropdownOnHover'])) { $value = filter_var($value, FILTER_VALIDATE_BOOLEAN); } return [$key => $value]; }) ->toArray(); } /** * Obtiene los paths de favicon en distintos tamaños. */ private function getFaviconPaths(array $settings): array { $defaultFavicon = config('_var.appFavicon'); $namespace = $settings['admin_favicon_ns'] ?? null; return [ 'namespace' => $namespace, '16x16' => $namespace ? "{$namespace}_16x16.png" : $defaultFavicon, '76x76' => $namespace ? "{$namespace}_76x76.png" : $defaultFavicon, '120x120' => $namespace ? "{$namespace}_120x120.png" : $defaultFavicon, '152x152' => $namespace ? "{$namespace}_152x152.png" : $defaultFavicon, '180x180' => $namespace ? "{$namespace}_180x180.png" : $defaultFavicon, '192x192' => $namespace ? "{$namespace}_192x192.png" : $defaultFavicon, ]; } /** * Obtiene los paths de los logos en distintos tamaños. */ private function getImageLogoPaths(array $settings): array { $defaultLogo = config('_var.appLogo'); return [ 'small' => $this->getImagePath($settings, 'admin_image_logo_small', $defaultLogo), 'medium' => $this->getImagePath($settings, 'admin_image_logo_medium', $defaultLogo), 'large' => $this->getImagePath($settings, 'admin_image_logo', $defaultLogo), 'small_dark' => $this->getImagePath($settings, 'admin_image_logo_small_dark', $defaultLogo), 'medium_dark' => $this->getImagePath($settings, 'admin_image_logo_medium_dark', $defaultLogo), 'large_dark' => $this->getImagePath($settings, 'admin_image_logo_dark', $defaultLogo), ]; } /** * Obtiene un path de imagen o retorna un valor predeterminado. */ private function getImagePath(array $settings, string $key, string $default): string { return $settings[$key] ?? $default; } public static function clearAdminVarsCache() { Cache::forget("admin_settings"); } }