context(); $column = config('stylist.tenant_theme_column', 'theme_key'); $user = Auth::user(); $company = $user?->company ?? null; if ($company && filled($company->{$column} ?? null)) { return (string) $company->{$column}; } if (function_exists('tenant')) { $tenant = tenant(); if ($tenant && filled($tenant->{$column} ?? null)) { return (string) $tenant->{$column}; } } $settingKey = $context === 'frontend' ? 'frontend_theme' : 'backend_theme'; $default = $context === 'frontend' ? config('stylist.default_frontend_theme', 'saasland') : config('stylist.default_backend_theme', config('stylist.default_theme', 'admin')); return (string) $this->settings->get($settingKey, $default, 'site'); } public function context(): string { if (app()->runningInConsole()) { return 'backend'; } $request = request(); return $request->routeIs('home', 'blog.public.*', 'news.public.*', 'pages.public.*') || ! $request->user() ? 'frontend' : 'backend'; } public function variables(): array { $variables = config('stylist.fallback_variables', []); $company = Auth::user()?->company ?? null; foreach (config('stylist.tenant_brand_columns', []) as $column => $variable) { if ($company && filled($company->{$column} ?? null)) { $variables[$variable] = (string) $company->{$column}; } } return $variables; } }