diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 03b6629eb018cc996e9a76f2feee5cfde7fdb0fb..94e63f03d49365dbbedbaec5b3a607d9af361113 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -56,7 +56,7 @@ class SettingsController extends Controller $cookies = Cookie::get(); $settingActive = false; foreach ($cookies as $key => $value) { - if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"]) || strpos($key, $fokus . '_blpage') === 0 || $key === 'dark_mode') { + if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"]) || strpos($key, $fokus . '_blpage') === 0 || $key === 'dark_mode' || $key === 'new_tab' || $key === 'key') { $settingActive = true; } } @@ -234,6 +234,14 @@ class SettingsController extends Controller } } + $newTab = $request->input('nt'); + if(!empty($newTab)){ + if($newTab === "off") { + Cookie::queue('new_tab', '', 0, '/', null, false, false); + }elseif($newTab === "on") { + Cookie::queue('new_tab', 'on', 0, '/', null, false, false); + } + } return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url]))); } @@ -256,7 +264,12 @@ class SettingsController extends Controller if($key === 'dark_mode'){ Cookie::queue($key, "", 0, '/', null, false, false); } - + if($key === 'new_tab'){ + Cookie::queue($key, "", 0, '/', null, false, false); + } + if($key === 'key'){ + Cookie::queue($key, "", 0, '/', null, false, false); + } } $this->clearBlacklist($request); @@ -281,6 +294,10 @@ class SettingsController extends Controller $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5); if($key === 'dark_mode'){ Cookie::queue($key, "", 0, '/', null, false, false); + } elseif($key === 'new_tab') { + Cookie::queue($key, "", 0, '/', null, false, false); + } elseif($key === 'key') { + Cookie::queue($key, "", 0, '/', null, false, false); }else{ Cookie::queue($key, "", 0, $cookiePath, null, false, false); } @@ -296,7 +313,9 @@ class SettingsController extends Controller foreach (Cookie::get() as $key => $value) { if($key === 'dark_mode'){ Cookie::queue($key, "", 0, '/', null, false, false); - }else{ + } elseif($key === 'new_tab') { + Cookie::queue($key, "", 0, '/', null, false, false); + } else { Cookie::queue($key, "", 0, $cookiePath, null, false, false); } } @@ -407,6 +426,9 @@ class SettingsController extends Controller if($key === 'dark_mode'){ Cookie::queue($key, $value, 0, '/', null, false, false); } + if($key === 'new_tab' && $key === 'on') { + Cookie::queue($key, 'on', 0, '/', null, false, false); + } foreach($sumaFile['filter']['parameter-filter'] as $suma => $filter){ if($key === $suma && $value === $filter){ Cookie::queue($key, $value, 0, $cookiePath, null, false, false); diff --git a/app/MetaGer.php b/app/MetaGer.php index e1a5084a7fddf4b05f39ab04c4bcf8bffc5c0134..44e60475f08747f39e7689c0c158c00ba8a23701 100644 --- a/app/MetaGer.php +++ b/app/MetaGer.php @@ -1093,7 +1093,7 @@ class MetaGer $this->sprueche = $request->input('quotes'); } - $this->newtab = $request->input('newtab', 'on'); + $this->newtab = $request->input('new_tab', \Cookie::get('new_tab')); if ($this->newtab === "on") { $this->newtab = "_blank"; } elseif ($this->framed) { diff --git a/resources/js/scriptResultPage.js b/resources/js/scriptResultPage.js index 9caa935fae20f47e858cb0f8ea3272503a5cb7f2..18ce51a129fc0f6d50f281608680f144d8f93de7 100644 --- a/resources/js/scriptResultPage.js +++ b/resources/js/scriptResultPage.js @@ -5,11 +5,11 @@ $(document).ready(function () { }); function botProtection() { - $('.result').find('a').click(function () { + $('.result').find('a').click(function (e) { var link = $(this).attr('href'); var newtab = false; var top = false; - if ($(this).attr('target') == '_blank') { + if ($(this).attr('target') == '_blank' || e.ctrlKey) { newtab = true; } else if ($(this).attr('target') == "_top") { top = true; @@ -32,10 +32,7 @@ function botProtection() { } } }); - if (!newtab) - return false; - else - return true; + return newtab; }); } @@ -135,4 +132,4 @@ function loadMoreResults() { }); } }, 1000); -} \ No newline at end of file +} diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php index a1b23f6e1102e655883d72213b155ccad658f4b9..26de372ad66b973bb77db40cabb9dec7b3aff793 100644 --- a/resources/lang/de/settings.php +++ b/resources/lang/de/settings.php @@ -25,13 +25,17 @@ return [ 'add' => 'Hinzufügen', 'clear' => 'Blacklist leeren', 'copy' => 'Kopieren', + 'hint' => 'Diese Einstellung betrifft alle Fokusse und Unterseiten übergreifend!', 'darkmode' => 'Dunklen Modus umschalten', - 'darkmode-hint' => 'Die Einstellung für den dunklen Modus betrifft alle Fokusse und Unterseiten übergreifend!', 'system' => 'Systemstandard', 'dark' => 'Dunkel', 'light' => 'Hell', + 'newTab' => 'Ergebnisse in neuem Tab öffnen', + 'off' => 'Aus', + 'on' => 'An', + // Translations from the settings overview 'noSettings' => 'Aktuell sind keine Einstellungen gesetzt!', 'allSettings.header' => 'Auf :root gesetzte Einstellungen', @@ -45,5 +49,4 @@ return [ 'key' => 'Ihr Schlüssel für die werbefreie Suche', 'blentry' => 'Blacklisteintrag', 'removeCookie' => 'Diesen Cookie entfernen', - 'dm' => 'Dunkler Modus', ]; diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php index 5bc3590ead6028d23dc7b25dc10958b545244fd5..62673341ed689a7cf4efa650a3347206d5f08e6e 100644 --- a/resources/lang/en/settings.php +++ b/resources/lang/en/settings.php @@ -25,13 +25,17 @@ return [ 'add' => 'Add', 'clear' => 'Clear black list', 'copy' => 'Copy', + 'hint' => 'This setting affects all foci and sub-pages!', 'darkmode' => 'Toggle dark mode', - 'darkmode-hint' => 'The setting for dark mode affects all foci and sub-pages!', 'system' => 'System Default', 'dark' => 'Dark', 'light' => 'Light', + 'newTab' => 'Open results in new tabs', + 'off' => 'off', + 'on' => 'on', + // Translations from the settings overview 'noSettings' => "Currently no settings are set!", 'allSettings.header' => "Settings on :root", @@ -45,5 +49,4 @@ return [ 'key' => "Your key to the ad-free search", 'blentry' => 'Black list entry', 'removeCookie' => "Remove this cookie", - 'dm' => 'Dark mode', ]; diff --git a/resources/less/metager/pages/resultpage/result.less b/resources/less/metager/pages/resultpage/result.less index 7d5d91c64cdc33065b53f02c98e18d9f432441b9..7f4ded151b8f76363922769afa9405134dddff54 100644 --- a/resources/less/metager/pages/resultpage/result.less +++ b/resources/less/metager/pages/resultpage/result.less @@ -189,11 +189,7 @@ text-decoration: none; } } - @media (max-width: @screen-mobile) { - .result-open-newtab { - display: none; - } - } + .result-open-proxy { &, &:active, @@ -299,4 +295,4 @@ filter: invert(1) brightness(0.4); height:16px; margin-right: 4px; -} \ No newline at end of file +} diff --git a/resources/views/layouts/result.blade.php b/resources/views/layouts/result.blade.php index 3ada99dcfd0e875f0ef25f1087c98ce0929999c7..408fb6689740f71a0e3469430fe03e5bfd0e303e 100644 --- a/resources/views/layouts/result.blade.php +++ b/resources/views/layouts/result.blade.php @@ -5,7 +5,7 @@ @if( isset($result->price) && $result->price != 0) <span class="result-price">{!! $result->price_text !!}</span> @endif - <a href="{{ $result->link }}" @if($metager->isFramed())target="_top"@endif rel="noopener"> + <a href="{{ $result->link }}" target="{{ $metager->getNewtab() }}" rel="noopener"> {!! $result->titel !!} </a> </h2> @@ -16,7 +16,7 @@ @endif </div> <div class="result-subheadline"> - <a class="result-link" href="{{ $result->link }}" title="{{ $result->anzeigeLink }}" rel="noopener" @if($metager->isFramed())target="_top"@endif tabindex="-1"> + <a class="result-link" href="{{ $result->link }}" title="{{ $result->anzeigeLink }}" rel="noopener" target="{{ $metager->getNewtab() }}" tabindex="-1"> {{ $result->anzeigeLink }} </a> @if( isset($result->partnershop) && $result->partnershop === TRUE) diff --git a/resources/views/settings/allSettings.blade.php b/resources/views/settings/allSettings.blade.php index 0eb677d10a271c88e8e853a6e6cb49a3e11df9d6..eb8ae22350d6addb9c57a899e8645f3875bb3b31 100644 --- a/resources/views/settings/allSettings.blade.php +++ b/resources/views/settings/allSettings.blade.php @@ -20,7 +20,7 @@ <tbody> @foreach(Cookie::get() as $key => $value) <tr> - <td>{{ $key . "=" . $value }}</td> + <td>{{ $key . " = " . $value }}</td> <td> @if(strpos($key, "_engine_") !== FALSE) @lang('settings.engineDisabled', ["engine" => $sumaFile->sumas->{substr($key, strrpos($key, "_")+1)}->{"display-name"}, "focus" => trans('index.foki.' . substr($key, 0, strpos($key, "_")))]) @@ -31,11 +31,13 @@ @endif @endforeach @elseif($key === "key") - @lang('settings.key') + @lang('settings.key') @elseif(strpos($key, "_blpage")) - @lang('settings.blentry') + @lang('settings.blentry') @elseif($key === 'dark_mode') - @lang('settings.dm') + @lang('settings.darkmode') + @elseif($key === 'new_tab') + @lang('settings.newTab') @endif </td> <td> diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php index 94ee61fceee304fe2aa59021510ce64c3e3fca17..a17501e54fe0dbbfbcaee586f8aa6d6dbedc80bd 100644 --- a/resources/views/settings/index.blade.php +++ b/resources/views/settings/index.blade.php @@ -135,7 +135,15 @@ <option value="off" {{ Cookie::get('dark_mode') === "1" ? "disabled selected" : "" }}>@lang('settings.light')</option> <option value="on" {{ Cookie::get('dark_mode') === "2" ? "disabled selected" : "" }}>@lang('settings.dark')</option> </select> - <small>@lang('settings.darkmode-hint')</small> + <small>@lang('settings.hint')</small> + </div> + <div class="form-group"> + <label for="nt">@lang('settings.newTab')</label> + <select name="nt" id="nt" class="form-control"> + <option value="off" {{ !Cookie::has('new_tab') ? "disabled selected" : "" }}>@lang('settings.off')</option> + <option value="on" {{ Cookie::get('new_tab') === "on" ? "disabled selected" : "" }}>@lang('settings.on')</option> + </select> + <small>@lang('settings.hint')</small> </div> @if(LaravelLocalization::getCurrentLocale() === "de") <div class="form-group">