cms/app/Http/Middleware/SetSiteStates.php

58 lines
1.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Http\Middleware;
use App\Services\SiteStateService;
use Closure;
/**
* 設定SiteStateService中的資料
*
* Class SetSiteStates
* @package App\Http\Middleware
*/
class SetSiteStates
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$siteState = app(SiteStateService::class);
$adminRoute = config('admin.route');
//是否網站後台判斷route prefix
if($request->is($adminRoute . '/*', $adminRoute)) {
$siteState->isAdminArea = true;
}
//所有可用語系及其原文名稱
$siteState->languagesWithLabel = config('languages');
//所有可用語系
$siteState->languages = array_keys($siteState->languagesWithLabel);
//所有其他可用語系,排除現在語系
$siteState->otherLanguages = collect($siteState->languages)->filter(function($locale){
return $locale !== app()->getLocale();
})->all();
//所有語系的當前語言翻譯
foreach ($siteState->languages as $locale) {
$siteState->languageTranslations[$locale] = trans('languages.' . $locale);
}
//預設語系
$siteState->defaultLanguage = config('app.fallback_locale');
//設定預設的meta tag
$siteState->htmlMeta['description'] = app('Option')->site_description;
$siteState->htmlMeta['og:type'] = 'website';
return $next($request);
}
}