diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php index a9ca7f186..13e5a4dfd 100644 --- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php +++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php @@ -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, ]; /** diff --git a/addons/default/visiosoft/advs-module/src/Http/Middleware/redirectDiffrentLang.php b/addons/default/visiosoft/advs-module/src/Http/Middleware/redirectDiffrentLang.php new file mode 100644 index 000000000..dd71ae2ca --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Http/Middleware/redirectDiffrentLang.php @@ -0,0 +1,50 @@ +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); + } +}