sarga/packages/Webkul/Shop/src/Http/Middleware/Locale.php

56 lines
1.3 KiB
PHP
Raw Normal View History

2018-07-24 11:11:32 +00:00
<?php
2018-10-17 13:57:51 +00:00
namespace Webkul\Shop\Http\Middleware;
2018-07-24 11:11:32 +00:00
use Closure;
2022-01-13 08:11:18 +00:00
use Webkul\Core\Repositories\LocaleRepository;
2018-07-24 11:11:32 +00:00
class Locale
{
/**
2022-01-13 08:11:18 +00:00
* Locale repository instance.
*
* @var \Webkul\Core\Repositories\LocaleRepository
2018-07-24 11:11:32 +00:00
*/
2022-01-13 08:11:18 +00:00
protected $localeRepository;
2018-07-24 11:11:32 +00:00
/**
2022-01-13 08:57:54 +00:00
* Create a middleware instance.
*
* @param \Webkul\Core\Repositories\LocaleRepository $localeRepository
* @return void
2018-07-24 11:11:32 +00:00
*/
2022-01-13 08:11:18 +00:00
public function __construct(LocaleRepository $localeRepository)
2018-07-24 11:11:32 +00:00
{
2022-01-13 08:11:18 +00:00
$this->localeRepository = $localeRepository;
2018-07-24 11:11:32 +00:00
}
/**
2022-01-13 08:11:18 +00:00
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
2018-07-24 11:11:32 +00:00
public function handle($request, Closure $next)
{
2022-01-13 08:11:18 +00:00
if ($localeCode = core()->getRequestedLocaleCode('locale', false)) {
if ($this->localeRepository->findOneByField('code', $localeCode)) {
app()->setLocale($localeCode);
2018-10-17 13:57:51 +00:00
2022-01-13 08:11:18 +00:00
session()->put('locale', $localeCode);
2018-10-17 13:57:51 +00:00
}
} else {
2022-01-13 08:11:18 +00:00
if ($localeCode = session()->get('locale')) {
app()->setLocale($localeCode);
2019-07-23 12:17:19 +00:00
} else {
app()->setLocale(core()->getDefaultChannel()->default_locale->code);
2018-07-24 11:11:32 +00:00
}
}
2019-11-05 07:41:11 +00:00
unset($request['locale']);
2018-07-24 11:11:32 +00:00
return $next($request);
}
}