Вход Регистрация
Файл: app/Http/Middleware/ApplySettings.php
Строк: 50
<?php

namespace AppHttpMiddleware;

use 
Closure;
use 
IlluminateHttpRequest;
use 
IlluminateSupportFacadesApp;
use 
IlluminateSupportFacadesView;
use 
IlluminateViewFileViewFinder;
use 
Throwable;

class 
ApplySettings
{
    
/**
     * Handle an incoming request.
     */
    
public function handle(Request $requestClosure $next)
    {
        try {
            
$user auth()->user();
        } catch (
Throwable) {
            
$user null;
        }

        
$language $user->language ?? setting('language'config('app.locale'));
        
$theme $user->themes ?? setting('themes''default');

        if (
$request->session()->has('language')) {
            
$language $request->session()->get('language');
        }

        if (! 
file_exists(resource_path('lang/' $language))) {
            
$language setting('language'config('app.locale'));
        }

        if (! 
file_exists(resource_path('views/themes/' $theme))) {
            
$theme setting('themes''default');
        }

        
App::setLocale($language);
        
View::addNamespace('theme'resource_path('views/themes/' $theme));

        
// Позволяет переопределять страницы для определенной темы
        
$finder app('view')->getFinder();
        if (
$finder instanceof FileViewFinder) {
            foreach (
$finder->getHints() as $namespace => $paths) {
                
$override resource_path('views/themes/' $theme '/views/' $namespace);

                if (
is_dir($override)) {
                    
app('view')->prependNamespace($namespace$override);
                }
            }
        }

        return 
$next($request);
    }
}
Онлайн: 1
Реклама