another lang redirect without url lang

This commit is contained in:
vedatakd 2020-08-17 12:37:33 +03:00
parent 39b2e4837e
commit de5ac7e56f
2 changed files with 52 additions and 0 deletions

View File

@ -10,6 +10,7 @@ use Visiosoft\AdvsModule\Adv\AdvRepository;
use Anomaly\Streams\Platform\Model\Advs\AdvsAdvsEntryModel;
use Visiosoft\AdvsModule\Adv\AdvModel;
use Visiosoft\AdvsModule\Adv\Form\AdvFormBuilder;
use Visiosoft\AdvsModule\Http\Middleware\redirectDiffrentLang;
use Visiosoft\AdvsModule\Http\Middleware\SetLang;
use Visiosoft\AdvsModule\Listener\AddAdvsSettingsScript;
use Visiosoft\AdvsModule\Option\Contract\OptionRepositoryInterface;
@ -233,6 +234,7 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
*/
protected $middleware = [
SetLang::class,
redirectDiffrentLang::class,
];
/**

View File

@ -0,0 +1,50 @@
<?php namespace Visiosoft\AdvsModule\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
/**
* Class SetLang
*/
class redirectDiffrentLang
{
/**
* The redirect utility.
*
* @var Redirector
*/
protected $redirect;
/**
* Create a new SetLocale instance.
*
* @param Redirector $redirect
*/
public function __construct(
Redirector $redirect
)
{
$this->redirect = $redirect;
}
public function handle(Request $request, Closure $next)
{
$original_url = $request->server->get('ORIGINAL_REQUEST_URI');
$setting_language = setting_value('streams::default_locale');
$current_language = $request->session()->get('_locale', $setting_language);
$request_url = ltrim($request->getRequestUri(), '/');
if ($current_language != $setting_language) {
if ($request_url != "" and $original_url != '/' . $current_language . '/' . $request_url) {
return $this->redirect->to('/' . $current_language . '/' . $request_url);
}
} else {
if ($request_url == "" and '/' . $current_language != $original_url) {
$this->redirect->to($current_language);
}
}
return $next($request);
}
}