added show url language parameters

This commit is contained in:
vedatakd 2020-08-26 14:32:47 +03:00
parent 76caa0a233
commit 997f7ee5dc
4 changed files with 31 additions and 14 deletions

View File

@ -8,6 +8,7 @@ return [
'title' => 'visiosoft.module.advs::section.general',
'fields' => [
'market_place',
'show_lang_url',
'iban_numbers',
'google_statistic_code',
'ogImage',

View File

@ -228,4 +228,11 @@ return [
'default_value' => false,
]
],
'show_lang_url' => [
'type' => 'anomaly.field_type.boolean',
'config' => [
'default_value' => false,
]
],
];

View File

@ -146,4 +146,7 @@ return [
'hide_map_filter' => [
'name' => 'Hide Map Filter',
],
'show_lang_url' => [
'name' => 'Show Lang Parameter For URL',
],
];

View File

@ -31,26 +31,32 @@ class redirectDiffrentLang
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 (setting_value('visiosoft.module.advs::show_lang_url')) {
$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 the segment(1) is admin and language parameters is not null, no forwarding will be made.
if ($request->segment(1) == "admin" and in_array($current_language, explode('/', $original_url))) {
return $this->redirect->to($request->fullUrl());
}
$not_included = [
'admin',
'social'
];
if ($current_language != $setting_language) {
// If the segment(1) is admin and language parameters is not null, no forwarding will be made.
if (in_array($request->segment(1), $not_included) and in_array($current_language, explode('/', $original_url))) {
return $this->redirect->to($request->fullUrl());
}
// If the method is get, no forwarding will be made.
// If the segment(1) is admin, no forwarding will be made.
if ($current_language != $setting_language) {
if ($request->method() == "GET" and $request->segment(1) != "admin" and $request_url != "" and $original_url != '/' . $current_language . '/' . $request_url) {
return $this->redirect->to('/' . $current_language . '/' . $request_url);
// If the method is get, no forwarding will be made.
// If the segment(1) is admin, no forwarding will be made.
if ($request->method() == "GET" and !in_array($request->segment(1), $not_included) and $request_url != "" and $original_url != '/' . $current_language . '/' . $request_url) {
return $this->redirect->to('/' . $current_language . '/' . $request_url);
}
}
}
return $next($request);
}
}