From 54944317b38624b1a6c3ea5f5b8f3523eda1bfa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Tue, 30 Dec 2025 22:28:20 +0300 Subject: [PATCH] Add Language Support to Admin Panel: Implemented dynamic language menu items in the admin panel by retrieving active languages from the database. Enhanced user experience by allowing language selection directly from the user menu, improving localization capabilities. --- app/Providers/Filament/AdminPanelProvider.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 263a65d..aa42f61 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -19,11 +19,23 @@ use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Session\Middleware\StartSession; use Illuminate\View\Middleware\ShareErrorsFromSession; +use Filament\Navigation\MenuItem; +use App\Models\Language; +use Illuminate\Support\Facades\Schema; class AdminPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { + $languages = []; + try { + if (Schema::hasTable('languages')) { + $languages = Language::where('is_active', true)->get(); + } + } catch (\Exception $e) { + // Migration çalışmamış olabilir + } + return $panel ->id('admin') ->path('admin') @@ -60,6 +72,17 @@ class AdminPanelProvider extends PanelProvider Authenticate::class, ]) ->login() + ->profile() // Profil sayfası ve şifre değiştirme aktif + ->userMenuItems([ + // Dilleri menüye ekle + ...collect($languages)->map(function ($language) { + return MenuItem::make() + ->label($language->native_name) + ->url(url('/lang/' . $language->code)) + ->icon('heroicon-m-language') + ->sort(100); // En sonda görünsün + })->toArray() + ]) ->assets([ \Filament\Support\Assets\Css::make('citrus', resource_path('css/citrus.css')), ]);