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 Webkul\Core\Repositories\LocaleRepository;
use Closure;
class Locale
{
/**
2018-10-17 13:57:51 +00:00
* @var LocaleRepository
2018-07-24 11:11:32 +00:00
*/
protected $locale;
/**
* @param \Webkul\Core\Repositories\LocaleRepository $locale
*/
public function __construct(LocaleRepository $locale)
{
$this->locale = $locale;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
2019-03-28 04:40:26 +00:00
$query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
$localeTerm = preg_split('/(\?|&)/', $query);
2019-03-28 04:40:26 +00:00
$localCode = '';
foreach($localeTerm as $term){
if (strpos($term, 'locale') !== false) {
$localCode = last(explode("=", $term));
}
}
if ($locale = $localCode) {
2019-01-15 11:54:41 +00:00
if ($this->locale->findOneByField('code', $locale)) {
2018-10-17 13:57:51 +00:00
app()->setLocale($locale);
session()->put('locale', $locale);
}
} else {
2019-01-15 11:54:41 +00:00
if ($locale = session()->get('locale')) {
2018-10-17 13:57:51 +00:00
app()->setLocale($locale);
2018-07-24 11:11:32 +00:00
}
}
return $next($request);
}
}