diff --git a/.gitignore b/.gitignore index 1a804f0356fb3cd5a3cc1fa42ddeb03e32cd7f4b..ce2c62fe06a253c2c0b6c95525cd7a1dbd8ba4e7 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,5 @@ npm-debug.log composer.lock package-lock.json local.log + +browserstack.err diff --git a/.gitlab/development-values.yaml b/.gitlab/development-values.yaml index 87e1498ecdcccc89753317722b69faf48373b2eb..8a5e39a311ff68f7f9f9c973677b4546edbe08cc 100644 --- a/.gitlab/development-values.yaml +++ b/.gitlab/development-values.yaml @@ -25,7 +25,7 @@ ingress: annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/configuration-snippet: | - more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'; base-uri; manifest-src; plugin-types; report-uri; report-to"; + more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self' www.paypal.com; base-uri; manifest-src; plugin-types; report-uri; report-to"; more_set_headers "X-Frame-Options: sameorigin"; more_set_headers "X-Content-Type-Options: nosniff"; more_set_headers "ReferrerPolicy: origin"; diff --git a/.gitlab/production-values.yaml b/.gitlab/production-values.yaml index aba1efca1f27d03a0580741da64a7ccd7dc31fb6..130b7dc1e15d5fec3419374b390413c3ad14e833 100644 --- a/.gitlab/production-values.yaml +++ b/.gitlab/production-values.yaml @@ -3,7 +3,7 @@ service: internalPort: 80 hpa: enabled: true - minReplicas: 1 + minReplicas: 3 maxReplicas: 100 resources: limits: @@ -25,7 +25,7 @@ ingress: annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/configuration-snippet: | - more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'; base-uri; manifest-src; plugin-types; report-uri; report-to"; + more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self' www.paypal.com; base-uri; manifest-src; plugin-types; report-uri; report-to"; more_set_headers "X-Frame-Options: sameorigin"; more_set_headers "X-Content-Type-Options: nosniff"; more_set_headers "ReferrerPolicy: origin"; diff --git a/app/Console/Commands/RequestFetcher.php b/app/Console/Commands/RequestFetcher.php index 13bb5e71cbb35b9ce522157955fe424f0b327506..270d8bd47d4734ae455f1cf69f535a3bee19bb1d 100644 --- a/app/Console/Commands/RequestFetcher.php +++ b/app/Console/Commands/RequestFetcher.php @@ -2,6 +2,7 @@ namespace App\Console\Commands; +use Cache; use Illuminate\Console\Command; use Illuminate\Support\Facades\Redis; use Log; @@ -24,10 +25,9 @@ class RequestFetcher extends Command protected $shouldRun = true; protected $multicurl = null; - protected $oldMultiCurl = null; - protected $maxFetchedDocuments = 10000; - protected $fetchedDocuments = 0; - protected $proxyhost, $proxyuser, $proxypassword; + protected $proxyhost; + protected $proxyuser; + protected $proxypassword; /** * Create a new command instance. @@ -42,7 +42,6 @@ class RequestFetcher extends Command $this->proxyport = env("PROXY_PORT", ""); $this->proxyuser = env("PROXY_USER", ""); $this->proxypassword = env("PROXY_PASSWORD", ""); - } /** @@ -52,7 +51,6 @@ class RequestFetcher extends Command */ public function handle() { - $pidFile = "/tmp/fetcher"; pcntl_signal(SIGINT, [$this, "sig_handler"]); pcntl_signal(SIGTERM, [$this, "sig_handler"]); @@ -79,61 +77,16 @@ class RequestFetcher extends Command } try { - $blocking = false; while ($this->shouldRun) { - $status = curl_multi_exec($this->multicurl, $active); - $currentJobs = []; - if (!$blocking) { - $elements = Redis::pipeline(function($redis){ - $redis->lrange(\App\MetaGer::FETCHQUEUE_KEY, 0, -1); - $redis->del(\App\MetaGer::FETCHQUEUE_KEY); - }); - $currentJobs = $elements[0]; - } else { - $currentJob = Redis::blpop(\App\MetaGer::FETCHQUEUE_KEY, 1); - if (!empty($currentJob)) { - $currentJobs[] = $currentJob[1]; - } - } - - if (sizeof($currentJobs) > 0) { - foreach($currentJobs as $currentJob){ - $currentJob = json_decode($currentJob, true); - $ch = $this->getCurlHandle($currentJob); - if (curl_multi_add_handle($this->multicurl, $ch) !== 0) { - $this->shouldRun = false; - Log::error("Couldn't add Handle to multicurl"); - break; - } - $this->fetchedDocuments++; - if ($this->fetchedDocuments > $this->maxFetchedDocuments) { - Log::info("Reinitializing Multicurl after " . $this->fetchedDocuments . " requests."); - $this->oldMultiCurl = $this->multicurl; - $this->multicurl = curl_multi_init(); - $this->fetchedDocuments = 0; - } - $blocking = false; - $active = true; - } - } - - $answerRead = $this->readMultiCurl($this->multicurl); - if ($this->oldMultiCurl != null) { - $this->readMultiCurl($this->oldMultiCurl); - $messagesLeft = -1; - if (curl_multi_info_read($this->oldMultiCurl, $messagesLeft) === false) { - if ($messagesLeft = 0) { - Log::debug("Removing finished multicurl handle"); - curl_multi_close($this->oldMultiCurl); - $this->oldMultiCurl = null; - } - } - } - - if (!$active && !$answerRead) { - $blocking = true; - } else { - usleep(50 * 1000); + $operationsRunning = true; + curl_multi_exec($this->multicurl, $operationsRunning); + $status = $this->readMultiCurl($this->multicurl); + $answersRead = $status[0]; + $messagesLeft = $status[1]; + $newJobs = $this->checkNewJobs($operationsRunning, $messagesLeft); + + if ($newJobs === 0 && $answersRead === 0) { + usleep(10 * 1000); } } } finally { @@ -142,18 +95,60 @@ class RequestFetcher extends Command } } + /** + * Checks the Redis queue if any new fetch jobs where submitted + * and adds them to multicurl if there are. + * Will be blocking call to redis if there are no running jobs in multicurl + */ + private function checkNewJobs($operationsRunning, $messagesLeft) + { + $newJobs = []; + if ($operationsRunning === 0 && $messagesLeft === -1) { + $newJob = Redis::blpop(\App\MetaGer::FETCHQUEUE_KEY, 1); + if (!empty($newJob)) { + $newJobs[] = $newJob[1]; + } + } else { + $elements = Redis::pipeline(function ($redis) { + $redis->lrange(\App\MetaGer::FETCHQUEUE_KEY, 0, -1); + $redis->del(\App\MetaGer::FETCHQUEUE_KEY); + }); + $newJobs = $elements[0]; + } + + $addedJobs = 0; + foreach ($newJobs as $newJob) { + $newJob = json_decode($newJob, true); + $ch = $this->getCurlHandle($newJob); + if (curl_multi_add_handle($this->multicurl, $ch) !== 0) { + $this->shouldRun = false; + Log::error("Couldn't add Handle to multicurl"); + break; + } else { + $addedJobs++; + } + } + + return $addedJobs; + } + private function readMultiCurl($mc) { - $answerRead = false; - while (($info = curl_multi_info_read($mc)) !== false) { + $messagesLeft = -1; + $answersRead = 0; + while (($info = curl_multi_info_read($mc, $messagesLeft)) !== false) { try { - $answerRead = true; + $answersRead++; $infos = curl_getinfo($info["handle"], CURLINFO_PRIVATE); $infos = explode(";", $infos); $resulthash = $infos[0]; $cacheDurationMinutes = intval($infos[1]); + $name = $infos[2]; $responseCode = curl_getinfo($info["handle"], CURLINFO_HTTP_CODE); - $body = ""; + $body = "no-result"; + + $totalTime = curl_getinfo($info["handle"], CURLINFO_TOTAL_TIME); + \App\PrometheusExporter::Duration($totalTime, $name); $error = curl_error($info["handle"]); if (!empty($error)) { @@ -161,29 +156,38 @@ class RequestFetcher extends Command } if ($responseCode !== 200) { + Log::debug($resulthash); Log::debug("Got responsecode " . $responseCode . " fetching \"" . curl_getinfo($info["handle"], CURLINFO_EFFECTIVE_URL) . "\n"); } else { $body = \curl_multi_getcontent($info["handle"]); } Redis::pipeline(function ($pipe) use ($resulthash, $body, $cacheDurationMinutes) { - $pipe->set($resulthash, $body); + $pipe->lpush($resulthash, $body); $pipe->expire($resulthash, 60); }); + + if ($cacheDurationMinutes > 0) { + try { + Cache::put($resulthash, $body, $cacheDurationMinutes * 60); + } catch (\Exception $e) { + Log::error($e->getMessage()); + } + } } finally { \curl_multi_remove_handle($mc, $info["handle"]); } } - return $answerRead; + return [$answersRead, $messagesLeft]; } private function getCurlHandle($job) { $ch = curl_init(); - + curl_setopt_array($ch, array( CURLOPT_URL => $job["url"], - CURLOPT_PRIVATE => $job["resulthash"] . ";" . $job["cacheDuration"], + CURLOPT_PRIVATE => $job["resulthash"] . ";" . $job["cacheDuration"] . ";" . $job["name"], CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $job["useragent"], CURLOPT_FOLLOWLOCATION => true, @@ -221,7 +225,6 @@ class RequestFetcher extends Command public function sig_handler($sig) { $this->shouldRun = false; - echo ("Terminating Process\n"); + echo("Terminating Process\n"); } - } diff --git a/app/Http/Controllers/AdminSpamController.php b/app/Http/Controllers/AdminSpamController.php index e4a514ce347b6dadf4141353316a7b315c187b37..43ccfc0be0ebebd4e571492490ce86876509bdf6 100644 --- a/app/Http/Controllers/AdminSpamController.php +++ b/app/Http/Controllers/AdminSpamController.php @@ -44,6 +44,9 @@ class AdminSpamController extends Controller public function jsonQueries() { $queries = $this->getQueries(); + # JSON encoding will fail if invalid UTF-8 Characters are in this string + # mb_convert_encoding will remove thise invalid characters for us + $queries = mb_convert_encoding($queries, "UTF-8", "UTF-8"); return response()->json($queries); } @@ -77,8 +80,10 @@ class AdminSpamController extends Controller ]; } + # JSON encoding will fail if invalid UTF-8 Characters are in this string + # mb_convert_encoding will remove thise invalid characters for us + $resultData = mb_convert_encoding($resultData, "UTF-8", "UTF-8"); return response()->json($resultData); - } private function getQueries() diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php index 583cbdc7d05bf92970062d4d8cdc798bfb63943a..22289cad828c7a27ab621c1c9282239cdd9944cf 100644 --- a/app/Http/Controllers/MetaGerSearch.php +++ b/app/Http/Controllers/MetaGerSearch.php @@ -12,9 +12,11 @@ use View; class MetaGerSearch extends Controller { - public function search(Request $request, MetaGer $metager, $timing = false) { + if ($request->filled("chrome-plugin")) { + return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/plugin")); + } $timings = null; if ($timing) { $timings = ['starttime' => microtime(true)]; @@ -97,10 +99,7 @@ class MetaGerSearch extends Controller } # Ergebnisse der Suchmaschinen kombinieren: - $metager->prepareResults(); - if (!empty($timings)) { - $timings["prepareResults"] = microtime(true) - $time; - } + $metager->prepareResults($timings); $finished = true; foreach ($metager->getEngines() as $engine) { @@ -111,7 +110,16 @@ class MetaGerSearch extends Controller } try { - Cache::put("loader_" . $metager->getSearchUid(), $metager->getEngines(), 60 * 60); + Cache::put("loader_" . $metager->getSearchUid(), [ + "metager" => [ + "apiAuthorized" => $metager->isApiAuthorized(), + ], + "adgoal" => [ + "loaded" => $metager->isAdgoalLoaded(), + "adgoalHash" => $metager->getAdgoalHash(), + ], + "engines" => $metager->getEngines(), + ], 60 * 60); } catch (\Exception $e) { Log::error($e->getMessage()); } @@ -147,7 +155,7 @@ class MetaGerSearch extends Controller // This might speed up page view time for users with slow network $responseArray = str_split($resultpage->render(), 1024); foreach ($responseArray as $responsePart) { - echo ($responsePart); + echo($responsePart); flush(); } $requestTime = microtime(true) - $time; @@ -173,11 +181,11 @@ class MetaGerSearch extends Controller if ($request->filled('loadMore') && $request->filled('script') && $request->input('script') === "yes") { return $this->loadMoreJS($request); } - } private function loadMoreJS(Request $request) { + $request->request->add(["javascript" => true]); # Create a MetaGer Instance with the supplied hash $hash = $request->input('loadMore', ''); @@ -190,40 +198,60 @@ class MetaGerSearch extends Controller } } - $engines = Cache::get($hash); - if ($engines === null) { + $cached = Cache::get($hash); + if ($cached === null) { return response()->json(['finished' => true]); } + $engines = $cached["engines"]; + $adgoal = $cached["adgoal"]; + $mg = $cached["metager"]; + $metager = new MetaGer(substr($hash, strpos($hash, "loader_") + 7)); + $metager->setApiAuthorized($mg["apiAuthorized"]); + $metager->setAdgoalLoaded($adgoal["loaded"]); + $metager->setAdgoalHash($adgoal["adgoalHash"]); $metager->parseFormData($request); # Nach Spezialsuchen überprüfen: $metager->checkSpecialSearches($request); $metager->restoreEngines($engines); + # Checks Cache for engine Results + $metager->checkCache(); + $metager->retrieveResults(); + $metager->rankAll(); $metager->prepareResults(); $result = [ 'finished' => true, 'newResults' => [], + 'changedResults' => [], ]; $result["nextSearchLink"] = $metager->nextSearchLink(); $newResults = 0; foreach ($metager->getResults() as $index => $resultTmp) { - if ($resultTmp->new) { + if ($resultTmp->new || $resultTmp->adgoalChanged) { if ($metager->getFokus() !== "bilder") { $view = View::make('layouts.result', ['index' => $index, 'result' => $resultTmp, 'metager' => $metager]); $html = $view->render(); - $result['newResults'][$index] = $html; + if (!$resultTmp->new && $resultTmp->adgoalChanged) { + $result['changedResults'][$index] = $html; + } else { + $result['newResults'][$index] = $html; + } $result["imagesearch"] = false; } else { $view = View::make('layouts.image_result', ['index' => $index, 'result' => $resultTmp, 'metager' => $metager]); $html = $view->render(); - $result['newResults'][$index] = $html; + if (!$resultTmp->new && $resultTmp->adgoalChanged) { + $result['changedResults'][$index] = $html; + } else { + $result['newResults'][$index] = $html; + } $result["imagesearch"] = true; } $newResults++; @@ -231,16 +259,24 @@ class MetaGerSearch extends Controller } $finished = true; + $enginesLoaded = []; foreach ($engines as $engine) { if (!$engine->loaded) { + $enginesLoaded[$engine->name] = false; $finished = false; } else { + $enginesLoaded[$engine->name] = true; $engine->setNew(false); $engine->markNew(); } } + if (!$metager->isAdgoalLoaded()) { + $finished = false; + } + $result["finished"] = $finished; + $result["engines"] = $enginesLoaded; if ($newResults > 0) { $registry = \Prometheus\CollectorRegistry::getDefault(); @@ -248,7 +284,20 @@ class MetaGerSearch extends Controller $counter->incBy($newResults); } // Update new Engines - Cache::put("loader_" . $metager->getSearchUid(), $metager->getEngines(), 1 * 60); + Cache::put("loader_" . $metager->getSearchUid(), [ + "metager" => [ + "apiAuthorized" => $metager->isApiAuthorized(), + ], + "adgoal" => [ + "loaded" => $metager->isAdgoalLoaded(), + "adgoalHash" => $metager->getAdgoalHash(), + ], + "engines" => $metager->getEngines(), + ], 1 * 60); + + # JSON encoding will fail if invalid UTF-8 Characters are in this string + # mb_convert_encoding will remove thise invalid characters for us + $result = mb_convert_encoding($result, "UTF-8", "UTF-8"); return response()->json($result); } diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 9d1f2f4848436283a28b58c572a0c9da3368ef83..0d0d52f7540da82bf734e811bf07c26db89bcb58 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -56,11 +56,22 @@ class SettingsController extends Controller $cookies = Cookie::get(); $settingActive = false; foreach ($cookies as $key => $value) { - if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"])) { + if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"]) || strpos($key, $fokus . '_blpage') === 0) { $settingActive = true; } } + # Reading cookies for black list entries + $blacklist = []; + foreach($cookies as $key => $value){ + if(stripos($key, 'blpage') !== false && stripos($key, $fokus) !== false){ + $blacklist[$key] = $value; + } + } + + # Generating link with set cookies + $cookieLink = LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('loadSettings', $cookies)); + return view('settings.index') ->with('title', trans('titles.settings', ['fokus' => $fokusName])) ->with('fokus', $request->input('fokus', '')) @@ -69,7 +80,9 @@ class SettingsController extends Controller ->with('sumas', $sumas) ->with('filter', $filters) ->with('settingActive', $settingActive) - ->with('url', $url); + ->with('url', $url) + ->with('blacklist', $blacklist) + ->with('cookieLink', $cookieLink); } private function getSumas($fokus) @@ -232,6 +245,7 @@ class SettingsController extends Controller Cookie::queue($key, "", 0, $cookiePath, null, false, false); } } + $this->clearBlacklist($request); return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url]))); } @@ -268,4 +282,116 @@ class SettingsController extends Controller } return redirect($request->input('url', 'https://metager.de')); } + + public function newBlacklist(Request $request) + { + $fokus = $request->input('fokus', ''); + $url = $request->input('url', ''); + + $regexProtocol = '#^([a-z]{0,5}://)?(www.)?#'; + $blacklist = preg_filter($regexProtocol, '', $request->input('blacklist')); + + if(stripos($blacklist, '/') !== false){ + $blacklist = substr($blacklist, 0, stripos($blacklist, '/')); + } + + $regexUrl = '#^(\*\.)?[a-z0-9]+(\.[a-z0-9]+)?(\.[a-z0-9]{2,})$#'; + if(preg_match($regexUrl, $blacklist) === 1){ + + $path = \Request::path(); + $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5); + $cookies = Cookie::get(); + $cookieCounter = 0; + $noduplicate = true; + + ksort($cookies); + + if(!empty($cookies)){ + foreach ($cookies as $key => $value) { + if(stripos($key, $fokus . '_blpage') === 0){ + if($value === $blacklist){ + $noduplicate = false; + break; + } + if((int)(substr($key,strlen($fokus . '_blpage'))) === $cookieCounter){ + $cookieCounter++; + } + } + } + } + if($noduplicate && !empty($blacklist) > 0 && strlen($blacklist) <= 255){ + $cookieName= $fokus.'_blpage'.$cookieCounter; + Cookie::queue($cookieName, $blacklist, 0, $cookiePath, null, false, false); + } + } + return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url]))); + } + + public function deleteBlacklist(Request $request) + { + $fokus = $request->input('fokus', ''); + $url = $request->input('url', ''); + $path = \Request::path(); + $cookieKey = $request->input('cookieKey'); + $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5); + + Cookie::queue($cookieKey, "", 0, $cookiePath, null, false, false); + + return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url]))); + } + + public function clearBlacklist(Request $request) + { + //function to clear the whole black list + $fokus = $request->input('fokus', ''); + $url = $request->input('url', ''); + $path = \Request::path(); + $empty = $request->input('empty'); + $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5); + $cookies = Cookie::get(); + + foreach($cookies as $key => $value){ + if(stripos($key, $fokus . '_blpage') === 0) { + Cookie::queue($key, "", 0, $cookiePath, null, false, false); + } + } + + return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url]))); + } + + public function loadSettings(Request $request) + { + + $path = \Request::path(); + $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5); + + $sumaFile = MetaGer::getLanguageFile(); + $sumaFile = json_decode(file_get_contents($sumaFile), true); + + $foki = array_keys($sumaFile['foki']); + $regexUrl = '#^(\*\.)?[a-z0-9]+(\.[a-z0-9]+)?(\.[a-z0-9]{2,})$#'; + + + $cookies = $request->all(); + foreach($cookies as $key => $value){ + $blpage = false; + foreach($foki as $fokus){ + if(strpos($key, $fokus . '_blpage') === 0 && preg_match($regexUrl, $value) === 1){ + Cookie::queue($key, $value, 0, $cookiePath, null, false, false); + $blpage = true; + } + } + if($blpage){ + continue; + } + foreach($sumaFile['filter']['parameter-filter'] as $suma => $filter){ + if($key === $suma && $value === $filter){ + Cookie::queue($key, $value, 0, $cookiePath, null, false, false); + } + + } + } + + return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), url('/'))); + } } diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php index 55364eb843c62393d056cc57409b1f20b6a8dd08..d38be544d90d51cdb86b1b06d9e010e43203914e 100644 --- a/app/Http/Controllers/StartpageController.php +++ b/app/Http/Controllers/StartpageController.php @@ -45,7 +45,7 @@ class StartpageController extends Controller return view('index') ->with('title', trans('titles.index')) ->with('homeIcon') - ->with('browser', (new Agent())->browser()) + ->with('agent', new Agent()) ->with('navbarFocus', 'suche') ->with('focus', $request->input('focus', 'web')) ->with('time', $request->input('param_time', '1500')) diff --git a/app/Http/Middleware/BrowserVerification.php b/app/Http/Middleware/BrowserVerification.php index ad588820628838ca03fc1acd58764af08de3354c..f8ec4a32f4fd904c6d869a4605ce335ebcfe413e 100644 --- a/app/Http/Middleware/BrowserVerification.php +++ b/app/Http/Middleware/BrowserVerification.php @@ -5,6 +5,7 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Redis; use Jenssegers\Agent\Agent; +use Cache; class BrowserVerification { @@ -17,6 +18,10 @@ class BrowserVerification */ public function handle($request, Closure $next) { + if ($request->filled("loadMore") && Cache::has($request->input("loadMore"))) { + return $next($request); + } + ini_set('zlib.output_compression', 'Off'); ini_set('output_buffering', 'Off'); ini_set('output_handler', ''); @@ -41,8 +46,9 @@ class BrowserVerification if (!preg_match("/^[a-f0-9]{32}$/", $mgv)) { abort(404); } - $result = boolval(Redis::connection("cache")->blpop($mgv, 5)); - if ($result === true) { + $result = Redis::connection("cache")->blpop($mgv, 5); + if ($result !== null) { + $request->request->add(["headerPrinted" => false, "jskey" => $mgv]); return $next($request); } else { return redirect("/"); @@ -54,15 +60,14 @@ class BrowserVerification $key = md5($request->ip() . microtime(true)); - echo (view('layouts.resultpage.verificationHeader')->with('key', $key)->render()); + echo(view('layouts.resultpage.verificationHeader')->with('key', $key)->render()); flush(); - $answer = boolval(Redis::connection("cache")->blpop($key, 2)); - - if ($answer === true) { - echo (view('layouts.resultpage.resources')->render()); + $answer = Redis::connection("cache")->blpop($key, 2); + if ($answer !== null) { + echo(view('layouts.resultpage.resources')->render()); flush(); - $request->request->add(["headerPrinted" => true]); + $request->request->add(["headerPrinted" => true, "jskey" => $key]); return $next($request); } @@ -70,9 +75,8 @@ class BrowserVerification $params["mgv"] = $key; $url = route("resultpage", $params); - echo (view('layouts.resultpage.unverifiedResultPage') + echo(view('layouts.resultpage.unverifiedResultPage') ->with('url', $url) ->render()); - } } diff --git a/app/Http/Middleware/HumanVerification.php b/app/Http/Middleware/HumanVerification.php index 34abf5f20bf9fbc7e221c75121dc11fa73d954cc..805c86488a1e11b324ea55485f164d9eeb441e67 100644 --- a/app/Http/Middleware/HumanVerification.php +++ b/app/Http/Middleware/HumanVerification.php @@ -19,6 +19,10 @@ class HumanVerification */ public function handle($request, Closure $next) { + if ($request->filled("loadMore") && Cache::has($request->input("loadMore"))) { + return $next($request); + } + // The specific user $user = null; $update = true; diff --git a/app/MetaGer.php b/app/MetaGer.php index 29585c9b4ed2907338c806a508e05dd2cb58d3b8..0a3be40d6add9ba73c0a2c905d69706d27f83df3 100644 --- a/app/MetaGer.php +++ b/app/MetaGer.php @@ -5,6 +5,7 @@ namespace App; use App; use Cache; use Carbon; +use Cookie; use Illuminate\Http\Request; use Illuminate\Support\Facades\Redis; use Jenssegers\Agent\Agent; @@ -72,7 +73,10 @@ class MetaGer protected $verificationId; protected $verificationCount; protected $searchUid; - protected $redisResultWaitingKey, $redisResultEngineList, $redisEngineResult, $redisCurrentResultList; + protected $redisResultWaitingKey; + protected $redisResultEngineList; + protected $redisEngineResult; + protected $redisCurrentResultList; public $starttime; public function __construct($hash = "") @@ -252,11 +256,14 @@ class MetaGer } } - public function prepareResults() + public function prepareResults(&$timings = null) { $engines = $this->engines; // combine $this->combineResults($engines); + if (!empty($timings)) { + $timings["prepareResults"]["combined results"] = microtime(true) - $timings["starttime"]; + } // misc (WiP) if ($this->fokus == "nachrichten") { $this->results = array_filter($this->results, function ($v, $k) { @@ -276,7 +283,9 @@ class MetaGer return ($a->getRank() < $b->getRank()) ? 1 : -1; }); } - + if (!empty($timings)) { + $timings["prepareResults"]["sorted results"] = microtime(true) - $timings["starttime"]; + } # Validate Results $newResults = []; foreach ($this->results as $result) { @@ -285,7 +294,9 @@ class MetaGer } } $this->results = $newResults; - + if (!empty($timings)) { + $timings["prepareResults"]["validated results"] = microtime(true) - $timings["starttime"]; + } # Validate Advertisements $newResults = []; foreach ($this->ads as $ad) { @@ -298,15 +309,48 @@ class MetaGer $newResults[] = $ad; } $this->ads = $newResults; - + if (!empty($timings)) { + $timings["prepareResults"]["validated ads"] = microtime(true) - $timings["starttime"]; + } #Adgoal Implementation - if (!$this->apiAuthorized) { - $this->results = $this->parseAdgoal($this->results); + if (empty($this->adgoalLoaded)) { + $this->adgoalLoaded = false; + } + if (!$this->apiAuthorized && !$this->adgoalLoaded) { + if (empty($this->adgoalHash)) { + if (!empty($this->jskey)) { + $js = Redis::connection('cache')->lpop("js" . $this->jskey); + if ($js !== null && boolval($js)) { + $this->javascript = true; + } + } + $this->adgoalHash = $this->startAdgoal($this->results); + if (!empty($timings)) { + $timings["prepareResults"]["started adgoal"] = microtime(true) - $timings["starttime"]; + } + } + + if (!$this->javascript) { + $this->adgoalLoaded = $this->parseAdgoal($this->results, $this->adgoalHash, true); + if (!empty($timings)) { + $timings["prepareResults"]["parsed adgoal"] = microtime(true) - $timings["starttime"]; + } + } else { + $this->adgoalLoaded = $this->parseAdgoal($this->results, $this->adgoalHash, false); + if (!empty($timings)) { + $timings["prepareResults"]["parsed adgoal"] = microtime(true) - $timings["starttime"]; + } + } + } else { + $this->adgoalLoaded = true; } # Human Verification - $this->results = $this->humanVerification($this->results); - $this->ads = $this->humanVerification($this->ads); + $this->humanVerification($this->results); + $this->humanVerification($this->ads); + if (!empty($timings)) { + $timings["prepareResults"]["human verification"] = microtime(true) - $timings["starttime"]; + } $counter = 0; $firstRank = 0; @@ -327,6 +371,9 @@ class MetaGer 'engines' => $this->next, ]; Cache::put($this->getSearchUid(), serialize($this->next), 60 * 60); + if (!empty($timings)) { + $timings["prepareResults"]["filled cache"] = microtime(true) - $timings["starttime"]; + } } else { $this->next = []; } @@ -343,54 +390,104 @@ class MetaGer } foreach ($engine->results as $result) { if ($result->valid) { - $this->results[] = $result; + $this->results[] = clone $result; } } foreach ($engine->ads as $ad) { - $this->ads[] = $ad; + $this->ads[] = clone $ad; } } } - public function parseAdgoal($results) + public function startAdgoal(&$results) { - $time = microtime(true); $publicKey = getenv('adgoal_public'); $privateKey = getenv('adgoal_private'); if ($publicKey === false) { - return $results; + return true; } $tldList = ""; - try { - foreach ($results as $result) { - if (!$result->new) { - continue; - } - $link = $result->link; - if (strpos($link, "http") !== 0) { - $link = "http://" . $link; - } - $tldList .= parse_url($link, PHP_URL_HOST) . ","; - $result->tld = parse_url($link, PHP_URL_HOST); + foreach ($results as $result) { + if (!$result->new) { + continue; + } + $link = $result->link; + if (strpos($link, "http") !== 0) { + $link = "http://" . $link; } - $tldList = rtrim($tldList, ","); + $tldList .= parse_url($link, PHP_URL_HOST) . ","; + $result->tld = parse_url($link, PHP_URL_HOST); + } + $tldList = rtrim($tldList, ","); + + # Hashwert + $hash = md5("meta" . $publicKey . $tldList . "GER"); - # Hashwert - $hash = md5("meta" . $publicKey . $tldList . "GER"); + # Query + $query = $this->q; - # Query - $query = $this->q; + $link = "https://api.smartredirect.de/api_v2/CheckForAffiliateUniversalsearchMetager.php?p=" . urlencode($publicKey) . "&k=" . urlencode($hash) . "&tld=" . urlencode($tldList) . "&q=" . urlencode($query); - $link = "https://api.smartredirect.de/api_v2/CheckForAffiliateUniversalsearchMetager.php?p=" . urlencode($publicKey) . "&k=" . urlencode($hash) . "&tld=" . urlencode($tldList) . "&q=" . urlencode($query); - $answer = json_decode(file_get_contents($link)); + // Submit fetch job to worker + $mission = [ + "resulthash" => $hash, + "url" => $link, + "useragent" => "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0", + "username" => null, + "password" => null, + "headers" => null, + "cacheDuration" => 60, + "name" => "Adgoal", + ]; + $mission = json_encode($mission); + Redis::rpush(\App\MetaGer::FETCHQUEUE_KEY, $mission); + + return $hash; + } + + public function parseAdgoal(&$results, $hash, $waitForResult) + { + # Wait for result + $startTime = microtime(true); + $answer = null; + + # Hash is true if Adgoal request wasn't started in the first place + if ($hash === true) { + return true; + } + + if ($waitForResult) { + while (microtime(true) - $startTime < 5) { + $answer = Cache::get($hash); + if ($answer === null) { + usleep(50 * 1000); + } else { + break; + } + } + } else { + $answer = Cache::get($hash); + } + if ($answer === null) { + return false; + } + try { + $answer = json_decode($answer); + $publicKey = getenv('adgoal_public'); + $privateKey = getenv('adgoal_private'); # Nun müssen wir nur noch die Links für die Advertiser ändern: + foreach ($results as $result) { + $link = $result->link; + $result->tld = parse_url($link, PHP_URL_HOST); + } + foreach ($answer as $el) { $hoster = $el[0]; $hash = $el[1]; foreach ($results as $result) { - if ($result->new && $hoster === $result->tld && !$result->partnershop) { + if ($hoster === $result->tld && !$result->partnershop) { # Hier ist ein Advertiser: # Das Logo hinzufügen: if ($result->image !== "") { @@ -400,27 +497,28 @@ class MetaGer } # Den Link hinzufügen: - $publicKey = $publicKey; $targetUrl = $result->link; + # Query + $query = $this->q; $gateHash = md5($targetUrl . $privateKey); $newLink = "https://api.smartredirect.de/api_v2/ClickGate.php?p=" . urlencode($publicKey) . "&k=" . urlencode($gateHash) . "&url=" . urlencode($targetUrl) . "&q=" . urlencode($query); $result->link = $newLink; $result->partnershop = true; + $result->adgoalChanged = true; } } } } catch (\ErrorException $e) { - return $results; + Log::error($e->getMessage()); } finally { - $requestTime = microtime(true) - $time; + $requestTime = microtime(true) - $startTime; \App\PrometheusExporter::Duration($requestTime, "adgoal"); } - - return $results; + return true; } - public function humanVerification($results) + public function humanVerification(&$results) { # Let's check if we need to implement a redirect for human verification if ($this->verificationCount > 10) { @@ -434,9 +532,6 @@ class MetaGer $result->link = $url; $result->proxyLink = $proxyUrl; } - return $results; - } else { - return $results; } } @@ -592,7 +687,6 @@ class MetaGer if (!empty($timings)) { $timings["createSearchEngines"]["saved engines"] = microtime(true) - $timings["starttime"]; } - } private function removeAdsFromListIfAdfree(&$sumas) @@ -638,6 +732,23 @@ class MetaGer } # Check all engines for Cached responses + $this->checkCache(); + + if (!empty($timings)) { + $timings["startSearch"]["cache checked"] = microtime(true) - $timings["starttime"]; + } + + # Wir starten alle Suchen + foreach ($this->engines as $engine) { + $engine->startSearch($this, $timings); + } + if (!empty($timings)) { + $timings["startSearch"]["searches started"] = microtime(true) - $timings["starttime"]; + } + } + + public function checkCache() + { if ($this->canCache()) { $keys = []; foreach ($this->engines as $engine) { @@ -651,18 +762,6 @@ class MetaGer } } } - if (!empty($timings)) { - $timings["startSearch"]["cache checked"] = microtime(true) - $timings["starttime"]; - } - - # Wir starten alle Suchen - foreach ($this->engines as $engine) { - $engine->startSearch($this, $timings); - } - if (!empty($timings)) { - $timings["startSearch"]["searches started"] = microtime(true) - $timings["starttime"]; - } - } # Spezielle Suchen und Sumas @@ -686,7 +785,6 @@ class MetaGer { $engines = []; foreach ($enabledSearchengines as $engineName => $engine) { - if (!isset($engine->{"parser-class"})) { die(var_dump($engine)); } @@ -774,7 +872,7 @@ class MetaGer foreach ($availableFilter as $filterName => $filter) { if (\Request::filled($filter->{"get-parameter"})) { $filter->value = \Request::input($filter->{"get-parameter"}); - } else if (\Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null) { + } elseif (\Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null) { $filter->value = \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}); } } @@ -842,35 +940,40 @@ class MetaGer foreach ($mainEngines as $mainEngine) { foreach ($engines as $engine) { if ($engine->name === $mainEngine && !$engine->loaded) { - $enginesToWaitFor[] = $engine; + $enginesToWaitFor[] = $engine->hash; } } } - $timeStart = microtime(true); - - $answered = []; - $results = null; - - # If there is no main searchengine to wait for or if the only main engine is yahoo-ads we will define a timeout of 1s - $forceTimeout = null; - if (sizeof($enginesToWaitFor) === 1 && $enginesToWaitFor[0]->name === "yahoo-ads") { - $forceTimeout = 1; - } - - while (sizeof($enginesToWaitFor) > 0 || ($forceTimeout !== null && (microtime(true) - $timeStart) < $forceTimeout)) { - foreach ($enginesToWaitFor as $index => $engine) { - if (Redis::get($engine->hash) !== null) { - $answered[] = $engine; - unset($enginesToWaitFor[$index]); - break; - } + # If no main engines are enabled by the user we will wait for all results + if (sizeof($enginesToWaitFor) === 0) { + foreach ($engines as $engine) { + $enginesToWaitFor[] = $engine->hash; } + } + $timeStart = microtime(true); + while (sizeof($enginesToWaitFor) > 0) { if ((microtime(true) - $timeStart) >= 2) { break; + } + $answer = Redis::brpop($enginesToWaitFor, 2); + + if ($answer === null) { + continue; } else { - usleep(50 * 1000); + Redis::lpush($answer[0], $answer[1]); + } + foreach ($engines as $index => $engine) { + if ($engine->hash === $answer[0]) { + $engine->retrieveResults($this, $answer[1]); + foreach ($enginesToWaitFor as $waitIndex => $engineToWaitFor) { + if ($engineToWaitFor === $answer[0]) { + unset($enginesToWaitFor[$waitIndex]); + break 2; + } + } + } } } } @@ -914,6 +1017,17 @@ class MetaGer } $this->headerPrinted = $request->input("headerPrinted", false); $request->request->remove("headerPrinted"); + + # Javascript option will be set by an asynchronious script we will check for it when we are fetching adgoal + # Until then javascript parameter will be false + $this->javascript = false; + if ($request->filled("javascript") && is_bool($request->input("javascript"))) { + $this->javascript = boolval($request->input("javascript")); + $request->request->remove("javascript"); + } + $this->jskey = $request->input('jskey', ''); + $request->request->remove("jskey"); + $this->url = $request->url(); $this->fullUrl = $request->fullUrl(); # Zunächst überprüfen wir die eingegebenen Einstellungen: @@ -975,7 +1089,7 @@ class MetaGer $this->newtab = $request->input('newtab', 'on'); if ($this->newtab === "on") { $this->newtab = "_blank"; - } else if ($this->framed) { + } elseif ($this->framed) { $this->newtab = "_top"; } else { $this->newtab = "_self"; @@ -1076,7 +1190,7 @@ class MetaGer } } } - } else if ($this->request->filled("ff") || $this->request->filled("ft")) { + } elseif ($this->request->filled("ff") || $this->request->filled("ft")) { $this->request = $this->request->replace($this->request->except(["fc", "ff", "ft"])); } @@ -1157,7 +1271,7 @@ class MetaGer foreach ($this->sumaFile->filter->{"query-filter"} as $filterName => $filter) { if (!empty($filter->{"optional-parameter"}) && $request->filled($filter->{"optional-parameter"})) { $this->queryFilter[$filterName] = $request->input($filter->{"optional-parameter"}); - } else if (preg_match_all("/" . $filter->regex . "/si", $this->q, $matches) > 0) { + } elseif (preg_match_all("/" . $filter->regex . "/si", $this->q, $matches) > 0) { switch ($filter->match) { case "last": $this->queryFilter[$filterName] = $matches[$filter->save][sizeof($matches[$filter->save]) - 1]; @@ -1184,7 +1298,7 @@ class MetaGer if (($request->filled($filter->{"get-parameter"}) && $request->input($filter->{"get-parameter"}) !== "off") || \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null ) { # If the filter is set via Cookie - $this->parameterFilter[$filterName] = $filter; + $this->parameterFilter[$filterName] = $filter; $this->parameterFilter[$filterName]->value = $request->input($filter->{"get-parameter"}, ''); if (empty($this->parameterFilter[$filterName]->value)) { $this->parameterFilter[$filterName]->value = \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}); @@ -1237,10 +1351,17 @@ class MetaGer $this->hostBlacklist[] = $blacklistElement; } } - } else if (strpos($blacklistString, "*") !== 0) { + } elseif (strpos($blacklistString, "*") !== 0) { $this->hostBlacklist[] = $blacklistString; } } + foreach (Cookie::get() as $key => $value) { + if ((stripos($key, $this->fokus.'_blpage') === 0) && (stripos($value, '*.') === false)) { + $this->hostBlacklist[] = $value; + } + } + + $this->hostBlacklist = array_unique($this->hostBlacklist); // print the host blacklist as a user warning if (sizeof($this->hostBlacklist) > 0) { @@ -1272,10 +1393,18 @@ class MetaGer $this->domainBlacklist[] = substr($blacklistElement, strpos($blacklistElement, "*.") + 2); } } - } else if (strpos($blacklistString, "*.") === 0) { + } elseif (strpos($blacklistString, "*.") === 0) { $this->domainBlacklist[] = substr($blacklistString, strpos($blacklistString, "*.") + 2); } } + foreach (Cookie::get() as $key => $value) { + if (stripos($key, $this->fokus.'_blpage') === 0 && stripos($value, '*.') === 0) { + $this->domainBlacklist[] = str_replace("*.", "", $value); + } + } + + $this->domainBlacklist = array_unique($this->domainBlacklist); + // print the domain blacklist as a user warning if (sizeof($this->domainBlacklist) > 0) { $domainString = ""; @@ -1619,9 +1748,14 @@ class MetaGer $cookies = \Cookie::get(); $count = 0; + $sumaFile = MetaGer::getLanguageFile(); + $sumaFile = json_decode(file_get_contents($sumaFile), true); + $foki = array_keys($sumaFile['foki']); + foreach ($cookies as $key => $value) { - if (starts_with($key, [$this->getFokus() . "_setting_", $this->getFokus() . "_engine_"])) { + if (starts_with($key, [$this->getFokus() . "_setting_", $this->getFokus() . "_engine_", $this->getFokus() . "_blpage"])) { $count++; + continue; } } return $count; @@ -1827,6 +1961,36 @@ class MetaGer return $this->engines; } + public function setAdgoalHash($hash) + { + $this->adgoalHash = $hash; + } + + public function getAdgoalHash() + { + return $this->adgoalHash; + } + + public function isAdgoalLoaded() + { + return $this->adgoalLoaded; + } + + public function setAdgoalLoaded($adgoalLoaded) + { + $this->adgoalLoaded = $adgoalLoaded; + } + + public function isApiAuthorized() + { + return $this->apiAuthorized; + } + + public function setApiAuthorized($authorized) + { + $this->apiAuthorized = $authorized; + } + public function isFramed() { return $this->framed; diff --git a/app/Models/Result.php b/app/Models/Result.php index 4c88ee51b55de08be810bbae417130c97d8ae95c..05c2ac78bfb4bf28a9fc959efb188e8de8e26d17 100644 --- a/app/Models/Result.php +++ b/app/Models/Result.php @@ -31,6 +31,7 @@ class Result public $strippedLinkAnzeige; # Der Link in Form "foo.bar.de/test" public $rank; # Das Ranking für das Ergebnis public $new = true; + public $adgoalChanged = false; # Erstellt ein neues Ergebnis public function __construct($provider, $titel, $link, $anzeigeLink, $descr, $gefVon, $gefVonLink, $sourceRank, $additionalInformation = []) diff --git a/app/Models/Searchengine.php b/app/Models/Searchengine.php index 9cafcf0c61aa5b5d1542b6054ae25ec13127b327..32c4021770bffa28fe75623ddc9c46618f4dc092 100644 --- a/app/Models/Searchengine.php +++ b/app/Models/Searchengine.php @@ -3,9 +3,7 @@ namespace App\Models; use App\MetaGer; -use Cache; use Illuminate\Support\Facades\Redis; -use Log; abstract class Searchengine { @@ -111,7 +109,8 @@ abstract class Searchengine # Standardimplementierung der getNext Funktion, damit diese immer verwendet werden kann public function getNext(MetaGer $metager, $result) - {} + { + } # Prüft, ob die Suche bereits gecached ist, ansonsted wird sie als Job dispatched public function startSearch(\App\MetaGer $metager, &$timings) @@ -151,6 +150,7 @@ abstract class Searchengine "password" => $this->password, "headers" => $this->headers, "cacheDuration" => $this->cacheDuration, + "name" => $this->name ]; $mission = json_encode($mission); @@ -198,21 +198,18 @@ abstract class Searchengine if ($this->loaded) { return true; } - - if ($this->cached) { - if ($body === "no-result") { - $body = ""; + if (!$this->cached && empty($body)) { + $body = Redis::rpoplpush($this->hash, $this->hash); + if ($body === false) { + return $body; } - } else { - $body = Redis::get($this->hash); + } + + if ($body === "no-result") { + $body = ""; } if ($body !== null) { - try { - Cache::put($this->hash, $body, $this->cacheDuration * 60); - } catch (\Exception $e) { - Log::error($e->getMessage()); - } $this->loadResults($body); $this->getNext($metager, $body); $this->markNew(); @@ -288,4 +285,9 @@ abstract class Searchengine { $this->new = $new; } + + public function setCached($cached) + { + $this->cached = $cached; + } } diff --git a/app/PrometheusExporter.php b/app/PrometheusExporter.php index 4a183420e129da50f0f8f9ec54e56f98a8746dc6..399b3757d0f5d7ca12b586c742352a7ad44efbc4 100644 --- a/app/PrometheusExporter.php +++ b/app/PrometheusExporter.php @@ -43,7 +43,7 @@ class PrometheusExporter public static function Duration($duration, $type) { $registry = \Prometheus\CollectorRegistry::getDefault(); - $histogram = $registry->getOrRegisterHistogram('metager', 'request_time', 'Loading Times for different cases', ['type'], [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3]); + $histogram = $registry->getOrRegisterHistogram('metager', 'request_time', 'Loading Times for different cases', ['type'], [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 15.0, 20.0, 30.0, 35.0]); $histogram->observe($duration, [$type]); } } diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index bdf168cc0e8561bb226705f25721d93c78f8dfba..81570d51a2b9b28ea77644759d81a7d64e483da5 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -216,6 +216,11 @@ spec: image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" command: ["su"] args: ["-s", "/bin/sh", "-c", "php artisan requests:fetcher", "nginx"] + volumeMounts: + - name: env-files + mountPath: /html/.env + subPath: .env + readOnly: true imagePullPolicy: {{ .Values.image.pullPolicy }} livenessProbe: exec: diff --git a/composer.json b/composer.json index 407ce059478e48ba5a5fac922658a3e2356d2965..1255c1b3e02d7dd9dd1159753a3419414ba9adb6 100644 --- a/composer.json +++ b/composer.json @@ -15,9 +15,8 @@ "jenssegers/agent": "^2.6", "laravel/framework": "5.8.*", "laravel/tinker": "^1.0", - "mcamara/laravel-localization": "dev-master#13f418e481ed06f482e4fca87ec5ff67c2949373", + "mcamara/laravel-localization": "1.6.*", "mews/captcha": "^2.2", - "predis/predis": "^1.1", "symfony/dom-crawler": "^4.1" }, "require-dev": { diff --git a/config/database.php b/config/database.php index d01f9ab8ecf0e2cd33c1b12e4202e0837c1d32d6..217c5c185ececd7baf0b5a21be67d8ffedbd28b5 100644 --- a/config/database.php +++ b/config/database.php @@ -110,6 +110,7 @@ return [ 'redis' => [ + 'client' => env('REDIS_CLIENT', 'phpredis'), 'cluster' => false, 'default' => [ diff --git a/config/trustedproxy.php b/config/trustedproxy.php index cd3476603a6ca10bf85eb5e2550ed9e8874cbfe2..78aabbea7fa679dbb2b890b02738dd5eb9843e77 100644 --- a/config/trustedproxy.php +++ b/config/trustedproxy.php @@ -17,6 +17,7 @@ return [ '10.244.0.0/16', '144.76.113.134', '144.76.88.77', + '167.233.15.225', ], /* diff --git a/resources/js/scriptResultPage.js b/resources/js/scriptResultPage.js index ff57833d7f140116ba45b89821a13008f51d2840..9caa935fae20f47e858cb0f8ea3272503a5cb7f2 100644 --- a/resources/js/scriptResultPage.js +++ b/resources/js/scriptResultPage.js @@ -69,10 +69,14 @@ function loadMoreResults() { updateUrl = updateUrl.replace("/meta.ger3", "/loadMore"); var currentlyLoading = false; - + var counter = 0; // Regularily check for not yet delivered Results var resultLoader = window.setInterval(function () { if (!currentlyLoading) { + counter++; + if (counter >= 10) { + clearInterval(resultLoader); + } currentlyLoading = true; $.getJSON(updateUrl, function (data) { // Check if we can clear the interval (once every searchengine has answered) @@ -116,6 +120,17 @@ function loadMoreResults() { } } } + if (typeof data.changedResults != "undefined") { + for (var key in data.changedResults) { + var value = data.changedResults[key]; + // If there are more results than the given index we will prepend otherwise we will append the result + if (!data.imagesearch) { + $($(".result:not(.ad)")[key]).replaceWith($(value)); + } else { + $($(".image-container > .image")[key]).replaceWith($(value)); + } + } + } currentlyLoading = false; }); } diff --git a/resources/lang/de/partnershops.php b/resources/lang/de/partnershops.php index 744a424129b63490439987b546ba903a013ec32c..c3c8427de6b8ef909be3777d9f6b4bb7fc6e55cf 100644 --- a/resources/lang/de/partnershops.php +++ b/resources/lang/de/partnershops.php @@ -2,7 +2,7 @@ return [ 'heading' => 'MetaGer-Partnershop', - 'paragraph.1' => 'Wenn in der MetaGer-Ergebnisliste Links erscheinen, bei dennen das Wort "Partnershop" steht, dann sind das zunächst normale Ergebnisse einer MetaGer-Suche. Sie werden im Ranking nicht bevorzugt oder höher eingestuft, sondern wie alle anderen Suchergebnisse auch behandelt.', + 'paragraph.1' => 'Wenn in der MetaGer-Ergebnisliste Links erscheinen, bei denen das Wort "Partnershop" steht, dann sind das zunächst normale Ergebnisse einer MetaGer-Suche. Sie werden im Ranking nicht bevorzugt oder höher eingestuft, sondern wie alle anderen Suchergebnisse auch behandelt.', 'paragraph.2' => 'Hinter diesem Link steht dann eine Firma, von der wir dann, wenn der Link angeklickt wird, einen geringen Betrag zur Finanzierung von MetaGer erhalten. Beim Ergebnis wird das zugehörige Firmenlogo angezeigt. Auch daran erkennen Sie immer unsere Partnershops. Beim Anklicken (und nur dann) eines solchen Ergebnisses werden auch Nutzerdaten an die Klickadresse weitergegeben. Zu diesen Nutzerdaten gehören auch die Suchbegriffe, die Sie auf MetaGer eingegeben haben, in Verbindung mit Ihrer IP-Adresse. Wenn Sie dies vermeiden wollen, dann können Sie bei MetaGer aber auf "anonym Ã¶ffnen" klicken. Sie müssen also auch dabei Ihre Daten nicht weitergeben. Allerdings erhalten wir dann auch keinen Beitrag zur Finanzierung von MetaGer. Wir bitten Sie dann um eine Spende, damit wir MetaGer als unabhängige Alternative in einem gemeinnützigen Verein weiter entwickeln und betreiben können: <a href="/spende">www.metager.de/spende</a>', 'paragraph.3' => 'Mitglieder des SUMA_EV können unsere werbefreie Suche nutzen. <a href="/beitritt">Werden Sie Mitglied!</a>', ]; diff --git a/resources/lang/de/plugin-desktop/desktop-chrome.php b/resources/lang/de/plugin-desktop/desktop-chrome.php new file mode 100644 index 0000000000000000000000000000000000000000..9cb0337a2838f173d216fe5e2e30962fdaf8ef10 --- /dev/null +++ b/resources/lang/de/plugin-desktop/desktop-chrome.php @@ -0,0 +1,23 @@ +<?php + return[ + + //Instructions for Chrome version 49-52 + 'default-search-v49.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fas fa-bars"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.', + 'default-search-v49.2' => 'Im Bereich "Suche" klicken Sie auf "Suchmaschinen verwalten...".', + 'default-search-v49.3' => 'In der unteren Hälfte des erscheinenden Menüs fahren Sie mit der den MetaGer-Eintrag. Auf der rechten Seite des Eintrags klicken sie auf die erscheinende blaue "Als Standard"-Schaltfläche', + + //Instructions for Chrome version 53-58 + 'default-search-v53.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fa fa-ellipsis-v"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.', + 'default-search-v53.2' => 'Im Bereich "Suche" klicken Sie auf "Suchmaschinen verwalten...".', + 'default-search-v53.3' => 'In der unteren Hälfte des erscheinenden Menüs fahren Sie mit der den MetaGer-Eintrag. Auf der rechten Seite des Eintrags klicken sie auf die erscheinende blaue "Als Standard"-Schaltfläche', + + //Instructions for Chrome version >=59 + 'default-search-v59.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fa fa-ellipsis-v"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.', + 'default-search-v59.2' => 'Im Bereich "Suchmaschine" klicken Sie auf "Suchmaschinen verwalten..."', + 'default-search-v59.3' => 'In der nun angezeigten Liste, finden Sie den Eintrag "MetaGer". Fahren Sie mit der Maus über den Eintrag und klicken rechts auf <i class="fa fa-ellipsis-v"></i> und anschließend auf "Als Standard festlegen"', + + 'default-page-v49.1' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-ellipsis-v"></i> und öffnen Sie die "Einstellungen".', + 'default-page-v49.2' => 'Im Bereich "Beim Start" wählen Sie "Bestimmte Seite oder Seiten öffnen und klicken anschließend auf "Neue Seite hinzufügen" bzw. "Seite festlegen".', + 'default-page-v49.3' => 'Tragen Sie ":link" als URL bei "Neue Seite hinzufügen" ein.', + 'default-page-v49.4' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie mit der Maus drüber fahren und rechts auf das "x" klicken.', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-desktop/desktop-edge.php b/resources/lang/de/plugin-desktop/desktop-edge.php new file mode 100644 index 0000000000000000000000000000000000000000..6deb41089eddc1d40e071eb5adeb80fe5437b366 --- /dev/null +++ b/resources/lang/de/plugin-desktop/desktop-edge.php @@ -0,0 +1,28 @@ +<?php + return[ + + //Instructions for Edge version 15-17 + 'default-search-v15.1' => 'Klicken Sie in Ihrem Browser oben rechts auf "<i class="fa fa-ellipsis-h"></i>" und wählen Sie "Einstellungen".', + 'default-search-v15.2' => 'Scrollen Sie nach unten und klicken auf "Erweiterte Einstellungen".', + 'default-search-v15.3' => 'Scrollen Sie erneut nach unten bis zum Punkt "In Adressleiste suchen mit" und klicken Sie auf "Ändern".', + 'default-search-v15.4' => 'Wählen Sie "MetaGer: Sicher suchen & finden..." und klicken Sie auf "Als Standard"', + + //Instructions for Edge version 18 + 'default-search-v18.1' => 'Klicken Sie in Ihrem Browser oben rechts auf "<i class="fa fa-ellipsis-h"></i>" und wählen Sie "Einstellungen".', + 'default-search-v18.2' => 'Wählen Sie den Reiter "Erweitert".', + 'default-search-v18.3' => 'Scrollen Sie nach unten bis zum Punkt "In Adressleiste suchen mit" und klicken Sie auf "Ändern".', + 'default-search-v18.4' => 'Wählen Sie "MetaGer: Sicher suchen & finden..." und klicken Sie auf "Als Standard".', + + //Instructions for Edge version >= 80 + 'default-search-v80.1' => 'Geben Sie "edge://settings/searchEngines" in der Adressleiste ein um in die Suchmaschineneinstellungen zu gelangen.', + 'default-search-v80.2' => 'Klicken Sie neben dem Eintrag von MetaGer auf "<i class="fa fa-ellipsis-h"></i>" und wählen Sie "Als Standard".', + + 'default-page-v15.1' => 'Klicken Sie oben rechts im Browser auf "<i class="fa fa-ellipsis-h"></i>" und öffnen Sie die "Einstellungen".', + 'default-page-v15.2' => 'Wählen Sie unter "Startseite festlegen" bzw. "Edge öffnen mit" "eine bestimmte Seite" und tragen ":link"', + 'default-page-v15.3' => 'Klicken Sie auf <i class="fas fa-save"></i> um MetaGer als Standardsuchmaschine zu speichern.', + + 'default-page-v80.1' => 'Geben Sie "edge://settings/onStartup" in die Adressleiste ein um in die Einstellungen "Beim Start" zu gelangen.', + 'default-page-v80.2' => 'Wählen Sie "Bestimmte Seite oder Seiten öffnen" und tragen ":link" als URL bei "Neue Seite hinzufügen" ein.', + 'default-page-v80.3' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie mit der Maus drüber fahren und rechts auf "<i class="fa fa-ellipsis-h"></i>" klicken.', + + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-desktop/desktop-firefox.php b/resources/lang/de/plugin-desktop/desktop-firefox.php new file mode 100644 index 0000000000000000000000000000000000000000..ea217513e0c581ac147610237ce07f0b856c5d2b --- /dev/null +++ b/resources/lang/de/plugin-desktop/desktop-firefox.php @@ -0,0 +1,31 @@ +<?php + return[ + + //Instructions for Firefox version 52-56 + 'default-search-v52.1' => 'Klicken Sie oben rechts neben der Adressleiste auf die Lupe mit dem Plussymbol.', + 'default-search-v52.2' => 'Wählen Sie im erscheinenden Menü das MetaGer-Logo mit dem Plussymbol.', + 'default-search-v52.3' => 'Geben Sie "about:preferences#search" in die Adressleiste ein um in die Sucheinstellungen zu gelangen.', + 'default-search-v52.4' => 'Im Dropdownmenü unter "Standardsuchmaschine" steht Ihnen nun MetaGer zur Verfügung.', + + //Instructions for Firefox version 57-60 + 'default-search-v57.1' => 'Geben Sie "about:preferences#search" in der Adressleiste ein um in die Sucheinstellungen zu gelangen.', + 'default-search-v57.2' => 'Wählen Sie in den erscheinenden Einstellungen "Suchleiste zur Symbolleiste hinzufügen".', + 'default-search-v57.3' => 'Wechseln Sie zurück in den Tab, in dem MetaGer offen ist und klicken Sie oben rechts neben der Adressleiste auf die Lupe mit dem Plussymbol.', + 'default-search-v57.4' => 'Klicken Sie im erscheinenden Menü auf das MetaGer-Logo mit dem Plussymbol.', + 'default-search-v57.5' => 'Gehen Sie wieder in den Tab mit den geöffneten Einstellungen. Im Dropdownmenü unter "Standardsuchmaschine" steht Ihnen nun MetaGer zur Verfügung.', + + //Instructions for Firefox version >= 61 + 'plugin' => 'Das Plugin für Firefox können Sie <a href="https://addons.mozilla.org/de/firefox/addon/metager-suche/?src=search" target="_blank">hier</a> herunterladen.', + 'default-search-v61.1' => 'Alternativ klicken Sie in Ihrem Browser oben rechts in der Adressleiste auf "<i class="fas fa-ellipsis-h"></i>" um das Menü der Seitenaktionen zu öffnen und dann auf "Suchmaschine hinzufügen"', + 'default-search-v61.2' => 'Geben Sie "about:preferences#search" in der Adressleiste ein um in die Sucheinstellungen zu gelangen. Im Bereich "Standardsuchmaschine" wählen Sie MetaGer aus.', + + //Instructions for Firefox version 52-60 + 'default-page-v52.1' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-bars" aria-hidden="true"></i><span class="sr-only">die drei horizontalen Striche</span> und öffnen Sie die "Einstellungen".', + 'default-page-v52.2' => 'Tragen Sie im Feld "Startseite" ":link" ein.', + + //Instructions for Firefox version >= 61 + 'default-page-v61.1' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-bars" aria-hidden="true"></i><span class="sr-only">die drei horizontalen Striche</span> und öffnen Sie die "Einstellungen".', + 'default-page-v61.2' => 'Wählen Sie auf der linken Seite die Kategorie "Startseite" ', + 'default-page-v61.3' => 'Unter "Neue Fenster und Tabs" klicken Sie auf das Dropdownmenü neben "Startseite und neue Fenster" und wählen "Benutzerdefinierte Adresse".', + 'default-page-v61.4' => 'Tragen Sie in das erscheinende Textfeld ":link" ein.', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-desktop/desktop-ie.php b/resources/lang/de/plugin-desktop/desktop-ie.php new file mode 100644 index 0000000000000000000000000000000000000000..8f38a08ee041ea78fc3af1545a330450ed4538cd --- /dev/null +++ b/resources/lang/de/plugin-desktop/desktop-ie.php @@ -0,0 +1,18 @@ +<?php + return[ + + //Instructions for IE 9-10 + 'default-search-v9.1' => 'Klicken Sie <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">hier</a>, um MetaGer als Suchmaschine hinzuzufügen.', + 'default-search-v9.2' => 'Wählen Sie "Diese Suchmaschine als Standard einstellen" aus und klicken auf "Hinzufügen".', + + //Instructions for IE 11 + 'default-search-v11.1' => 'Klicken Sie <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">hier</a>, um MetaGer als Suchmaschine hinzuzufügen.', + 'default-search-v11.2' => 'Klicken Sie in Ihrem Browser oben rechts auf "<i class="fa fa-cog" aria-hidden="true"></i>".', + 'default-search-v11.3' => 'Wählen Sie den Menüpunkt "Add-Ons verwalten".', + 'default-search-v11.4' => 'Klicken Sie im Bereich "Add-On-Typen" auf "Suchanbieter" und anschließend im rechten Bereich auf MetaGer.', + 'default-search-v11.5' => 'Bestätigen Sie unten mit dem Knopf "Als Standard".', + + 'default-page-v9.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.', + 'default-page-v9.2' => 'Im neuen Tab klicken Sie oben links auf den Pfeil neben dem <i class="fas fa-home" aria-hidden="true"></i> und anschließend auf "Startseite ändern oder hinzufügen".', + 'default-page-v9.3' => 'Im erscheinenden Popup wählen Sie "Diese Seite als einzige Startseite nutzen" und anschließend auf "Ja".', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-desktop/desktop-opera.php b/resources/lang/de/plugin-desktop/desktop-opera.php new file mode 100644 index 0000000000000000000000000000000000000000..e2633078114c90e7fb00f43d7cc97e11d182cd0e --- /dev/null +++ b/resources/lang/de/plugin-desktop/desktop-opera.php @@ -0,0 +1,14 @@ +<?php + return[ + + //Instructions for Opera versions >=36 + 'default-search-v36.1' => 'Klicken Sie mit der rechten Maustaste auf das Sucheingabefeld am Ende dieser Anleitung.', + 'default-search-v36.2' => 'Wählen Sie im Kontextmenü "Suchmaschine erstellen...".', + 'default-search-v36.3' => 'Klicken Sie im Popup auf "erstellen".', + //link to desktop-unable + + 'default-page-v36.1' => 'Klicken Sie oben links im Browser auf das Opera-Symbol bzw. "Menü" und öffnen Sie die "Einstellungen".', + 'default-page-v36.2' => 'Im Bereich "Beim Start" wählen Sie "Bestimmte Seite oder Seiten öffnen und klicken anschließend auf "Neue Seite hinzufügen" bzw. "Seite festlegen".', + 'default-page-v36.3' => 'Tragen Sie ":link" als URL bei "Neue Seite hinzufügen" ein.', + 'default-page-v36.4' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie neben dem Eintrag auf "<i class="fas fa-ellipsis-h"></i>" klicken.', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-desktop/desktop-safari.php b/resources/lang/de/plugin-desktop/desktop-safari.php new file mode 100644 index 0000000000000000000000000000000000000000..711a0696f3b27a3c2a74781ab4bc22dd35462b13 --- /dev/null +++ b/resources/lang/de/plugin-desktop/desktop-safari.php @@ -0,0 +1,8 @@ +<?php + return[ + + //link to unable + 'default-page-v10.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.', + 'default-page-v10.2' => 'Klicken Sie oben links auf "Safari" und wählen Sie "Einstellungen".', + 'default-page-v10.3' => 'Klicken Sie unter dem Punkt "Startseite" auf die Schaltfläche "Aktuelle Seite einstellen".' + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-desktop/desktop-vivaldi.php b/resources/lang/de/plugin-desktop/desktop-vivaldi.php new file mode 100644 index 0000000000000000000000000000000000000000..486cd2f020f9c51d57eb465442a7de53b9d7bd43 --- /dev/null +++ b/resources/lang/de/plugin-desktop/desktop-vivaldi.php @@ -0,0 +1,11 @@ +<?php + return[ + + //Instructions for Vivaldi version 3.3 + 'default-search-v3-3.1' => 'Klicken Sie mit der rechten Maustaste auf das Sucheingabefeld unter der Anleitung.', + 'default-search-v3-3.2' => 'Wählen Sie im Kontextmenü "Suche erstellen..."', + 'default-search-v3-3.3' => 'Klicken Sie im Popup auf "Als Standard-Suche festlegen" und anschließend auf "Hinzufügen".', + + 'default-page-v3-3.1' => 'Klicken Sie oben links auf das Vivaldi-Symbol und wählen Sie unter "Extras" den Menüpunkt "<i class="fa fa-cog" aria-hidden="true"></i> Einstellungen"', + 'default-page-v3-3.2' => 'Im erscheinenden Fenster unter "Startseite" wählen Sie "Benutzerdefiniert:" und tragen :link ein.', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-mobile/mobile-chrome.php b/resources/lang/de/plugin-mobile/mobile-chrome.php new file mode 100644 index 0000000000000000000000000000000000000000..dbe5edc5104047e53ae62ce436ab72398cd0916f --- /dev/null +++ b/resources/lang/de/plugin-mobile/mobile-chrome.php @@ -0,0 +1,15 @@ +<?php + return[ + + 'default-search-v83.1' => 'Tippen Sie in Ihrem Browser oben rechts auf "<i class="fas fa-ellipsis-v"></i>" um das Browsermenü zu öffnen.', + 'default-search-v83.2' => 'Wählen Sie den Menüpunkt "Einstellungen".', + 'default-search-v83.3' => 'In dem dann erscheinenden Menü wählen Sie in der Kategorie "Grundeinstellungen" den Menüpunkt "Suchmaschine".', + 'default-search-v83.4' => 'Tippen Sie in der Kategorie "Kürzlich besucht" auf MetaGer.', + 'default-search-v83.5' => 'Sollte der MetaGer-Eintrag bei Ihnen nicht vorhanden sein, nutzen Sie die Suchleiste unterhalb der Anleitung für eine Suchanfrage und versuchen Sie es erneut.', + + 'default-page-v83.1' => 'Tippen Sie in Ihrem Browser oben rechts auf "<i class="fas fa-ellipsis-v"></i>" um das Browsermenü zu öffnen.', + 'default-page-v83.2' => 'Wählen Sie den Menüpunkt "Einstellungen".', + 'default-page-v83.3' => 'In dem dann erscheinenden Menü wählen Sie in der Kategorie "Erweitert" den Menüpunkt "Startseite".', + 'default-page-v83.4' => 'Tippen Sie auf "Benutzerdefinierte Webadresse eingeben" und tragen ":link" ein.', + + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-mobile/mobile-edge.php b/resources/lang/de/plugin-mobile/mobile-edge.php new file mode 100644 index 0000000000000000000000000000000000000000..277a664dcb9d3ddcb7b7f3954310c40a6ed5c177 --- /dev/null +++ b/resources/lang/de/plugin-mobile/mobile-edge.php @@ -0,0 +1,14 @@ +<?php + return[ + + 'default-search-v45.1' => 'Tippen Sie in Ihrem Browser unten in der Mitte auf "<i class="fas fa-ellipsis-h"></i>" um das Browsermenü zu öffnen.', + 'default-search-v45.2' => 'Wählen Sie den Menüpunkt Einstellungen auf der rechten Seite des erscheinenden Menüs.', + 'default-search-v45.3' => 'Scrollen Sie nach unten und tippen in der Kategorie "Erweitert" auf "Suchen".', + 'default-search-v45.4' => 'Tippen Sie auf "Standardsuchmaschine" und wählen Sie in der Kategorie "Kürzlich besucht" MetaGer aus.', + 'default-search-v45.5' => 'Sollte der MetaGer-Eintrag bei Ihnen nicht vorhanden sein, nutzen Sie die Suchleiste unterhalb der Anleitung für eine Suchanfrage und versuchen Sie es erneut.', + + 'default-page-v45.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.', + 'default-page-v45.2' => 'Tippen Sie in Ihrem Browser unten in der Mitte auf "<i class="fas fa-ellipsis-h"></i>" um das Browsermenü zu öffnen.', + 'default-page-v45.3' => 'Tippen Sie in der Kategorie "Grundlegend" auf "Startseite".', + 'default-page-v45.4' => 'Wählen Sie "Bestimmte Seite" und tippen Sie auf "Aktuelle Seite verwenden" und anschließend auf "Speichern".', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-mobile/mobile-firefox-klar.php b/resources/lang/de/plugin-mobile/mobile-firefox-klar.php new file mode 100644 index 0000000000000000000000000000000000000000..6e6d1bf33c79852295f78522c2bf68db3f34b205 --- /dev/null +++ b/resources/lang/de/plugin-mobile/mobile-firefox-klar.php @@ -0,0 +1,10 @@ +<?php + return[ + + 'search-string' => 'Such-String:', + + 'default-search-v8-8' => 'Öffnen Sie die Einstellungen Ihres Browsers über das Zahnrad (unter Android <i class="fas fa-ellipsis-v"></i>) rechts neben der Suchleiste', + 'default-search-v8-8' => 'Klicken Sie unter dem Menüpunkt "Suche" auf "Suchmaschine". Aktuell wird die voreingestellte Suchmaschine angezeigt.', + 'default-search-v8-8' => 'Klicken Sie auf "Weitere Suchmaschine hinzufügen": Geben Sie "MetaGer" als Namen und den Suchstring ein.', + 'default-search-v8-8' => 'Achten Sie hierbei darauf, dass sich keine Leerzeichen am Ende des Suchstrings "einschleichen", da Firefox Klar die Speicherung der Einstellung sonst verweigert.', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-mobile/mobile-firefox.php b/resources/lang/de/plugin-mobile/mobile-firefox.php new file mode 100644 index 0000000000000000000000000000000000000000..e2ed138cba772494fccda9cc07e150f770b526aa --- /dev/null +++ b/resources/lang/de/plugin-mobile/mobile-firefox.php @@ -0,0 +1,17 @@ +<?php + return[ + + 'search-string' => 'Such-String:', + + //Instructions for Firefox Mobile version < 80 + 'default-search-vlt80.1' => 'Tippen und halten Sie mit dem Finger auf dem unten stehenden Suchfeld gedrückt.', + 'default-search-vlt80.2' => 'Im geöffneten Kontextmenü können Sie "Suchmaschine hinzufügen" auswählen', + 'default-search-vlt80.3' => 'In den Browsereinstellungen haben Sie nun die Möglichkeit im Bereich "Suchen" MetaGer als Standardsuchmaschine zu wählen.', + + //Instructions for Firefox Mobile version >= 80 + 'default-search-v80.1' => 'Tippen Sie in Ihrem Browser unten rechts auf "<i class="fas fa-ellipsis-v"></i>" um das Browsermenü zu öffnen.', + 'default-search-v80.2' => 'Wählen Sie den Menüpunkt Einstellungen.', + 'default-search-v80.3' => 'In dem dann erscheinenden Menü wählen Sie in der Kategorie "Allgemein" den Menüpunkt "Suchen".', + 'default-search-v80.4' => 'Tippen Sie auf "+ Suchmaschine hinzufügen".', + 'default-search-v80.5' => 'Wählen Sie "Andere" aus und tragen darunter den Namen (MetaGer) und den Such-String ein. Bestätigen Sie mit "<i class="fas fa-check"></i>" in der rechten oberen Ecke.', + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-mobile/mobile-opera.php b/resources/lang/de/plugin-mobile/mobile-opera.php new file mode 100644 index 0000000000000000000000000000000000000000..e061a35845f1a18bdd2d98a364c5ef2dc65348e8 --- /dev/null +++ b/resources/lang/de/plugin-mobile/mobile-opera.php @@ -0,0 +1,9 @@ +<?php + return[ + + 'default-search-v60.1' => 'Tippen und halten Sie mit dem Finger auf das Sucheingabefeld unter der Anleitung.', + 'default-search-v60.2' => 'Wählen Sie im erscheinenden Menü "Suchmaschine hinzufügen...".', + 'default-search-v60.3' => 'Tippen Sie im Popup auf "OK".', + 'default-search-v60.4' => 'Nun können Sie in einem neuen Tab durch das Tippen auf das Logo Ihrer Standardsuchmaschine MetaGer auswählen', + //link to mobile-unable + ]; \ No newline at end of file diff --git a/resources/lang/de/plugin-page.php b/resources/lang/de/plugin-page.php index 8890a276f35b1dbf93469b90bb89dbb0898a0053..5e2d5cc3f2566f06c472fc211a53230a3634bfeb 100644 --- a/resources/lang/de/plugin-page.php +++ b/resources/lang/de/plugin-page.php @@ -2,7 +2,8 @@ return [ 'open-modal' => 'MetaGer-Plugin hinzufügen', - 'open-modal.title' => 'MetaGer zu Ihren Browser hinzufügen', + 'open-modal.title' => 'MetaGer zu Ihrem Browser hinzufügen', + 'head.0' => 'Firefox installieren und MetaGer hinzufügen', 'head.1' => 'MetaGer zum Firefox hinzufügen', 'head.2' => 'MetaGer zum Chrome hinzufügen', 'head.3' => 'MetaGer zum Opera hinzufügen', @@ -11,75 +12,19 @@ return [ 'head.6' => 'MetaGer zum Safari hinzufügen', 'head.7' => 'MetaGer zum Vivaldi hinzufügen', 'head.8' => 'MetaGer zum Firefox Klar hinzufügen', + 'head.9' => 'MetaGer zum UCBrowser hinzufügen', + 'head.10' => 'Metager zum Samsung hinzufügen', + 'browser-download' => 'Firefox herunterladen', + 'firefox-plugin' => 'MetaGer als Standardsuchmaschine mit Add-on einrichten', + 'firefox-default-search' => 'MetaGer als Standardsuchmaschine ohne Add-on einrichten', 'default-search' => 'MetaGer als Standardsuchmaschine einrichten', - - 'firefox.plugin' => 'Das Plugin für Firefox können Sie <a href="https://addons.mozilla.org/de/firefox/addon/metager-suche/?src=search" target="_blank">hier</a> herunterladen.', - 'firefox.1' => 'Klicken Sie in Ihrem Browser oben rechts in der Adressleiste auf "<i class="fas fa-ellipsis-h"></i>" um das Menü der Seitenaktionen zu öffnen und dann auf "Suchmaschine hinzufügen" (siehe Bild)', - 'firefox.2' => 'Öffnen Sie die Firefox Einstellungen. Geben Sie hierfür "about:preferences#search" in die Adressleiste ein. Im Bereich "Standardsuchmaschine" wählen Sie MetaGer aus (siehe Bild).', - 'firefox.3' => 'MetaGer als Startseite im :browser einrichten', - 'firefox.4' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-bars" aria-hidden="true"></i><span class="sr-only">die drei horizontalen Striche</span> (Menü) und öffnen Sie die "Einstellungen"', - 'firefox.5' => 'Tragen Sie im Feld "Startseite" "https://metager.de" ein.', - - 'firefox-klar.1' => 'Öffnen Sie die Einstellungen Ihres Browsers über das Zahnrad (unter Android <i class="fa fa-ellipsis-v"></i>) rechts neben der Suchleiste', - 'firefox-klar.2' => 'Klicken Sie unter dem Menüpunkt "Suche" auf "Suchmaschine". Aktuell wird die voreingestellte Suchmaschine angezeigt.', - 'firefox-klar.3' => 'Klicken Sie auf "Weitere Suchmaschine hinzufügen": Geben Sie "MetaGer" als Namen und "https://metager.de/meta/meta.ger3?eingabe=%s" als Suchstring ein.', - 'firefox-klar.4' => 'Achten Sie hierbei darauf, dass sich keine Leerzeichen am Ende des Suchstrings "einschleichen", da Firefox Klar die Speicherung der Einstellung sonst verweigert.', - - 'chrome.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fa fa-ellipsis-v"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.', - 'chrome.2' => 'Im Bereich "Suchen" klicken Sie auf Suchmaschinen verwalten...', - 'chrome.3' => 'In der nun angezeigten Liste, finden Sie den Eintrag "MetaGer". Fahren Sie mit der Maus über den Eintrag und klicken auf "Als Standard festlegen"', - 'chrome.4' => 'MetaGer als Startseite im :browser einrichten', - 'chrome.5' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-ellipsis-v"></i> und öffnen Sie die "Einstellungen"', - 'chrome.6' => 'Im Bereich "Beim Start" wählen Sie "Bestimmte Seite oder Seiten öffnen und klicken anschließend auf "Seiten festlegen"', - 'chrome.7' => 'Tragen Sie "https://metager.de" als URL bei "Neue Seite hinzufügen ein"', - 'chrome.8' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie mit der Maus drüber fahren und rechts auf das "x" klicken.', - - 'opera.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.', - 'opera.2' => 'Im neuen Tab klicken Sie mit der rechten Maustaste auf das Sucheingabefeld in der Mitte der Seite.', - 'opera.3' => 'Wählen Sie im Kontextmenü "Suchmaschine erstellen..."', - 'opera.4' => 'Klicken Sie im Popup auf "erstellen"', - 'opera.5' => '(Leider ist es Suchmaschinen nicht mehr möglich im Opera als Standard eingestellt zu werden, aber <a href="https://www.mozilla.org/de/firefox/new/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, der dies unterstützt.)', - 'opera.6' => 'MetaGer als Startseite im :browser einrichten', - 'opera.7' => 'Klicken Sie im Browser-Menü auf "Bearbeiten"->"Einstellungen"', - 'opera.8' => 'Im Bereich "Beim Starten" wählen Sie "Eine bestimmte Seite, oder bestimmte Seiten öffnen -" und anschließend "Seiten festlegen"', - 'opera.9' => 'Tragen Sie bei "Adresse eingeben" "https://metager.de" ein und bestätigen mit Enter', - 'opera.10' => 'Klicken Sie auf "OK"', - - 'IE.1' => 'Klicken Sie <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">hier</a>, um MetaGer als Suchmaschine hinzuzufügen', - 'IE.4' => 'Klicken Sie in Ihrem Browser oben rechts auf Extras', - 'IE.5' => 'Wählen Sie den Menüpunkt "Add-Ons verwalten"', - 'IE.6' => 'Klicken Sie im Bereich Add-On-Typen auf "Suchanbieter" und danach im rechten Bereich auf "MetaGer"', - 'IE.7' => 'Wählen Sie unten den Knopf "Als Standard"', - 'IE.8' => 'MetaGer als Startseite im :browser einrichten', - 'IE.9' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-cog"></i> und öffnen Sie die "Internetoptionen"', - 'IE.10' => 'Falls MetaGer die einzige Startseite sein soll, markieren Sie im Textfeld den kompletten Text und ersetzen Ihn durch "https://metager.de"', - 'IE.11' => 'Klicken Sie auf "OK"', - - 'edge.1' => 'Klicken Sie in Ihrem Browser oben rechts auf Extras (', - 'edge.2' => ') und wählen Sie "Einstellungen"', - 'edge.3' => 'Scrollen Sie nach unten und klicken auf "Erweiterte Einstellungen anzeigen"', - 'edge.4' => 'Scrollen Sie erneut nach unten bis zum Punkt "In Adressleiste suchen mit" und klicken Sie auf "Ändern"', - 'edge.5' => 'Wählen Sie "MetaGer: Sicher suchen & finden..." und klicken Sie auf "Als Standard"', - 'edge.6' => 'MetaGer als Startseite im :browser einrichten', - 'edge.7' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-ellipsis-h"></i> und öffnen Sie die "Einstellungen"', - 'edge.8' => 'Wählen Sie im Bereich "Öffnen mit" den Punkt "Bestimmte Seite(n)" aus', - 'edge.9' => 'Im Dropdown-Menü darunter wählen Sie "Benutzerdefiniert" aus', - 'edge.10' => 'Im Bereich darunter tragen Sie "https://metager.de" in das Feld "Webadresse eingeben" ein und klicken auf das "+" Symbol', - 'edge.11' => 'Entfernen Sie alle Einträge, die beim Start nicht geöffnet werden sollen (z.B. about:start), indem Sie rechts auf das kleine "x" klicken.', - - 'safari.1' => 'Leider können Sie MetaGer nicht zum Safari hinzufügen, weil alle Plugins, die dem Hinzufügen alternativer Suchmaschinen dienten, nicht mehr akzeptiert werden.', - - - 'vivaldi.1' => 'Klicken Sie in Ihrem Browser oben links auf das rote Vivaldi Logo und wählen Sie zuerst "Werkzeuge", dann im Untermenü "Einstellungen".', - 'vivaldi.2' => 'In dem dann erscheinenden Menu wählen Sie bitte "Suche".', - 'vivaldi.3' => 'Wählen Sie "Neue Suche hinzufügen".', - 'vivaldi.4' => 'Tragen Sie im Feld URL "https://metager.de/meta/meta.ger3?eingabe=%s" ein.', - 'vivaldi.5' => 'Tragen Sie als Beschreibung "MetaGer" und als Kürzel "mg" ein.', - 'vivaldi.6' => 'Wenn Sie MetaGer als Standardsuchmaschine verwenden möchten, setzen Sie ein Häkchen bei "Als Standard setzen".', - 'vivaldi.7' => 'Klicken Sie auf "Hinzufügen".', - 'vivaldi.8' => 'MetaGer als Startseite im :browser einrichten', - 'vivaldi.9' => 'Klicken Sie in Ihrem Browser oben links auf das rote Vivaldi Logo und wählen Sie zuerst "Werkzeuge", dann im Untermenü "Einstellungen".', - 'vivaldi.10' => 'Tragen Sie im Feld "Startseite" "https://metager.de" ein.', + 'default-page' => 'MetaGer als Startseite einrichten', + + //Unable: Opera Desktop, Safari Desktop, UC Browser Mobile, Safari Mobile + 'desktop-unable' => 'Leider bietet der von Ihnen genutzte Browser nicht die Möglichkeit MetaGer als (Standard-)Suchmaschine einzustellen, aber <a href="https://www.mozilla.org/de/firefox/new/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, für den wir eine Anleitung haben.', + 'mobile-unable' => 'Leider bietet der von Ihnen genutzte Browser nicht die Möglichkeit MetaGer als (Standard-)Suchmaschine einzustellen, aber <a href="https://www.mozilla.org/de/firefox/mobile/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, für den wir eine Anleitung haben.', + + 'desktop-notlisted' => 'Leider ist uns bisher nicht bekannt, wie die (Standard-)Suchmaschine in dem von Ihnen genutzen Browser einzustellen ist, aber <a href="https://www.mozilla.org/de/firefox/mobile/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, bei dem wir es wissen.' , + 'mobile-notlisted' => 'Leider ist uns bisher nicht bekannt, wie die (Standard-)Suchmaschine in dem von Ihnen genutzen Browser einzustellen ist, aber <a href="https://www.mozilla.org/de/firefox/mobile/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, bei dem wir es wissen.' , ]; diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php index 773ad441c6474e9195f5c961ef6df87548015433..e0ba814efba9ab44714bd6bcac8de27b962771a7 100644 --- a/resources/lang/de/settings.php +++ b/resources/lang/de/settings.php @@ -1,33 +1,42 @@ <?php return [ - "header.1" => "Sucheinstellungen", - "text.1" => "Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im Fokus :fokusName vornehmen. Sollten diese nicht dauerhaft gespeichert bleiben, überprüfen Sie bitte in Ihren Browsereinstellungen, ob dieser beim Beenden gespeicherte Cookies löscht.", + 'header.1' => 'Sucheinstellungen', + 'text.1' => 'Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im Fokus :fokusName vornehmen. Sollten diese nicht dauerhaft gespeichert bleiben, überprüfen Sie bitte in Ihren Browsereinstellungen, ob dieser beim Beenden gespeicherte Cookies löscht.', - "hint.header" => "Hinweis", - "hint.text" => "Um Ihre Sucheinstellungen zu speichern, verwenden wir nicht-personenbeziehbare Cookies. Diese werden im Klartext in Ihrem Browser gespeichert. Sie können sich eine Ãœbersicht aller von Ihnen vorgenommenen Einstellungen und Cookies <a href=\":link\">anzeigen lassen</a>.", + 'hint.header' => 'Hinweis', + 'hint.text' => 'Um Ihre Sucheinstellungen zu speichern, verwenden wir nicht-personenbeziehbare Cookies. Diese werden im Klartext in Ihrem Browser gespeichert. Sie können sich eine Ãœbersicht aller von Ihnen vorgenommenen Einstellungen und Cookies <a href=:link>anzeigen lassen</a>.', + 'hint.loadSettings' => 'Hier finden Sie einen Link, den Sie als Startseite bzw. Lesezeichen einrichten können um Ihre aktuell gesetzen Einstellungen mitzunehmen. Der Link erstellt beim Aufrufen Cookies mit dem entsprechenden Einstellungen.', - "header.2" => "Verwendete Suchmaschinen", - "text.2" => "Nachfolgend sehen Sie alle für diesen Fokus verfügbaren Suchmaschinen. Mit einem Klick auf den Namen können Sie Ein-/Ausgeschaltet werden. Eingeschaltete Suchmaschinen sind in grün dargestellt. Ausgeschaltete in rot oder grau.", - "disabledByFilter" => "Durch Suchfilter deaktiviert:", + 'header.2' => 'Verwendete Suchmaschinen', + 'text.2' => 'Nachfolgend sehen Sie alle für diesen Fokus verfügbaren Suchmaschinen. Mit einem Klick auf den Namen können Sie Ein-/Ausgeschaltet werden. Eingeschaltete Suchmaschinen sind in grün dargestellt. Ausgeschaltete in rot oder grau.', + 'disabledByFilter' => 'Durch Suchfilter deaktiviert:', - "header.3" => "Suchfilter", - "text.3" => "An dieser Stelle können Sie Suchfilter dauerhaft setzen. Mit der Auswahl eines Suchfilters stehen nur noch Suchmaschinen zur Verfügung, welche diesen Filter unterstützen. Umgekehrt werden auch nur Suchfilter angezeigt, welche von der aktuellen Suchmaschinenauswahl unterstützt werden.", + 'header.3' => 'Suchfilter', + 'text.3' => 'An dieser Stelle können Sie Suchfilter dauerhaft setzen. Mit der Auswahl eines Suchfilters stehen nur noch Suchmaschinen zur Verfügung, welche diesen Filter unterstützen. Umgekehrt werden auch nur Suchfilter angezeigt, welche von der aktuellen Suchmaschinenauswahl unterstützt werden.', - "save" => "Speichern", - "reset" => "Alle Einstellungen löschen", - "back" => "Zurück zur letzten Seite", + 'header.4' => 'Blacklist', + 'text.4' => 'Hier können Sie Domains eintragen, welche aus Ihrer Suche ausgeschlossen werden sollen. Wenn Sie alle Subdomains einschließen wollen, starten Sie mit "*.".', + 'address' => 'Adresseingabe', - // Translations from the settings overview - 'noSettings' => "Aktuell sind keine Einstellungen gesetzt!", - 'allSettings.header' => "Auf :root gesetzte Einstellungen", - 'allSettings.text' => "Hier finden Sie eine Ãœbersicht aller von Ihnen gesetzten Einstellungen und Cookies. Sie können einzelne Einträge löschen, oder alle entfernen. Bedenken Sie, dass die zugehörigen Einstellungen dann nicht mehr verwendet werden.", - - 'meaning' => "Bedeutung", - 'actions' => "Aktionen", + 'save' => 'Speichern', + 'reset' => 'Alle Einstellungen löschen', + 'back' => 'Zurück zur letzten Seite', + 'add' => 'Hinzufügen', + 'clear' => 'Blacklist leeren', + 'copy' => 'Kopieren', - 'engineDisabled' => "Die Suchmaschine :engine wird im Fokus :focus nicht abgefragt.", - 'inFocus' => "im Fokus", - 'key' => "Ihr Schlüssel für die werbefreie Suche", - 'removeCookie' => "Diesen Cookie entfernen", + // Translations from the settings overview + 'noSettings' => 'Aktuell sind keine Einstellungen gesetzt!', + 'allSettings.header' => 'Auf :root gesetzte Einstellungen', + 'allSettings.text' => 'Hier finden Sie eine Ãœbersicht aller von Ihnen gesetzten Einstellungen und Cookies. Sie können einzelne Einträge löschen, oder alle entfernen. Bedenken Sie, dass die zugehörigen Einstellungen dann nicht mehr verwendet werden.', + + 'meaning' => 'Bedeutung', + 'actions' => 'Aktionen', + + 'engineDisabled' => 'Die Suchmaschine :engine wird im Fokus :focus nicht abgefragt.', + 'inFocus' => 'im Fokus', + 'key' => 'Ihr Schlüssel für die werbefreie Suche', + 'blentry' => 'Blacklisteintrag', + 'removeCookie' => 'Diesen Cookie entfernen', ]; diff --git a/resources/lang/de/team.php b/resources/lang/de/team.php index 0a4117d5ce5116f766e553fe0036685006a831b0..21bb3b5ec4f2e3661199bc7c64b1b5b6058cda29 100644 --- a/resources/lang/de/team.php +++ b/resources/lang/de/team.php @@ -10,6 +10,7 @@ return [ 'role.6' => 'Programmiererin', 'role.7' => 'Sekretariat', 'role.8' => 'Founder', + 'role.9' => 'Praktikant', 'contact.1' => 'Fragen/Probleme zu MetaGer etc. bitte immer an <a href="mailto:office@suma-ev.de">office@suma-ev.de</a> mailen, oder das <a href="/kontakt/">Kontaktformular mit Verschlüsselung</a> benutzten.', 'contact.2' => 'Sollten Sie jemals eine E-Mail mit seltsamem Inhalt bekommen, auf der unsere Namen und/oder unsere E-Mail Adressen als Absender genannt sind, lesen Sie bitte hier weiter: <a href="https://metager.de/wsb/fakemail/">https://metager.de/wsb/fakemail/</a>', diff --git a/resources/lang/de/tor.php b/resources/lang/de/tor.php index 80503cd3dfe8f92d188909f1e1243d7ee640006b..95fc79d121230f39737a3836dd4927f8b1048209 100644 --- a/resources/lang/de/tor.php +++ b/resources/lang/de/tor.php @@ -3,4 +3,5 @@ return [ 'description' => 'Nachfolgend finden Sie den Link zum Hidden-Service von MetaGer. Achtung: Dieser Link ist ausschließlich über das Tor-Netzwerk erreichbar. Ihr Browser produziert eine Fehlermeldung, wenn er nicht mit diesem verbunden ist.', 'torbutton' => 'Hidden-Service öffnen', + 'torurl' => 'http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/', ]; diff --git a/resources/lang/en/plugin-desktop/desktop-chrome.php b/resources/lang/en/plugin-desktop/desktop-chrome.php new file mode 100644 index 0000000000000000000000000000000000000000..2174ade6e0e3b9501fdcab1e3ff07cf085b65aca --- /dev/null +++ b/resources/lang/en/plugin-desktop/desktop-chrome.php @@ -0,0 +1,22 @@ +<?php + return[ + + //Instructions for Chrome version 49-52 + 'default-search-v49.1' => 'Navigate to the top right corner of your browser, click "<i class="fas fa-bars"></i>" and choose "Settings".', + 'default-search-v49.2' => 'Under "Search" click the button "Manage search engines...".', + 'default-search-v49.3' => 'Move your mouse over the "MetaGer" entry and click on "Make Default".', + //Instructions for Chrome version 53-58 + 'default-search-v53.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-v"></i>" and choose "Settings".', + 'default-search-v53.2' => 'Under "Search" click the button "Manage search engines...".', + 'default-search-v53.3' => 'Move your mouse over the "MetaGer" entry and click on "Make Default".', + + //Instructions for Chrome version >=59 + 'default-search-v59.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-v"></i>" and choose "Settings".', + 'default-search-v59.2' => 'Under "Search engine" click the button "Manage search engines".', + 'default-search-v59.3' => 'Click on "<i class="fa fa-ellipsis-v"></i>" next to the MetaGer entry and choose "Make default".', + + 'default-page-v49.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-v"></i>" and choose "Settings".', + 'default-page-v49.2' => 'Under "On startup" choose "Open a specific page or set of pages." and click "Set pages".', + 'default-page-v49.3' => 'Enter ":link" as URL and click OK.', + 'default-page-v49.4' => 'Hint: Every listed page in this window will be opened on startup. You can remove entries by moving your mouse over them and click "x".', + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-desktop/desktop-edge.php b/resources/lang/en/plugin-desktop/desktop-edge.php new file mode 100644 index 0000000000000000000000000000000000000000..217500fed81211b96bcf3a882bb4528eaf618195 --- /dev/null +++ b/resources/lang/en/plugin-desktop/desktop-edge.php @@ -0,0 +1,28 @@ +<?php + return[ + + //Instructions for Edge version 15-17 + 'default-search-v15.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-h"></i>" and choose "Settings".', + 'default-search-v15.2' => 'Scroll down and click "Advanced settings".', + 'default-search-v15.3' => 'Scroll down again and under "Search in the address bar with" click "Change search engine".', + 'default-search-v15.4' => 'Choose "MetaGer: privacy protected search & find" and click "Set as default".', + + //Instructions for Edge version 18 + 'default-search-v18.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-h"></i>" and choose "Settings".', + 'default-search-v18.2' => 'Click on "advanced" on the left side of the new menu', + 'default-search-v18.3' => 'Scroll down and under "Address bar search" click "Change search provider".', + 'default-search-v18.4' => 'Choose "MetaGer: privacy protected search & find" and click "Set as default".', + + //Instructions for Edge version >= 80 + 'default-search-v80.1' => 'Open a new tab and enter "edge://settings/searchEngines" in your address bar to access the search engine settings.', + 'default-search-v80.2' => 'Click on "<i class="fa fa-ellipsis-h"></i>" next to the MetaGer entry and choose "Make default".', + + 'default-page-v15.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-h"></i>" and choose "Settings".', + 'default-page-v15.2' => 'Choose under "Open Microsoft Edge with" "A specific page or pages" and enter ":link".', + 'default-page-v15.3' => 'By clicking "<i class="fas fa-save"></i>" you add MetaGer to the start up list.', + + 'default-page-v80.1' => 'Open a new tab and enter "edge://settings/onStartup" in your address bar to access the start-up settings', + 'default-page-v80.2' => 'Choose "Open a specific page or pages" and enter ":link" as URL in "Add a new page" ein. Click "Add".', + 'default-page-v80.3' => 'Hint: Every listed page in this window will be opened on startup. You can remove entries by moving your mouse over them, click "<i class="fa fa-ellipsis-h"></i>" and choose "Delete".', + + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-desktop/desktop-firefox.php b/resources/lang/en/plugin-desktop/desktop-firefox.php new file mode 100644 index 0000000000000000000000000000000000000000..4a8ad9ea9dbaaa2fdff6cc8cc9160b4af4aa9659 --- /dev/null +++ b/resources/lang/en/plugin-desktop/desktop-firefox.php @@ -0,0 +1,31 @@ +<?php + return[ + + //Instructions for Firefox version 52-56 + 'default-search-v52.1' => 'Navigate to the top right corner and click next to the address bar on the magnifier icon.', + 'default-search-v52.2' => 'In the new menu click "Add "MetaGer ...""', + 'default-search-v52.3' => 'Enter "about:preferences#search" in your address bar to access the search settings.', + 'default-search-v52.4' => 'Choose MetaGer from the dropdown menu under "Default Search Engine".', + + //Instructions for Firefox version 57-60 + 'default-search-v57.1' => 'Open a new tab and enter "about:preferences#search" to access the "Search" settings.', + 'default-search-v57.2' => 'Under "Search Bar" choose "Add search bar in toolbar".', + 'default-search-v57.3' => 'Go back to the MetaGer tab and click on the magnifier on the right next to the address bar.', + 'default-search-v57.4' => 'In the new menu click "Add "MetaGer ...""', + 'default-search-v57.5' => 'Go back to the Settings tab. Choose MetaGer from the dropdown menu under "Default Search Engine".', + + //Instructions for Firefox version >= 61 + 'plugin' => 'You can download our plugin <a href="https://addons.mozilla.org/en-US/firefox/addon/metager-searchengine/" target="_blank">here</a>.', + 'default-search-v61.1' => 'Alternatively click "<i class="fas fa-ellipsis-h"></i>" on the right side in your address bar and choose "Add Search Engine".', + 'default-search-v61.2' => 'Enter "about:preferences#search" in the address bar. Choose MetaGer from the dropdown menu under "Default Search Engine".', + + //Instructions for Firefox version 52-60 + 'default-page-v52.1' => 'Navigate to the top right corner, click "<i class="fa fa-bars"></i>" and choose "Options".', + 'default-page-v52.2' => 'Under "Home page" enter ":link" .', + + //Instructions for Firefox version >= 61 + 'default-page-v61.1' => 'Navigate to the top right corner, click "<i class="fa fa-bars"></i>" and choose "Options".', + 'default-page-v61.2' => 'Chosse Home on the left side.', + 'default-page-v61.3' => 'Under "New Windows and Tabs" click on the dropdown menu next to "Homepage and new windows" and choose "Custom URLs...".', + 'default-page-v61.4' => 'In the new text field enter ":link" .', + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-desktop/desktop-ie.php b/resources/lang/en/plugin-desktop/desktop-ie.php new file mode 100644 index 0000000000000000000000000000000000000000..0dd32d5b8d6b0cda5efca2849f6baccbd5603db7 --- /dev/null +++ b/resources/lang/en/plugin-desktop/desktop-ie.php @@ -0,0 +1,18 @@ +<?php + return[ + + //Instructions for IE 9-10 + 'default-search-v9.1' => 'Click <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">here</a> to add MetaGer as search engine.', + 'default-search-v9.2' => 'Check the "Make this my default search provider" box and click "Add".', + + //Instructions for IE 11 + 'default-search-v11.1' => 'Click <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">here</a>, to add MetaGer as search engine.', + 'default-search-v11.2' => 'Navigate to the top right corner and click "<i class="fa fa-cog" aria-hidden="true"></i>".', + 'default-search-v11.3' => 'Choose "Manage Add-Ons".', + 'default-search-v11.4' => 'On the left choose "Search Providers" and click MetaGer on the right.', + 'default-search-v11.5' => 'Click "Set as default" on the bottom right corner of the window', + + 'default-page-v9.1' => 'Click <a href="/" target="_blank" rel="noopener">here</a> to open MetaGer in a new tab.', + 'default-page-v9.2' => 'In the new tab click the arrow next to the <i class="fas fa-home" aria-hidden="true"></i> on the top left and choose "Add or change home page".', + 'default-page-v9.3' => 'In the popup choose "Use this webpage as your only home page" and click "Yes".', + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-desktop/desktop-opera.php b/resources/lang/en/plugin-desktop/desktop-opera.php new file mode 100644 index 0000000000000000000000000000000000000000..cb438e6567d475fc2034bfcdb3f243dfa00fb273 --- /dev/null +++ b/resources/lang/en/plugin-desktop/desktop-opera.php @@ -0,0 +1,15 @@ +<?php + return[ + + //Instructions for Opera versions >=36 + 'default-search-v36.1' => 'Right click the search bar at the end of this instruction.', + 'default-search-v36.2' => 'Choose "Create search engine..." in the context menu.', + 'default-search-v36.3' => 'Click "Create" in the popup.', + //link to desktop-unable + + 'default-page-v36.1' => 'Navigate to the top left corner and click "Opera" logo or "Menu" and click "Settings".', + 'default-page-v36.2' => 'Under "On startup" choose "Open a specific page or set of pages" and click "Add a new page".', + 'default-page-v36.3' => 'Enter ":link" as URL and click "Add".', + 'default-page-v36.4' => 'Hint: Every listed page in this window will be opened on startup. You can remove entries by moving your mouse over them and click "<i class="fas fa-ellipsis-h"></i>".', + + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-desktop/desktop-safari.php b/resources/lang/en/plugin-desktop/desktop-safari.php new file mode 100644 index 0000000000000000000000000000000000000000..59813d3726ec39fce86adb3d216f2f0462332f74 --- /dev/null +++ b/resources/lang/en/plugin-desktop/desktop-safari.php @@ -0,0 +1,8 @@ +<?php + return[ + + //link to unable + 'default-page-v10.1' => 'Click <a href="/" target="_blank" rel="noopener">here</a> to open MetaGer in a new tab.', + 'default-page-v10.2' => 'In the top left corner click on "Safari" and choose "Preferences".', + 'default-page-v10.3' => 'Under "General" click the "Set to Current Page" button.' + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-desktop/desktop-vivaldi.php b/resources/lang/en/plugin-desktop/desktop-vivaldi.php new file mode 100644 index 0000000000000000000000000000000000000000..8e0831734f1fc2ae1ce6ff1f174585cebdce683a --- /dev/null +++ b/resources/lang/en/plugin-desktop/desktop-vivaldi.php @@ -0,0 +1,11 @@ +<?php + return[ + + //Instructions for Vivaldi version 3.3 + 'default-search-v3-3.1' => 'Right click the search bar at the end of this instruction', + 'default-search-v3-3.2' => 'Choose "Add as Search Engine..." in the context menu.', + 'default-search-v3-3.3' => 'Check the "Set as Default Search" box and click "Add" in the popup.', + + 'default-page-v3-3.1' => 'Navigate to the top left corner, click the "Vivaldi" logo and choose "<i class="fa fa-cog" aria-hidden="true"></i> Einstellungen" under "Tools"', + 'default-page-v3-3.2' => 'Under "Homepage" choose "Specific Page" and enter :link .', + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-mobile/mobile-chrome.php b/resources/lang/en/plugin-mobile/mobile-chrome.php new file mode 100644 index 0000000000000000000000000000000000000000..808f0d5d78175147489f2c7fae7668e6e788420d --- /dev/null +++ b/resources/lang/en/plugin-mobile/mobile-chrome.php @@ -0,0 +1,15 @@ +<?php + return[ + + 'default-search-v83.1' => 'Tap "<i class="fas fa-ellipsis-v"></i>" in the top right corner.', + 'default-search-v83.2' => 'Choose "Settings".', + 'default-search-v83.3' => 'Under "Basics" pick "Search engine".', + 'default-search-v83.4' => 'Under "Recently Visited" choose MetaGer.', + 'default-search-v83.5' => 'If MetaGer does not appear in the list use the search bar at the end of this instructions and try again.', + + 'default-page-v83.1' => 'Tap "<i class="fas fa-ellipsis-v"></i>" in the top right corner.', + 'default-page-v83.2' => 'Choose "Settings".', + 'default-page-v83.3' => 'Under "Advanced pick "Homepage".', + 'default-page-v83.4' => 'Choose "Enter custom web address" and enter ":link" .', + + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-mobile/mobile-edge.php b/resources/lang/en/plugin-mobile/mobile-edge.php new file mode 100644 index 0000000000000000000000000000000000000000..decff92ae41c09b287039458c7f1418a63fc7211 --- /dev/null +++ b/resources/lang/en/plugin-mobile/mobile-edge.php @@ -0,0 +1,14 @@ +<?php + return[ + + 'default-search-v45.1' => 'Tap "<i class="fas fa-ellipsis-h"></i>" at the bottom centre to open the menu.', + 'default-search-v45.2' => 'Choose "Settings" on the right side.', + 'default-search-v45.3' => 'Scroll down und pick "Search" in the "Advanced" category.', + 'default-search-v45.4' => 'Choose "Default search engine" and pick MetaGer from the "Recently Visited" list.', + 'default-search-v45.5' => 'If MetaGer does not appear in the list use the search bar at the end of this instructions and try again.', + + 'default-page-v45.1' => 'Click <a href="/" target="_blank" rel="noopener">here</a> to open MetaGer in a new Tab.', + 'default-page-v45.2' => 'Tap "<i class="fas fa-ellipsis-h"></i>" at the bottom centre to open the menu and shoose "Settings" on the right side.', + 'default-page-v45.3' => 'Choose "Home page" in the "Basic" category.', + 'default-page-v45.4' => 'Choose "A specific page", tap "Use current page" and "save".', + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-mobile/mobile-firefox-klar.php b/resources/lang/en/plugin-mobile/mobile-firefox-klar.php new file mode 100644 index 0000000000000000000000000000000000000000..00f5fe2b38a3fe9dc9d486a5f8b0e01fcbae470b --- /dev/null +++ b/resources/lang/en/plugin-mobile/mobile-firefox-klar.php @@ -0,0 +1,11 @@ +<?php + return[ + + 'search-string' => 'Search string:', + + 'default-search-v8-8' => 'Tap <i class="fa fa-cog" aria-hidden="true"></i>(iOs) or <i class="fas fa-ellipsis-v"></i>(Android) in the top right corner and choose "Settings".', + 'default-search-v8-8' => 'Under "Search" choose "Search engine".', + 'default-search-v8-8' => 'Tap "Add another search engine" Enter "MetaGer" as "search engine name" and "https://metager.org/meta/meta.ger3?eingabe=%s" as "Search string to use".', + 'default-search-v8-8' => 'Be careful not to add a space at the end of the search string accidently. Otherwise Firefox Focus will not allow you to save.', + + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-mobile/mobile-firefox.php b/resources/lang/en/plugin-mobile/mobile-firefox.php new file mode 100644 index 0000000000000000000000000000000000000000..369cf51280540f305310dc110751f6f90d6cb329 --- /dev/null +++ b/resources/lang/en/plugin-mobile/mobile-firefox.php @@ -0,0 +1,17 @@ +<?php + return[ + + 'search-string' => 'Search string:', + + //Instructions for Firefox Mobile version < 80 + 'default-search-vlt80.1' => 'Tap and hold the search bar at the end of the instructions.', + 'default-search-vlt80.2' => 'Choose "Add search engine" from the context menu', + 'default-search-vlt80.3' => 'Now you can go to your browser settings and choose MetaGer as your default search engine in the section "Search".', + + //Instructions for Firefox Mobile version >= 80 + 'default-search-v80.1' => 'Tap "<i class="fas fa-ellipsis-v"></i>" in the bottom right corner.', + 'default-search-v80.2' => 'Choose Settings.', + 'default-search-v80.3' => 'Under "General" pick "Search".', + 'default-search-v80.4' => 'Tap "+ Add search engine".', + 'default-search-v80.5' => 'Choose "Other", enter MetaGer as name and the search string to use. Finally tap "<i class="fas fa-check"></i>" in the top right corner to save.', + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-mobile/mobile-opera.php b/resources/lang/en/plugin-mobile/mobile-opera.php new file mode 100644 index 0000000000000000000000000000000000000000..8ddebc46d1505c97d3a621e55cd2b5a7842bde1b --- /dev/null +++ b/resources/lang/en/plugin-mobile/mobile-opera.php @@ -0,0 +1,9 @@ +<?php + return[ + + 'default-search-v60.1' => 'Tap and hold the search bar at the end of the instruction', + 'default-search-v60.2' => 'Choose "Add search engine...".', + 'default-search-v60.3' => 'Tap "OK" in the popup.', + 'default-search-v60.4' => 'Now you can choose MetaGer as search engine by tapping the icon in the top left corner of a new tab.', + //link to mobile-unable + ]; \ No newline at end of file diff --git a/resources/lang/en/plugin-page.php b/resources/lang/en/plugin-page.php index bb0699b85527bd792fc70e24f7c60389ed3b2157..3d34d49efe7f1fa37c5d7120213c3aad4e7edc18 100644 --- a/resources/lang/en/plugin-page.php +++ b/resources/lang/en/plugin-page.php @@ -11,72 +11,17 @@ return [ "head.6" => "Add MetaGer to your Safari", "head.7" => "Add Metager to your Vivaldi", "head.8" => "Add MetaGer to your Firefox Focus", - 'default-search' => 'Set MetaGer as the default search engine', - 'firefox.plugin' => '', - "firefox.1" => 'In your browser, click on "<i class="fa fa-ellipsis-h"></i>" in the upper right corner of the address bar to open the page action menu and then click on "Add search engine" (see picture)', - "firefox.2" => 'Open the Firefox settings. For this, enter "about:preferences#search" in the address bar. In the section "Default search engine" select MetaGer (see picture).', - "firefox.3" => "Use MetaGer as start page in :browser", - "firefox.4" => "Click top right in your browser on <i class=\"fa fa-menu\" aria-hidden=\"true\"></i><span class=\"sr-only\">the three small horizontal lines</span> (menu) and open \"Preferences\"", - "firefox.5" => "Type in field \"Home Page\" => \"https://metager.org\"", + 'browser-download' => 'Download Firefox', + 'firefox-plugin' => 'Set MetaGer as default search engine with add-on', + 'firefox-default-search' => 'Set MetaGer as default search engine without add-on', + 'default-search' => 'Set MetaGer as default search engine', + 'default-page' => 'Set MetaGer as start page', - 'firefox-klar.1' => 'Click on the cog icon next to the searchbar to open your browser settings (click on <i class="fa fa-ellipsis-v"></i> when using an Android device)', - 'firefox-klar.2' => 'Select \'Searchengine\' under the \'Search\' menu item .', - 'firefox-klar.3' => 'Click on \'Add another search engine\': enter "MetaGer" as Name and "https://metager.org/meta/meta.ger3?eingabe=%s" as query string.', - 'firefox-klar.4' => 'Be careful not to add whitespaces at the end of the searchstring, otherwise Firefox Focus won\'t let you save your changes.', + 'desktop-unable' => 'The browser you use does not offer to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.', + 'mobile-unable' => 'The browser you use does not offer to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/mobile/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.', - "chrome.1" => "Click in your Chrome browser on <i class=\"fa fa-ellipsis-v\"></i> and in the next menu on \"Preferences\" to open the settings of your Chrome browser", - "chrome.2" => "Click in field \"Search\" on manage search engines", - "chrome.3" => "Now you will find an entry \"MetaGer\". Move your mouse over that entry and click on \"Standard\",", - "chrome.4" => "Set up MetaGer as start page in your browser", - "chrome.5" => "Click in your browser on<i class=\"fa fa-ellipsis-v\"></i> and open \"Preferences\"", - "chrome.6" => "In the field \"Start\" choose \"Open specific Page/s\" and then click on \"Choose Page/s\"", - "chrome.7" => "Type in https://metager.org\" as URL at \"Add new page\"", - "chrome.8" => "Hint: Every Webpage in this field will be opened when you start your browser. You can delete entries by moving the mouse on it and click \"x\"", + 'desktop-unlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.', + 'mobile-unlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/mobile/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.', - "opera.1" => "Click on <a href=\"/\" target=\"_blank\" rel=\"noopener\">hier</a> to open MetaGer in a new TAB", - "opera.2" => "In that news TAB click with the right mouse button within the search field in the middle of the page", - "opera.3" => "Choose \"create search engine\" in the menu", - "opera.4" => "Click \"create\" within the popup", - "opera.5" => "(Unfortunately it is no loger possible to set up new search engines in the Opera browser as standard, but you might install the open source browser <a href=\"https://www.mozilla.org/de/firefox/new/\" target=\"_blank\" rel=\"noopener\">Firefox</a>, who does support that)", - "opera.6" => "Set up MetaGer as start page in your browser", - "opera.7" => "Click in browser menu on \"Edit\" and them \"Preferences\"", - "opera.8" => "In the field \"Start\" choose \"Open specific Page\\/s\" and then click on \"Choose Page\\/s\"", - "opera.9" => "Type in https://metager.org\" as URL at \"Add new page\"", - "opera.10" => "Click on OK", - - "IE.1" => "Click <a href=\"javascript:window.external.addSearchProvider($('link[rel=search]').attr('href'));\">here</a> to add MetaGer as search engine", - "IE.4" => "Click top right in your browser on \"Extras\"", - "IE.5" => "Choose the menu \"manage Add-Ons\"", - "IE.6" => "Click in field \"Add-Ons\" on \"search provider\" and the on the right on \"MetaGer\"", - "IE.7" => "Coose button \"Standard\"", - "IE.8" => "Set up MetaGer as start page in your browser", - "IE.9" => "Click at top right in your browser on <i class=\"fa fa-cog\"></i> and open \"Internet Options\"", - "IE.10" => "If MetaGer should be your only startpage mark the existing text within the text field, and replace it by \"https://metager.org\"", - "IE.11" => "Click on OK", - - "edge.1" => "Click in your browser top right on Extras (", - "edge.2" => ") and choose \"Preferences\"", - "edge.3" => "Scroll down and click on \"Show adavanced Preferences\"", - "edge.4" => "Scroll again down to topic \"within addresses\" and click on \"Change\"", - "edge.5" => "Choose \"MetaGer ...\" and click on \"Standard\"", - "edge.6" => "Set up MetaGer as start page in :browser", - "edge.7" => "Click at top right in your browser on <i class=\"fa fa-ellipsis-h\"></i> and open \"Preferences\"", - "edge.8" => "Choose in the field \"Open\" the topic \"Specific pages\"", - "edge.9" => "Choose \"User defined\" within drop down menu", - "edge.10" => "Type \"https://metager.org\" in field \"Webaddress\" and click on \"+\"", - "edge.11" => "Delete all entries which should not be opened at start (for example \"about:start\") by click on \"x\"", - - 'safari.1' => 'We are sorry. Safari doesn´t accept neither the "Glims plugin" nor the "OpenSearch for Safari plugin" anymore. At this time there is no way to install alternative search engines for Safari webbrowser.', - - "vivaldi.1" => "Click the red logo \"Vivaldi\" at the top left of your web browser. Then select \"Tools / Preferences\"", - "vivaldi.2" => "Within the new menu choose \"search\"", - "vivaldi.3" => "Select \"Add new search\"", - "vivaldi.4" => "Enter \"https://metager.de/meta/meta.ger3?eingabe=%s\" into the field \"URL\"", - "vivaldi.5" => "Please enter \"MetaGer\" as the description and \"mg\" as abbreviation.", - "vivaldi.6" => "Check \"Set as standard\" if you want MetaGer to be your standard search engine.", - "vivaldi.7" => "Click \"Add\".", - "vivaldi.8" => "Set MetaGer.de as the start page of your web browser :browser", - "vivaldi.9" => "Click the red logo \"Vivaldi\" at the top left of your web browser. Then select \"Tools / Preferences\"", - "vivaldi.10" => "Enter \"https://metager.de\" into the field \"Start page\"", -]; + ]; diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php index af7c83a1200c3351bd66c73e61131d2c9f163bad..f1968e6af73debed4fd1ae0e8eb7b1765e4a3a2d 100644 --- a/resources/lang/en/settings.php +++ b/resources/lang/en/settings.php @@ -6,6 +6,7 @@ return [ "hint.header" => "Note", "hint.text" => "To save your search settings, we use non-personally identifiable cookies. These are saved in clear text in your browser. You can see an <a href=\":link\">overview</a> of all the settings and cookies you have made.", + 'hint.loadSettings' => 'Here is a link you can use as startpage or bookmark to keep your current settings. The URL sets your settings as cookies.', "header.2" => "Used Search Engines", "text.2" => "Below are all the search engines available for this focus. With a click on the name they can be switched on / off. Used search engines are shown in green. Not used ones in red or gray.", @@ -14,9 +15,16 @@ return [ "header.3" => "Search Filters", "text.3" => "At this point you can set search filters permanently. With the selection of a search filter, only search engines are available that support this filter. Conversely, only search filters are displayed which are supported by the current search engine selection.", + 'header.4' => 'Black list', + 'text.4' => 'Here you can add domains to exclude when searching. If you want to exclude all subdomains start with "*.".', + 'address' => 'Address', + "save" => "Save", "reset" => "Delete all settings", "back" => "Back to the last page", + 'add' => 'Add', + 'clear' => 'Clear black list', + 'copy' => 'Copy', // Translations from the settings overview 'noSettings' => "Currently no settings are set!", @@ -29,5 +37,6 @@ return [ 'engineDisabled' => "The search engine :engine will not be queried in focus :focus.", 'inFocus' => "in focus", 'key' => "Your key to the ad-free search", + 'blentry' => 'Black list entry', 'removeCookie' => "Remove this cookie", ]; diff --git a/resources/lang/en/team.php b/resources/lang/en/team.php index 6100c349d073c33cc5a7f6b53157ef194d32379b..6ca00fb4aa4382313360b59697abbc6ff0d00dfd 100644 --- a/resources/lang/en/team.php +++ b/resources/lang/en/team.php @@ -10,6 +10,8 @@ return [ "role.6" => "programmer", "role.7" => "secretary", "role.8" => "founder", + "role.9" => "trainee", + "contact.1" => "Please mail your questions/problems about MetaGer etc. to <a href=\"mailto:office@suma-ev.de\">office@suma-ev.de</a> or use the <a href=\"/en/kontakt/\">contact form with encryption</a>.", "contact.2" => "If you get any emails with strange contents from us please read more about this: <a href=\"https://metager.de/wsb/fakemail/\">https://metager.de/wsb/fakemail/</a>", "contact.3" => "Only in reasoned exceptions, if you want to reach someone directly, you should mail them. Because team members might be on vacation, sick etc.", diff --git a/resources/lang/en/tor.php b/resources/lang/en/tor.php index fa32eac9675a5eeb80f586813c9a25f18a51684f..f568a62a0b682aa2b9eba039a42ad309d8205a36 100644 --- a/resources/lang/en/tor.php +++ b/resources/lang/en/tor.php @@ -3,4 +3,5 @@ return [ 'description' => "Below you will find the link to MetaGer's hidden service. Attention: This link can only be reached via the Tor network. Your browser produces an error message if it is not connected to it.", "torbutton" => "Open TOR-hidden service", + 'torurl' => 'http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/en/', ]; diff --git a/resources/lang/es/asso.php b/resources/lang/es/asso.php new file mode 100644 index 0000000000000000000000000000000000000000..0850f37ea1026e1bc52f9b6df4b094dbcdfbfe56 --- /dev/null +++ b/resources/lang/es/asso.php @@ -0,0 +1,8 @@ +<?php return [ + "head.1" => "Asociador - MetaGer", + "1.1" => "No sabe otras palabras para buscar? Pregunta nuestro asociador.", + "1.2" => "Protección de Datos", + "reasso.title" => "Asociar esto término", + "searchasso.title" => "Buscar (MetaGer) con esto término", + "search.placeholder" => "Término para asociar" +]; diff --git a/resources/lang/es/bitpay.php b/resources/lang/es/bitpay.php index d071e30dfc6e09890a67ce88ddb75b2534c4dc80..6efd4f88b077106e9e5c220b7e189a9a3359e079 100644 --- a/resources/lang/es/bitpay.php +++ b/resources/lang/es/bitpay.php @@ -1,5 +1,3 @@ -<?php - -return [ - "amount" => "cantidad" +<?php return [ + "amount" => "Cantidad" ]; diff --git a/resources/lang/es/index.php b/resources/lang/es/index.php index 4724982d26a11a939363b9bd0c7996168d9701ee..0ed4438a345f54b9c25e5d6d2d6390d5c19b75e6 100644 --- a/resources/lang/es/index.php +++ b/resources/lang/es/index.php @@ -1,6 +1,4 @@ -<?php - -return [ +<?php return [ "foki.web" => "Web", "foki.bilder" => "Imágenes", "foki.nachrichten" => "Informativos/PolÃtica", @@ -11,15 +9,29 @@ return [ "design" => "Escoger un diseño personalizado", "conveyor" => "Comprar en tiendas que apoyan MetaGer ", "partnertitle" => "Apoyar MetaGer, sin costos para usted", + "mapstitle" => "MetaGer - Servicio de tarjeta", "plugin" => "Instalar MetaGer", "plugin-title" => "Añadir MetaGer a su navegador", - 'about.1.1' => "Privacidad garantizada", - 'about.1.2' => 'Con nosotros tiene control total sobre sus datos. No rastreamos y nuestro código fuente es gratuito.', - 'about.2.1' => 'Diversa y libre', - 'about.2.2' => 'MetaGer protege contra la censura al combinar los resultados de múltiples motores de búsqueda.', - 'about.3.1' => 'EnergÃa 100% renovable', - 'about.3.2' => 'Todos nuestros servicios se ejecutan con energÃa renovable. Sostenible y limpio.', - 'about.4.1' => 'Organización sin ánimo de lucro', - 'about.4.2' => '¡Fortalécenos convirtiéndote en miembro o donando a nuestra organización sin fines de lucro!', + "options.head" => "Administrar filtros", + "focus-creator.head" => "Adaptar búsqueda", + "focus-creator.description" => "Compilar motores de búsqueda", + "focus-creator.name-placeholder" => "Nombre de mis propios de búsqueda", + "focus-creator.save" => "Hacer búsqueda con mis propios de búsqueda", + "focus-creator.delete" => "Borrar mis propios de búsqueda", + "about.1.1" => "Privacidad garantizada", + "about.1.2" => "Con nosotros tiene control total sobre sus datos. No rastreamos y nuestro código fuente es gratuito.", + "about.2.1" => "Diversa y libre", + "about.2.2" => "MetaGer protege contra la censura al combinar los resultados de múltiples motores de búsqueda.", + "about.3.1" => "EnergÃa 100% renovable", + "about.3.2" => "Todos nuestros servicios se ejecutan con energÃa renovable. Sostenible y limpio.", + "about.4.1" => "Organización sin ánimo de lucro", + "about.4.2" => "¡Fortalécenos convirtiéndote en miembro o donando a nuestra organización sin fines de lucro!", + "lang.tooltip" => "Idioma de resultados", + "key.placeholder" => "Llave para buscar sin publicidad", + "key.tooltip" => "Llave para buscar sin publicidad", "placeholder" => "MetaGer: Buscar & encontrar seguro", + "searchbutton" => "MetaGer - Búsqueda", + "tooltips.add-focus" => "Adaptar búsqueda", + "tooltips.edit-focus" => "Labra el atención actual", + "tooltips.settings" => "Ajuste general", ]; diff --git a/resources/lang/es/metaGerSearch.php b/resources/lang/es/metaGerSearch.php index 80e990165051c38f957caa59bdab25284b7bed80..65fc992020107c424c8b4d71d5967c1004fd027a 100644 --- a/resources/lang/es/metaGerSearch.php +++ b/resources/lang/es/metaGerSearch.php @@ -1,6 +1,8 @@ -<?php - -return [ +<?php return [ "quicktips.wikipedia.adress" => "de <a href=\"https://es.wikipedia.org\" target=\"_blank\" rel=\"noopener\">Wikipedia, la enciclopedia libre</a>", - "quicktips.tips.title" => "¿SabÃa usted?" + "quicktips.dictcc.adress" => "de <a href=\"https://www.dict.cc/\" target=\"_blank\" rel=\"noopener\">dict.cc</a>", + "quicktips.tips.title" => "¿SabÃa usted?", + "quicktips.bang.title" => "ReenvÃo !bang", + "quicktips.bang.buttonlabel" => "seguir haciendo buscar:", + "quicktips.bang.from" => "de" ]; diff --git a/resources/lang/es/result.php b/resources/lang/es/result.php index 59b01b7125e33a36d87680f899446dbe5eda84b3..6eaccb745dd9dafb8866b76791fa668eb0da4502 100644 --- a/resources/lang/es/result.php +++ b/resources/lang/es/result.php @@ -1,14 +1,15 @@ -<?php - -return [ - 'options.headline' => 'Opciónes', - 'options.savetab' => 'Grabar resultado', - 'options.1' => 'Nueva búsqueda en este dominio', - 'options.2' => 'ocultar :host', - 'options.3' => 'ocultar *.:domain', - 'options.4' => 'Tienda asociada', - 'options.5' => 'ABRIR ANÓNIMO', - 'options.6' => 'ABRIR NUEVA PESTAÑA', - 'options.7' => 'ABRIR', - 'proxytext' => 'Abrirá el link anonimizado.' +<?php return [ + "options.headline" => "Opciónes", + "options.savetab" => "Grabar resultado", + "options.1" => "Nueva búsqueda en este dominio", + "options.2" => "ocultar :host", + "options.3" => "ocultar *.:domain", + "options.4" => "Tienda asociada", + "options.5" => "ABRIR ANÓNIMO", + "options.6" => "ABRIR NUEVA PESTAÑA", + "options.7" => "ABRIR", + "options.more" => "Más", + "options.less" => "Menos", + "gefVon" => "Encontrado de", + "proxytext" => "Abrirá el link anonimizado." ]; diff --git a/resources/lang/es/sidebar.php b/resources/lang/es/sidebar.php index 0f1d379a5bacd4da92ec14ce170d8d810f185ab8..011ffbd80dfa70a5059a72d5bff262c1ebb258e4 100644 --- a/resources/lang/es/sidebar.php +++ b/resources/lang/es/sidebar.php @@ -1,6 +1,4 @@ -<?php - -return [ +<?php return [ "nav1" => "Búsqueda", "nav2" => "Donaciones", "nav3" => "Protección de datos", @@ -23,9 +21,10 @@ return [ "nav23" => "Afiliarse a SUMA-EV", "nav24" => "Codigo fuente MetaGer", "nav25" => "MetaGer App", + "nav26" => "Tienda para fanáticos", + "nav26" => "Tienda para fanáticos", 'nav27' => 'MetaGer Maps', - "nav26" => "Tienda de fans de MetaGer", "navigationToggle" => "Mostrar navegación", - "titles.tips" => "Consejos", - "plugin" => "Complemento MetaGer" + "titles.tips" => "Sugerencias", + "plugin" => "MetaGer Plugin" ]; diff --git a/resources/lang/es/spende.php b/resources/lang/es/spende.php index 4331e9a6f1a6e9f5f4db393d94d89f63c0257b27..58d43c4f485be582414c2187d55ed4b4cd0cec4a 100644 --- a/resources/lang/es/spende.php +++ b/resources/lang/es/spende.php @@ -1,35 +1,38 @@ -<?php - -return [ - "headline.1" => "Su donación para SUME-EV y MetaGer", - "headline.2" => "Ayuda usted, que en el internet los buscadores libres quedan libre. El conocimiento digital del mundo tiene que ser accesible sin tutela de estados o empresas.", - "bankinfo.1" => "Con una transferencia bancaria", - "bankinfo.2" => "SUMA-EV", - 'bankinfo.2.1' => 'IBAN: DE64 4306 0967 4075 0332 01', - 'bankinfo.2.2' => 'BIC: GENODEM1GLS', - 'bankinfo.2.3' => 'Banco: GLS Gemeinschaftsbank, Bochum', - 'bankinfo.2.4' => '(NDC: 4075 0332 01, Código: 43060967)', - "bankinfo.3" => "En caso que quiere un recibo de donación, por favor ponga su correo electrónico y su dirección completa en el formulario de transferencia.", - "lastschrift.1" => "Donaciones con procedimiento de nota de cargo:", - "lastschrift.2" => "Simplemente llena el formulario con sus datos bancarios y el monto deseado. Nosotros entonces cargamos su cuenta acuerdo a los datos proporcionados.", - "lastschrift.3" => "Por favor ponga su nombre:", - "lastschrift.3.placeholder" => "Nombre", - "lastschrift.4" => "Su correo electrónico:", - "lastschrift.5" => "Su numero de teléfono, para verificar su donación vÃa una llamada si fuese necesario:", - "lastschrift.6" => "Su IBAN o numero de cuenta:", - "lastschrift.7" => "Su BIC o \tcódigo de identificación bancaria:", - "lastschrift.8.value" => "Aquà puede entrar su donación:", - "lastschrift.8.value.placeholder" => "Monto de donación", - "lastschrift.8.message" => "Aquà puede enviarnos un mensaje adicional si quiere:", - "lastschrift.8.message.placeholder" => "Mensaje", - "lastschrift.9" => "Donación", - "lastschrift.10" => "Sus datos serán transmitidos por una conexión encryptada y no pueden ser leÃdo por terceros. El monto que usted nos indica, sera cargado a su cuenta. SUME-EV usa sus datos exclusivamente para la contabilidad de las donaciones. Sus datos no serán transmitidos a nadie. Donaciones al SUMA-EV son deducibles de los impuestos, ya que el SUME-EV es aprobado por el Finanzamt Hannover Nord como asociación sin fines de lucro, y esta registrado en el registro del Amtsgericht Hannover con el numero VR200033. Un recibo de donaciones arriba de 200,- Euro será mandado automáticamente. Para donaciones hasta 200,- EURO basta el extracto de cuenta para deducirlo de los impuestos.", - "drucken" => "Imprimir", - "danke.title" => "¡Muchas gracias!! Hemos recibido su informacion de donación para MetaGer al SUME-EV.", - "danke.nachricht" => "En caso que nos ha enviado datos de contacto, pronto va recibir un mensaje personalizado.", - "danke.kontrolle" => "Hemos recibido el siguiente mensaje:", - "telefonnummer" => "Teléfono", - "iban" => "IBAN/ No. de cuenta", - "bic" => "BIC o código de identificación bancaria:", - "danke.message" => "Su mensaje", +<?php return [ + "headline.1" => "Su donación para SUME-EV y MetaGer", + "headline.2" => "Ayuda usted, que en el internet los buscadores libres quedan libre. El conocimiento digital del mundo tiene que ser accesible sin tutela de estados o empresas.", + "bankinfo.1" => "Con una transferencia bancaria", + "bankinfo.2" => "SUMA-EV", + "bankinfo.2.1" => "IBAN: DE64 4306 0967 4075 0332 01", + "bankinfo.2.2" => "BIC: GENODEM1GLS", + "bankinfo.2.3" => "Banco: GLS Gemeinschaftsbank, Bochum", + "bankinfo.2.4" => "(NDC: 4075 0332 01, Código: 43060967)", + "bankinfo.3" => "En caso que quiere un recibo de donación, por favor ponga su correo electrónico y su dirección completa en el formulario de transferencia.", + "lastschrift.1" => "Donaciones con procedimiento de nota de cargo:", + "lastschrift.2" => "Simplemente llena el formulario con sus datos bancarios y el monto deseado. Nosotros entonces cargamos su cuenta acuerdo a los datos proporcionados.", + "lastschrift.3" => "Por favor ponga su nombre:", + "lastschrift.3.placeholder" => "Nombre", + "lastschrift.4" => "Su correo electrónico:", + "lastschrift.5" => "Su numero de teléfono, para verificar su donación vÃa una llamada si fuese necesario:", + "lastschrift.6" => "Su IBAN o numero de cuenta:", + "lastschrift.7" => "Su BIC o \tcódigo de identificación bancaria:", + "lastschrift.8.value" => "Aquà puede entrar su donación:", + "lastschrift.8.value.placeholder" => "Monto de donación", + "lastschrift.8.message" => "Aquà puede enviarnos un mensaje adicional si quiere:", + "lastschrift.8.message.placeholder" => "Mensaje", + "lastschrift.9" => "Donación", + "lastschrift.10" => "Sus datos serán transmitidos por una conexión encryptada y no pueden ser leÃdo por terceros. El monto que usted nos indica, sera cargado a su cuenta. SUME-EV usa sus datos exclusivamente para la contabilidad de las donaciones. Sus datos no serán transmitidos a nadie. Donaciones al SUMA-EV son deducibles de los impuestos, ya que el SUME-EV es aprobado por el Finanzamt Hannover Nord como asociación sin fines de lucro, y esta registrado en el registro del Amtsgericht Hannover con el numero VR200033. Un recibo de donaciones arriba de 200,- Euro será mandado automáticamente. Para donaciones hasta 200,- EURO basta el extracto de cuenta para deducirlo de los impuestos.", + "drucken" => "Imprimir", + "danke.title" => "¡Muchas gracias!! Hemos recibido su informacion de donación para MetaGer al SUME-EV.", + "danke.nachricht" => "En caso que nos ha enviado datos de contacto, pronto va recibir un mensaje personalizado.", + "danke.kontrolle" => "Hemos recibido el siguiente mensaje:", + "telefonnummer" => "Teléfono", + "iban" => "IBAN/ No. de cuenta", + "bic" => "BIC o código de identificación bancaria:", + "betrag" => "Cantidad", + "danke.message" => "Su mensaje", + "paypal.title" => "Donar con Paypal", + "paypal.subtitle" => "Allà con tarjeta de crédito sin registro", + "paypal.2" => "Donar con Paypal - rapido, seguro y gratis!", + "bitpay.title" => "Donar con Bitpay" ]; diff --git a/resources/lang/es/titles.php b/resources/lang/es/titles.php index e42c4b74d326f2ed27136c26000c1656c7984a2c..f74391b5f96cc6217eab9dde8a126cbdbe3ac700 100644 --- a/resources/lang/es/titles.php +++ b/resources/lang/es/titles.php @@ -1,6 +1,4 @@ -<?php - -return [ +<?php return [ "index" => "MetaGer: Buscar & encontrar seguro, proteger la privacidad", "impressum" => "Aviso legal - MetaGer", "about" => "Sobre nosotros - MetaGer", @@ -18,11 +16,11 @@ return [ "languages" => "Herramienta de traducción - MetaGer", "languages.edit" => "Editar ficheros de idiomas - MetaGer", "app" => "Aplicaciones - MetaGer", - "faktencheck" => "Verificación de hechos versus noticias falsas", + "faktencheck" => "Revisión de hechos contra Fake-News", "jugendschutz" => "Protección de menores", - "ad-info" => "Publicidad en MetaGer", + "ad-info" => "Publicidad - MetaGer", "asso" => "Asociador - MetaGer", "plugin" => "Plugin - MetaGer", - "key" => "Clave de membresÃa - MetaGer", - "allSettings" => "Todas las configuraciones de búsqueda - MetaGer" + "key" => "Llave para afiliadas/os", + "allSettings" => "Configuraciones para buscar - MetaGer" ]; diff --git a/resources/lang/es/tor.php b/resources/lang/es/tor.php index 6223da8f87d279c5d68955470260373eb66ecc32..6a677951af0c1375f01864d4667b518d60a66c5c 100644 --- a/resources/lang/es/tor.php +++ b/resources/lang/es/tor.php @@ -3,4 +3,5 @@ return [ 'description' => 'A continuación, encontrará el enlace al servicio oculto de MetaGer. Atención: Solo se puede acceder a este enlace a través de la red Tor. Su navegador genera un mensaje de error si no está conectado a él.', "torbutton" => "Usar Tor", + 'torurl' => 'http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/es/', ]; diff --git a/resources/less/metager/pages/plugin.less b/resources/less/metager/pages/plugin.less new file mode 100644 index 0000000000000000000000000000000000000000..67db3aaece9136eaf48848cc83255c94bd8d5cdf --- /dev/null +++ b/resources/less/metager/pages/plugin.less @@ -0,0 +1,4 @@ +#search{ + color: orangered; + background-color:white; +} \ No newline at end of file diff --git a/resources/less/metager/pages/settings.less b/resources/less/metager/pages/settings.less index 0a3fbfef983a3cfac51aaf46929850ffd15f3d27..d4392c2febdb812e4e0f518e79d95a21d99da70d 100644 --- a/resources/less/metager/pages/settings.less +++ b/resources/less/metager/pages/settings.less @@ -49,4 +49,49 @@ #no-settings { text-align: center; } + + #newentry{ + #create{ + display:flex; + align-items:left; + margin-bottom:10px; + #blacklist{ + flex-grow:1; + width:100%; + } + button{ + width:200px; + } + } + } + #deleteentry{ + table{ + border:1px solid lightgray; + flex-grow:1; + width:100%; + } + tr:nth-child(odd){ + background-color:rgb(240, 240, 240); + } + tr:nth-child(even){ + background-color:rgb(255, 215, 200); + } + td{ + padding:10px 0px; + } + td:first-child{ + padding-left:5px; + } + td:last-child{ + width:20px; + } + } + #cookieLink{ + display:flex; + align-items:left; + #loadSettings{ + flex-grow:1; + width:100%; + } + } } \ No newline at end of file diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 1f22f422f8aeaff9d8e1ecef430ac892e6a2bb04..5e080dacd9e22a41d34d7a453f0f9679de80ecb9 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -1,4 +1,4 @@ -@extends('layouts.staticPages', ['page' => 'startpage', 'css' => mix('css/themes/startpage-only.css')]) +@extends('layouts.staticPages', ['page' => 'startpage', 'css' => [mix('css/themes/startpage-only.css')]]) @section('title', $title ) @@ -14,9 +14,13 @@ @if(Request::filled('key')) <input type="hidden" name="key" value="{{ Request::input('key','') }}" form="searchForm"> @endif - <div id="plugin-btn-div"> - <a id="plugin-btn" href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/plugin") }}" title="{{ trans('index.plugin-title') }}"><img src="/img/plug-in.svg" alt="Plus-Zeichen"> <div>{{ trans('index.plugin') }}</div></a> - </div> + <div id="plugin-btn-div"> + @if($agent->isMobile() && ($agent->browser() === "Chrome" || $agent->browser() === "Edge")) + <button type="submit" id="plugin-btn" form="searchForm" title="{{ trans('index.plugin-title') }}" name="chrome-plugin" value="true"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a> + @else + <a id="plugin-btn" href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/plugin") }}" title="{{ trans('index.plugin-title') }}"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a> + @endif + </div> </div> </div> <div id="scroll-links"> diff --git a/resources/views/layouts/resultpage/verificationHeader.blade.php b/resources/views/layouts/resultpage/verificationHeader.blade.php index f982f6dd6017e1d165f5b01f4cf2a4f8baf175c2..85ba8d9a022cd048806aad020b94289184f01ad0 100644 --- a/resources/views/layouts/resultpage/verificationHeader.blade.php +++ b/resources/views/layouts/resultpage/verificationHeader.blade.php @@ -2,4 +2,5 @@ <html lang="{!! trans('staticPages.meta.language') !!}"> <head> <meta charset="UTF-8"> - <link rel="stylesheet" href="/index.css?id={{ $key }}"> + <link rel="stylesheet" href="/index.css?id={{ $key }}" beforeLoad="console.log('test');"> + <script src="/index.js?id={{ $key }}"></script> diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php index 9dabcd6e0a620c72eed2e2a548c3ca0eeb17eda2..16e63d5957f11711d1c100340a03c2b48b6cc0aa 100644 --- a/resources/views/layouts/staticPages.blade.php +++ b/resources/views/layouts/staticPages.blade.php @@ -36,11 +36,9 @@ <script src="{{ mix('js/utility.js') }}"></script> @if (isset($css)) @if(is_array($css)) - @foreach($css as $el) - <link href="{{ $el }}" rel="stylesheet" /> + @foreach($css as $cssFile) + <link href="{{ $cssFile }}" rel="stylesheet" /> @endforeach - @else - <link href="{{ $css }}" rel="stylesheet" /> @endif @endif </head> diff --git a/resources/views/parts/searchbar.blade.php b/resources/views/parts/searchbar.blade.php index 656b3c6b3b7377abfe54f3c64083fa7a66bc1133..7c071f02e308d9ce53f9cf6fffca134f06895ac8 100644 --- a/resources/views/parts/searchbar.blade.php +++ b/resources/views/parts/searchbar.blade.php @@ -8,7 +8,7 @@ </a> </div> <div class="search-input"> - <input type="search" name="eingabe" value="@if(isset($eingabe)){{$eingabe}}@endif" required="" @if(\Request::is('/') && !\Request::filled('mgapp')) autofocus @endif autocomplete="off" class="form-control" placeholder="{{ trans('index.placeholder') }}" tabindex="0"> + <input type="search" name="eingabe" value="@if(isset($eingabe)){{$eingabe}}@endif" @if(\Request::is('/') && !\Request::filled('mgapp')) autofocus @endif autocomplete="off" class="form-control" placeholder="{{ trans('index.placeholder') }}" tabindex="0"> <button id="search-delete-btn" name="delete-search-input" type="button" tabindex="-1"> × </button> diff --git a/resources/views/plugin-page.blade.php b/resources/views/plugin-page.blade.php index 61e51fce94b3c04f1ca5ef1965bcacba8c0f6680..c2a46a534c8ea90a8d738427fe2458d41546f2ce 100644 --- a/resources/views/plugin-page.blade.php +++ b/resources/views/plugin-page.blade.php @@ -4,7 +4,8 @@ @section('navbarFocus.tips', 'class="active"') -@section('content')<div role="dialog"> +@section('content') +<div role="dialog"> <h1 class="page-title"> @if ($browser === 'Firefox' || $browser === 'Mozilla') {{ trans('plugin-page.head.1') }} @@ -18,159 +19,117 @@ {{ trans('plugin-page.head.5') }} @elseif ($browser === 'Safari') {{ trans('plugin-page.head.6') }} - @elseif ($browser === 'Vivaldi') - {{ trans('plugin-page.head.7') }} + @elseif ($browser === 'UCBrowser') + {{ trans('plugin-page.head.9') }} @else - $(".seperator").addClass("hidden"); + {{ trans('plugin-page.head.0') }} @endif </h1> - @if ($browser === 'Firefox' || $browser === 'Mozilla') - <div class="card-medium"> - <h3>{!! trans('plugin-page.firefox.plugin') !!}</h3> - </div> - <div class="card-heavy"> - <h3>{!! trans('plugin-page.default-search', ['browser' => $browser]) !!}</h3> - <ol> - <li>{!! trans('plugin-page.firefox.1') !!} - @if(LaravelLocalization::getCurrentLocale() == "de") - <img src="/img/Firefox.png" width="100%" /> - @elseif(LaravelLocalization::getCurrentLocale() == "es") - <img src="/img/FirefoxEs.png" width="100%" /> - @else - <img src="/img/FirefoxEn.png" width="100%" /> - @endif - </li> - <li>{!! trans('plugin-page.firefox.2') !!} - @if(LaravelLocalization::getCurrentLocale() == "de") - <img src="/img/Firefox_Standard.png" width="100%" /> - @elseif(LaravelLocalization::getCurrentLocale() == "es") - <img src="/img/FirefoxEs_Standard.png" width="100%" /> - @else - <img src="/img/FirefoxEn_Standard.png" width="100%" /> - @endif - </li> - </ol> - </div> - <div class="card-heavy"> - <h3>{!! trans('plugin-page.firefox.3', ['browser' => $browser]) !!}</h3> - <ol> - <li>{!! trans('plugin-page.firefox.4') !!}</li> - <li>{!! trans('plugin-page.firefox.5') !!}</li> - </ol> - </div> - <div class="card-heavy"> - <h4>{{ trans('plugin-page.head.8') }}</h4> - <ol> - <li>{!! trans('plugin-page.firefox-klar.1') !!}</li> - <li>{{ trans('plugin-page.firefox-klar.2')}}</li> - <li>{{ trans('plugin-page.firefox-klar.3') }}</li> - <li>{{ trans('plugin-page.firefox-klar.4') }}</li> - </ol> - </div> - @elseif ($browser === 'Chrome') - <div class="card-heavy"> - <h3>{!! trans('plugin-page.default-search') !!}</h3> - <ol> - <li>{!! trans('plugin-page.chrome.1') !!}</li> - <li>{!! trans('plugin-page.chrome.2') !!}</li> - <li>{{ trans('plugin-page.chrome.3') }}</li> - </ol> - </div> - <div class="card-heavy"> - <h3>{!! trans('plugin-page.chrome.4', ['browser' => $browser]) !!}</h3> - <ol> - <li>{!! trans('plugin-page.chrome.5') !!}</li> - <li>{!! trans('plugin-page.chrome.6') !!}</li> - <li>{!! trans('plugin-page.chrome.7') !!}</li> - <li>{!! trans('plugin-page.chrome.8') !!}</li> - </ol> - </div> - @elseif ($browser === 'Opera') - <div class="card-heavy"> - <h3>{!! trans('plugin-page.default-search') !!}</h3> - <ol> - <li>{!! trans('plugin-page.opera.1') !!}</li> - <li>{!! trans('plugin-page.opera.2') !!}</li> - <li>{!! trans('plugin-page.opera.3') !!}</li> - <li>{!! trans('plugin-page.opera.4') !!}</li> - <li><small>{!! trans('plugin-page.opera.5') !!}</small> - </ol> - </div> - <div class="card-heavy"> - <h3>{!! trans('plugin-page.opera.6', ['browser' => $browser]) !!}</h3> - <ol> - <li>{!! trans('plugin-page.opera.7') !!}</li> - <li>{!! trans('plugin-page.opera.8') !!}</li> - <li>{!! trans('plugin-page.opera.9') !!}</li> - <li>{!! trans('plugin-page.opera.10') !!}</li> - </ol> - </div> - @elseif ($browser === 'IE') - <div class="card-heavy"> - <h3>{!! trans('plugin-page.default-search') !!}</h3> - <ol> - <li>{!! trans('plugin-page.IE.1') !!}</li> - <li>{!! trans('plugin-page.IE.4') !!} (<i class="fa fa-cog" aria-hidden="true"></i>)</li> - <li>{!! trans('plugin-page.IE.5') !!}</li> - <li>{!! trans('plugin-page.IE.6') !!}</li> - <li>{!! trans('plugin-page.IE.7') !!}</li> - </ol> - </div> - <div class="card-heavy"> - <h3>{!! trans('plugin-page.IE.8', ['browser' => $browser]) !!}</h3> - <ol> - <li>{!! trans('plugin-page.IE.9') !!}</li> - <li>{!! trans('plugin-page.IE.10') !!}</li> - <li>{!! trans('plugin-page.IE.11') !!}</li> - </ol> - </div> - @elseif ($browser === 'Edge') - <div class="card-heavy"> - <h3>{!! trans('plugin-page.default-search') !!}</h3> - <ol> - <li>{!! trans('plugin-page.edge.1') !!}<i class="fa fa-ellipsis-h" aria-hidden="true"></i>{!! trans('plugin-page.edge.2') !!}</li> - <li>{!! trans('plugin-page.edge.3') !!}</li> - <li>{!! trans('plugin-page.edge.4') !!}</li> - <li>{!! trans('plugin-page.edge.5') !!}</li> - </ol> - </div> - <div class="card-heavy"> - <h3>{!! trans('plugin-page.edge.6', ['browser' => $browser]) !!}</h3> - <ol> - <li>{!! trans('plugin-page.edge.7') !!}</li> - <li>{!! trans('plugin-page.edge.8') !!}</li> - <li>{!! trans('plugin-page.edge.9') !!}</li> - <li>{!! trans('plugin-page.edge.10') !!}</li> - <li>{!! trans('plugin-page.edge.11') !!}</li> - </ol> - </div> - @elseif ($browser === 'Safari') - <div class="card-heavy"> - <h3>{!! trans('plugin-page.default-search') !!}</h3> - <ol> - <li>{!! trans('plugin-page.safari.1') !!}</li> - </ol> - </div> - @elseif ($browser === 'Vivaldi') - <div class="card-heavy"> - <h3>{!! trans('plugin-page.default-search') !!}</h3> - <ol> - <li>{!! trans('plugin-page.vivaldi.1') !!}</li> - <li>{!! trans('plugin-page.vivaldi.2') !!}</li> - <li>{!! trans('plugin-page.vivaldi.3') !!}</li> - <li>{!! trans('plugin-page.vivaldi.4') !!}</li> - <li>{!! trans('plugin-page.vivaldi.5') !!}</li> - <li>{!! trans('plugin-page.vivaldi.6') !!}</li> - <li>{!! trans('plugin-page.vivaldi.7') !!}</li> - </ol> - </div> - <div class="card-heavy"> - <h4>{!! trans('plugin-page.vivaldi.8', ['browser' => $browser]) !!}</h4> - <ol> - <li>{!! trans('plugin-page.vivaldi.9') !!}</li> - <li>{!! trans('plugin-page.vivaldi.10') !!}</li> - </ol> - </div> + @if ($agent->isDesktop()) + @if ($browser === 'Firefox' || $browser === 'Mozilla') + @if (version_compare($agent->version($browser), '61.', '>=')) + @include ('plugin/desktop/firefox/v61') + @elseif (version_compare($agent->version($browser), '57.', '>=')) + @include ('plugin/desktop/firefox/v57') + @else + @include ('plugin/desktop/firefox/v52') + @endif + + @elseif ($browser === 'Chrome') + @if (version_compare($agent->version($browser), '59.', '>=')) + @include ('plugin/desktop/chrome/v59') + @include ('plugin/desktop/vivaldi/v3-3') + @elseif (version_compare($agent->version($browser), '53.', '>=')) + @include ('plugin/desktop/chrome/v53') + @else + @include ('plugin/desktop/chrome/v49') + @endif + + @elseif ($browser === 'Opera') + @include ('plugin/desktop/opera/v36') + + @elseif ($browser === 'IE') + @if (version_compare($agent->version($browser), '11.', '>=')) + @include('plugin/desktop/ie/v11') + @else + @include('plugin/desktop/ie/v9') + @endif + + @elseif ($browser === 'Edge') + @if (version_compare($agent->version($browser), '80.', '>=')) + @include('plugin/desktop/edge/v80') + @elseif (version_compare($agent->version($browser), '18.', '>=')) + @include('plugin/desktop/edge/v18') + @elseif (version_compare($agent->version($browser), '15.', '>=')) + @include('plugin/desktop/edge/v15') + @endif + + @elseif ($browser === 'Safari') + @include ('plugin/desktop/safari/v10') + + @else + + @section('content') + + <div class="card-heavy"> + <h3>{{ trans('plugin-page.browser-download') }}</h3> + <ol> + <li style="list-style:none;"><small>{!! trans('plugin-page.desktop-unlisted.php') !!}</small></li> + </ol> + </div> + @include ('plugin/desktop/firefox/v61') + + @endsection + + @endif + + @elseif ($agent->isPhone()) + @if ($browser === 'Firefox') + @if (version_compare($agent->version($agent->browser()), "80.0") <= 0)) + @include ('plugin/mobile/firefox/v80') + @include ('plugin/mobile/firefox-klar/v8-8') + @else + @include ('plugin/mobile/firefox/vlt80') + @endif + + @elseif ($browser === 'Chrome') + @include('plugin/mobile/chrome/v83') + + @elseif ($browser === 'Opera') + @include ('plugin/mobile/opera/v60') + + @elseif ($browser === 'Edge') + @include ('plugin/mobile/edge/v45') + + @elseif ($browser === 'Safari' || $browser === 'UCBrowser') + + @section('content') + + <div class="card-heavy"> + <h3>{!! trans('plugin-page.browser-download') !!}</h3> + <ol> + <li style="list-style:none;"><small>{!! trans('plugin-page.mobile-unable') !!}</small></li> + </ol> + </div> + @include ('plugin/desktop/firefox/v61') + + @endsection + + @else + + @section('content') + + <div class="card-heavy"> + <h3>{{ trans('plugin-page.browser-download') }}</h3> + <ol> + <li>{!! trans('plugin-page.desktop-unlisted.php') !!}</li> + </ol> + </div> + @include ('plugin/desktop/firefox/v61') + + @endsection + + @endif @endif -@endsection + @endsection diff --git a/resources/views/plugin/desktop/chrome/v49.blade.php b/resources/views/plugin/desktop/chrome/v49.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..72b0c4b33bcd5dbacf0cac799e6c23367bb0c17f --- /dev/null +++ b/resources/views/plugin/desktop/chrome/v49.blade.php @@ -0,0 +1,17 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-chrome.default-search-v49.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-search-v49.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-search-v49.3') }}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-chrome.default-page-v49.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.4') }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/chrome/v53.blade.php b/resources/views/plugin/desktop/chrome/v53.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..0a1afacb294deec71e373096f20a40e179b9324c --- /dev/null +++ b/resources/views/plugin/desktop/chrome/v53.blade.php @@ -0,0 +1,17 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-chrome.default-search-v53.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-search-v53.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-search-v53.3') }}</li> + </ol> +</div> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-chrome.default-page-v49.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.4') }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/chrome/v59.blade.php b/resources/views/plugin/desktop/chrome/v59.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..c14b0267b2c12cb7083763afbe141a91f7b23052 --- /dev/null +++ b/resources/views/plugin/desktop/chrome/v59.blade.php @@ -0,0 +1,17 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-chrome.default-search-v59.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-search-v59.2') }}</li> + <li>{!! trans('plugin-desktop/desktop-chrome.default-search-v59.3') !!}</li> + </ol> +</div> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-chrome.default-page-v49.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + <li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.4') }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/edge/v15.blade.php b/resources/views/plugin/desktop/edge/v15.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..b5815db7337f1b791cf0a11d67c46b7457c5598a --- /dev/null +++ b/resources/views/plugin/desktop/edge/v15.blade.php @@ -0,0 +1,17 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-edge.default-search-v15.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-search-v15.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-search-v15.3') }}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-search-v15.4') }}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-edge.default-page-v15.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-page-v15.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + <li>{!!trans('plugin-desktop/desktop-edge.default-page-v15.3') !!}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/edge/v18.blade.php b/resources/views/plugin/desktop/edge/v18.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..f7a4fe0b3114e418bafe4e8854b22c5d71aa7ee6 --- /dev/null +++ b/resources/views/plugin/desktop/edge/v18.blade.php @@ -0,0 +1,17 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-edge.default-search-v18.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-search-v18.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-search-v18.3') }}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-search-v18.4') }}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-edge.default-page-v15.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-page-v15.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + <li>{!! trans('plugin-desktop/desktop-edge.default-page-v15.3') !!}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/edge/v80.blade.php b/resources/views/plugin/desktop/edge/v80.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..06b40124b0af0b2eb361584fa1f6fa6ff9cb974f --- /dev/null +++ b/resources/views/plugin/desktop/edge/v80.blade.php @@ -0,0 +1,15 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-edge.default-search-v80.1') !!}</li> + <li>{!! trans('plugin-desktop/desktop-edge.default-search-v80.2') !!}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-edge.default-page-v80.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-edge.default-page-v80.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + <li>{!! trans('plugin-desktop/desktop-edge.default-page-v80.3') !!}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/firefox/v52.blade.php b/resources/views/plugin/desktop/firefox/v52.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..926a0ceaf132d52e39e91866b3359c5a0e1ab79a --- /dev/null +++ b/resources/views/plugin/desktop/firefox/v52.blade.php @@ -0,0 +1,16 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{{ trans('plugin-desktop/desktop-firefox.default-search-v52.1') }}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-search-v52.2') }}</li> + <li>{!! trans('plugin-desktop/desktop-firefox.default-search-v52.3') !!}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-search-v52.4') }}</li> + </ol> +</div> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-firefox.default-page-v52.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-page-v52.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/firefox/v57.blade.php b/resources/views/plugin/desktop/firefox/v57.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..73199c84e20d34b6f01f575f97e3bdf8baee985c --- /dev/null +++ b/resources/views/plugin/desktop/firefox/v57.blade.php @@ -0,0 +1,17 @@ + <div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-firefox.default-search-v57.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.3') }}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.4') }}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.5') }}</li> + </ol> +</div> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-firefox.default-page-v52.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-page-v52.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/firefox/v61.blade.php b/resources/views/plugin/desktop/firefox/v61.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..eb5265cd0447c21ea430faaba917e57e853cb23e --- /dev/null +++ b/resources/views/plugin/desktop/firefox/v61.blade.php @@ -0,0 +1,22 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.firefox-plugin') !!}</h3> + <ol> + <li style="list-style:none;">{!! trans('plugin-desktop/desktop-firefox.plugin') !!}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{!! trans('plugin-page.firefox-default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-firefox.default-search-v61.1') !!}</li> + <li>{!! trans('plugin-desktop/desktop-firefox.default-search-v61.2') !!}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-firefox.default-page-v61.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-page-v61.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-page-v61.3') }}</li> + <li>{{ trans('plugin-desktop/desktop-firefox.default-page-v61.4', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/ie/v11.blade.php b/resources/views/plugin/desktop/ie/v11.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..a895a62a24295f9d74a53e688d9631006110c9f6 --- /dev/null +++ b/resources/views/plugin/desktop/ie/v11.blade.php @@ -0,0 +1,18 @@ +<div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-ie.default-search-v11.1') !!}</li> + <li>{!! trans('plugin-desktop/desktop-ie.default-search-v11.2') !!}</li> + <li>{{ trans('plugin-desktop/desktop-ie.default-search-v11.3') }}</li> + <li>{{ trans('plugin-desktop/desktop-ie.default-search-v11.4') }}</li> + <li>{{ trans('plugin-desktop/desktop-ie.default-search-v11.5') }}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.1') !!}</li> + <li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.2') !!}</li> + <li>{{ trans('plugin-desktop/desktop-ie.default-page-v9.3') }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/ie/v9.blade.php b/resources/views/plugin/desktop/ie/v9.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..137c4b16bdf6d5368f4ebba28b982ece6ec85871 --- /dev/null +++ b/resources/views/plugin/desktop/ie/v9.blade.php @@ -0,0 +1,15 @@ +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-search') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-ie.default-search-v9.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-ie.default-search-v9.2') }}</li> + </ol> +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.1') !!}</li> + <li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.2') !!}</li> + <li>{{ trans('plugin-desktop/desktop-ie.default-page-v9.3') }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/opera/v36.blade.php b/resources/views/plugin/desktop/opera/v36.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..b6c5344c364632817134ba94330174d1a11e3922 --- /dev/null +++ b/resources/views/plugin/desktop/opera/v36.blade.php @@ -0,0 +1,19 @@ +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-search') }}</h3> + <ol> + <li>{{ trans('plugin-desktop/desktop-opera.default-search-v36.1') }}</li> + <li>{{ trans('plugin-desktop/desktop-opera.default-search-v36.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-opera.default-search-v36.3') }}</li> + <li style="list-style:none;"><small>{!! trans('plugin-page.desktop-unable') !!}</small></li> + </ol> + @include('parts.searchbar', ['class' => 'startpage-searchbar']) +</div> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{{ trans('plugin-desktop/desktop-opera.default-page-v36.1') }}</li> + <li>{{ trans('plugin-desktop/desktop-opera.default-page-v36.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-opera.default-page-v36.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + <li>{!! trans('plugin-desktop/desktop-opera.default-page-v36.3') !!}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/safari/v10.blade.php b/resources/views/plugin/desktop/safari/v10.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..fbfa5bcb76f28f7422368cf3a01455379c62c14e --- /dev/null +++ b/resources/views/plugin/desktop/safari/v10.blade.php @@ -0,0 +1,14 @@ + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-search') }}</h3> + <ol> + <li style="list-style:none;">{!! trans('plugin-page.desktop-unable') !!}</li> + </ol> +</div> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-safari.default-page-v10.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-safari.default-page-v10.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-safari.default-page-v10.3') }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/desktop/vivaldi/v3-3.blade.php b/resources/views/plugin/desktop/vivaldi/v3-3.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..2c2c4ac449e31823d8debbb336e94ea75f303728 --- /dev/null +++ b/resources/views/plugin/desktop/vivaldi/v3-3.blade.php @@ -0,0 +1,17 @@ +<h1 class="page-title">{{ trans('plugin-page.head.7') }}</h1> +<div class="card-heavy"> + <h3>{{ trans('plugin-page.default-search') }}</h3> + <ol> + <li>{!! trans('plugin-desktop/desktop-vivaldi.default-search-v3-3.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-vivaldi.default-search-v3-3.2') }}</li> + <li>{{ trans('plugin-desktop/desktop-vivaldi.default-search-v3-3.3') }}</li> + </ol> + @include('parts.searchbar', ['class' => 'startpage-searchbar']) +</div> +<div class="card-heavy"> + <h4>{{ trans('plugin-page.default-page') }}</h4> + <ol> + <li>{!! trans('plugin-desktop/desktop-vivaldi.default-page-v3-3.1') !!}</li> + <li>{{ trans('plugin-desktop/desktop-vivaldi.default-page-v3-3.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + </ol> +</div> \ No newline at end of file diff --git a/resources/views/plugin/mobile/chrome/v83.blade.php b/resources/views/plugin/mobile/chrome/v83.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..be03be2c202b937db8f16accc4dab9a2e8a55468 --- /dev/null +++ b/resources/views/plugin/mobile/chrome/v83.blade.php @@ -0,0 +1,26 @@ +@section('content') + +<div role="dialog"> + <h1 class="page-title">{{ trans('plugin-page.head.2') }}</h1> + <div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-mobile/mobile-chrome.default-search-v83.1') !!}</li> + <li>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.2') }}</li> + <li>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.3') }}</li> + <li>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.4') }}</li> + <li><small>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.5') }}</small></li> + </ol> + @include('parts.searchbar', ['class' => 'startpage-searchbar']) + </div> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-mobile/mobile-chrome.default-page-v83.1') !!}</li> + <li>{{ trans('plugin-mobile/mobile-chrome.default-page-v83.2') }}</li> + <li>{{ trans('plugin-mobile/mobile-chrome.default-page-v83.3') }}</li> + <li>{{ trans('plugin-mobile/mobile-chrome.default-page-v83.4', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li> + </ol> + </div> + +@endsection \ No newline at end of file diff --git a/resources/views/plugin/mobile/edge/v45.blade.php b/resources/views/plugin/mobile/edge/v45.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..1e9897e11464c05df6e07508ae54915ed2fe449b --- /dev/null +++ b/resources/views/plugin/mobile/edge/v45.blade.php @@ -0,0 +1,26 @@ +@section('content') + +<div role="dialog"> + <h1 class="page-title">{{ trans('plugin-page.head.5') }}</h1> + <div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-mobile/mobile-edge.default-search-v45.1') !!}</li> + <li>{{ trans('plugin-mobile/mobile-edge.default-search-v45.2') }}</li> + <li>{{ trans('plugin-mobile/mobile-edge.default-search-v45.3') }}</li> + <li>{{ trans('plugin-mobile/mobile-edge.default-search-v45.4') }}</li> + <li><small>{{ trans('plugin-mobile/mobile-edge.default-search-v45.5') }}</small></li> + </ol> + @include('parts.searchbar', ['class' => 'startpage-searchbar']) + </div> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-mobile/mobile-edge.default-page-v45.1') !!}</li> + <li>{!! trans('plugin-mobile/mobile-edge.default-page-v45.2') !!}</li> + <li>{{ trans('plugin-mobile/mobile-edge.default-page-v45.3') }}</li> + <li>{{ trans('plugin-mobile/mobile-edge.default-page-v45.4') }}</li> + </ol> + </div> + +@endsection \ No newline at end of file diff --git a/resources/views/plugin/mobile/firefox-klar/v8-8.blade.php b/resources/views/plugin/mobile/firefox-klar/v8-8.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..cece8c735ec9e14757d26bf23675464954135c76 --- /dev/null +++ b/resources/views/plugin/mobile/firefox-klar/v8-8.blade.php @@ -0,0 +1,17 @@ +@section('content') + +<div role="dialog"> + <h1 class="page-title">{{ trans('plugin-page.head.8') }}</h1> + <div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.1') !!}</li> + <li>{{ trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.2') }}</li> + <li>{{ trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.3') }}</li> + <li>{{ trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.4') }}</li> + <li style="list-style:none;">{{ trans('plugin-mobile/mobile-firefox.search-string') }}</li> + <code>{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route("resultpage", ["eingabe" => ""])) }}%s</code> + </ol> + </div> + +@endsection \ No newline at end of file diff --git a/resources/views/plugin/mobile/firefox/v80.blade.php b/resources/views/plugin/mobile/firefox/v80.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..2cd112ad379c5f28a818d2af8dfac0a8a1952647 --- /dev/null +++ b/resources/views/plugin/mobile/firefox/v80.blade.php @@ -0,0 +1,18 @@ +@section('content') + +<div role="dialog"> + <h1 class="page-title">{{ trans('plugin-page.head.1') }}</h1> + <div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{!! trans('plugin-mobile/mobile-firefox.default-search-v80.1') !!}</li> + <li>{{ trans('plugin-mobile/mobile-firefox.default-search-v80.2') }}</li> + <li>{{ trans('plugin-mobile/mobile-firefox.default-search-v80.3') }}</li> + <li>{{ trans('plugin-mobile/mobile-firefox.default-search-v80.4') }}</li> + <li>{!! trans('plugin-mobile/mobile-firefox.default-search-v80.5') !!}</li> + <li style="list-style:none;">{{ trans('plugin-mobile/mobile-firefox.search-string') }}</li> + <code>{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route("resultpage", ["eingabe" => ""])) }}%s</code> + </ol> + </div> + +@endsection \ No newline at end of file diff --git a/resources/views/plugin/mobile/firefox/vlt80.blade.php b/resources/views/plugin/mobile/firefox/vlt80.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..02c916094d240e948dc7c39341f20053d7e8d438 --- /dev/null +++ b/resources/views/plugin/mobile/firefox/vlt80.blade.php @@ -0,0 +1,15 @@ +@section('content') + +<div role="dialog"> + <h1 class="page-title">{{ trans('plugin-page.head.1') }}</h1> + <div class="card-heavy"> + <h3>{!! trans('plugin-page.default-search') !!}</h3> + <ol> + <li>{{ trans('plugin-mobile/mobile-firefox.default-search-vlt80.1') }}</li> + <li>{{ trans('plugin-mobile/mobile-firefox.default-search-vlt80.2') }}</li> + <li>{{ trans('plugin-mobile/mobile-firefox.default-search-vlt80.3') }}</li> + </ol> + @include('parts.searchbar', ['class' => 'startpage-searchbar']) + </div> + +@endsection \ No newline at end of file diff --git a/resources/views/plugin/mobile/opera/v60.blade.php b/resources/views/plugin/mobile/opera/v60.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..f05e270e85205c55672f2951f491e8ac770ae9e4 --- /dev/null +++ b/resources/views/plugin/mobile/opera/v60.blade.php @@ -0,0 +1,23 @@ +@section('content') + +<div role="dialog"> + <h1 class="search-title">{{ trans('plugin-page.head.3') }}</h1> + <div class="card-heavy"> + <h3>{{ trans('plugin-page.default-page') }}</h3> + <ol> + <li>{!! trans('plugin-page/mobile-unable.php') !!}</li> + </ol> + </div> + <div class="card-heavy"> + <h3>{!! trans('plugin-page.default-page') !!}</h3> + <ol> + <li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.1') }}</li> + <li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.2') }}</li> + <li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.3') }}</li> + <li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.4') }}</li> + <li><small>{{ trans('plugin-page.mobile-unable') }}</small></li> + @include('parts.searchbar', ['class' => 'startpage-searchbar']) + </ol> + </div> + +@endsection \ No newline at end of file diff --git a/resources/views/settings/allSettings.blade.php b/resources/views/settings/allSettings.blade.php index 1e278278357a3f05bbf8f1e1afc1e90901ec0efc..263ae46e4e720c35fc9abe16ef8e93df9adbe341 100644 --- a/resources/views/settings/allSettings.blade.php +++ b/resources/views/settings/allSettings.blade.php @@ -32,6 +32,8 @@ @endforeach @elseif($key === "key") @lang('settings.key') + @elseif(strpos($key, "_blpage")) + @lang('settings.blentry') @endif </td> <td> diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php index dab66c36343b7f6fb6f6dc84a14f93a83e97e172..e673165a34a4710b3e0f794881524cc4d7a91fdb 100644 --- a/resources/views/settings/index.blade.php +++ b/resources/views/settings/index.blade.php @@ -11,6 +11,11 @@ <div class="card-light"> <h2>@lang('settings.hint.header')</h2> <p>@lang('settings.hint.text', ["link" => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('showAllSettings', ['url' => url()->full()])) ])</p> + <p>@lang('settings.hint.loadSettings')</p> + <div id="cookieLink"> + <input id="loadSettings" type="text" value="{{$cookieLink}}"> + <button class="js-only btn btn-default" onclick="var copyText = document.getElementById('loadSettings');copyText.select();copyText.setSelectionRange(0, 99999);document.execCommand('copy');">@lang('settings.copy')</button> + </div> </div> <div class="card-light"> <h2>@lang('settings.header.2')</h2> @@ -82,24 +87,57 @@ </div> <button type="submit" class="btn btn-default">@lang('settings.save')</button> </form> + </div> + <div class="card-light" id="blacklist"> + <h2>@lang('settings.header.4')</h2> + <p>@lang('settings.text.4')</p> + <form id="newentry" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('newBlacklist', ["fokus" => $fokus, "url" => $url])) }}" method="post"> + <input type="hidden" name="url" value="{{ $url }}"> + <input type="hidden" name="fokus" value="{{ $fokus }}"> + <label for="blacklist">@lang('settings.address')</label> + <div id="create"> + <input id="blacklist" name="blacklist" type="text" placeholder="example.com"> + <button type="submit" class="btn btn-default">@lang('settings.add')</button> + </div> + </form> + @if(!empty($blacklist)) + <form id="deleteentry" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('deleteBlacklist', ["fokus" => $fokus, "url" => $url])) }}" method="post"> + <table> + @foreach($blacklist as $key => $value) + <tr> + <td> + {{ $value }} + </td> + <td> + <button type="submit" name="cookieKey" value="{{ $key }}"><i class="fas fa-trash-alt"></i></button> + </td> + </tr> + @endforeach + </table> + </form> + <form id="clearlist" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('clearBlacklist', ["fokus" => $fokus, "url" => $url])) }}" method="post"> + <button type="submit" name="clear" value="1">@lang('settings.clear')</button> + </form> + @endif </div> + @if(LaravelLocalization::getCurrentLocale() === "de") - <div class="card-light"> - <h2>Weitere Einstellungen</h2> - <form id="setting-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableSetting')) }}" method="post" class="form"> - <input type="hidden" name="fokus" value="{{ $fokus }}"> - <input type="hidden" name="url" value="{{ $url }}"> - <div class="form-group"> - <label for="zitate">Zitate</label> - <select name="zitate" id="zitate" class="form-control"> - <option value="on" @if(Cookie::get($fokus . "_setting_zitate") === null)disabled selected @endif>Anzeigen</option> - <option value="off" {{ Cookie::get($fokus . "_setting_zitate") === "off" ? "disabled selected" : "" }}>Nicht Anzeigen</option> - </select> + <div class="card-light"> + <h2>Weitere Einstellungen</h2> + <form id="setting-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableSetting')) }}" method="post" class="form"> + <input type="hidden" name="fokus" value="{{ $fokus }}"> + <input type="hidden" name="url" value="{{ $url }}"> + <div class="form-group"> + <label for="zitate">Zitate</label> + <select name="zitate" id="zitate" class="form-control"> + <option value="on" @if(Cookie::get($fokus . "_setting_zitate") === null)disabled selected @endif>Anzeigen</option> + <option value="off" {{ Cookie::get($fokus . "_setting_zitate") === "off" ? "disabled selected" : "" }}>Nicht Anzeigen</option> + </select> + </div> + <button type="submit" class="btn btn-default">@lang('settings.save')</button> + </form> </div> - <button type="submit" class="btn btn-default">@lang('settings.save')</button> - </form> - </div> @endif <div class="card-light" id="actions"> @if($settingActive) diff --git a/resources/views/team/team.blade.php b/resources/views/team/team.blade.php index 525bd9e6f6346397c45d881616d9111730e8e4e8..da1af7fcae6d4bcc1144e972e3ffc6591edff3dd 100644 --- a/resources/views/team/team.blade.php +++ b/resources/views/team/team.blade.php @@ -13,7 +13,7 @@ </li> <li> <p>Riel, Carsten - {!! trans('team.role.1') !!} & {!! trans('team.role.7') !!} - - <a href="carsten@suma-ev.de">carsten@suma-ev.de</a></p> + <a href="mailto:carsten@suma-ev.de">carsten@suma-ev.de</a></p> </li> <li> <p>Branz, Manuela - {!! trans('team.role.3') !!} & {!! trans('team.role.2') !!} - @@ -27,6 +27,10 @@ <p>Höfer, Kim - {!! trans('team.role.6') !!} - <a href="mailto:kim@suma-ev.de">kim@suma-ev.de</a></p> </li> + <li> + <p>Aprea, Davide - {!! trans('team.role.9') !!} - + <a href="mailto:davide@suma-ev.de">davide@suma-ev.de</a></p> + </li> <li> <p><a href="https://de.wikipedia.org/wiki/Wolfgang_Sander-Beuermann" target="_blank" rel="noopener">Sander-Beuermann, Wolfgang</a>, Dr.-Ing - {!! trans('team.role.8') !!} - <a href="mailto:wsb@suma-ev.de">wsb@suma-ev.de</a> diff --git a/resources/views/tor.blade.php b/resources/views/tor.blade.php index fba63f18a0aaf93f57b7170f54097fad8da78e07..8d6de367c73f9a82d070b914794b7ecb635a444c 100644 --- a/resources/views/tor.blade.php +++ b/resources/views/tor.blade.php @@ -5,5 +5,5 @@ @section('content') <h1>MetaGer hidden service</h1> <p>@lang('tor.description')</p> - <a class="btn btn-primary" href="http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/" role="button">{{trans('tor.torbutton')}}</a> + <a class="btn btn-primary" href="{{trans('tor.torurl')}}" role="button">{{trans('tor.torbutton')}}</a> @endsection diff --git a/routes/cookie.php b/routes/cookie.php index 8ad3a67810e7f6ddaf5d0547e6c2ffe2bc9238b4..515dd0ca82b6995d51ad7da0bdab21c300024fdd 100644 --- a/routes/cookie.php +++ b/routes/cookie.php @@ -20,12 +20,15 @@ Route::group( Route::post('ef', 'SettingsController@enableFilter')->name('enableFilter'); Route::post('es', 'SettingsController@enableSetting')->name('enableSetting'); Route::post('ds', 'SettingsController@deleteSettings')->name('deleteSettings'); + Route::post('nb', 'SettingsController@newBlacklist')->name('newBlacklist'); + Route::post('db', 'SettingsController@deleteBlacklist')->name('deleteBlacklist'); + Route::post('cb', 'SettingsController@clearBlacklist')->name('clearBlacklist'); # Route to show and delete all settings Route::get('all-settings', 'SettingsController@allSettingsIndex')->name('showAllSettings'); Route::post('all-settings/removeOne', 'SettingsController@removeOneSetting')->name('removeOneSetting'); Route::post('all-settings/removeAll', 'SettingsController@removeAllSettings')->name('removeAllSettings'); - + Route::get('load-settings', 'SettingsController@loadSettings')->name('loadSettings'); }); } ); diff --git a/routes/web.php b/routes/web.php index a13d1320c984c80fea11ac25fb333c152de36484..875b21d7f2f49d35c24081b0bb4bcf5ff88f289e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ <?php +use Illuminate\Support\Facades\Redis; use Jenssegers\Agent\Agent; use Prometheus\RenderTextFormat; @@ -165,6 +166,7 @@ Route::group( return view('plugin-page') ->with('title', trans('titles.plugin')) ->with('navbarFocus', 'dienste') + ->with('agent', new Agent()) ->with('browser', (new Agent())->browser()) ->with('request', $this->input('request', 'GET')); }); @@ -203,6 +205,21 @@ Route::group( Route::get('r/metager/{mm}/{pw}/{url}', ['as' => 'humanverification', 'uses' => 'HumanVerification@removeGet']); Route::post('img/dog.jpg', 'HumanVerification@whitelist'); Route::get('index.css', 'HumanVerification@browserVerification'); + Route::get('index.js', function () { + $key = Request::input("id", ""); + + // Verify that key is a md5 checksum + if (!preg_match("/^[a-f0-9]{32}$/", $key)) { + abort(404); + } + + Redis::connection("cache")->pipeline(function ($redis) use ($key) { + $redis->rpush("js" . $key, true); + $redis->expire($key, 30); + }); + + return response(view('layouts.resultpage.verificationCss'), 200)->header("Content-Type", "text/css"); + }); Route::get('meta/picture', 'Pictureproxy@get'); Route::get('clickstats', 'LogController@clicklog'); diff --git a/storage/app/public/aufnahmeantrag-de.pdf b/storage/app/public/aufnahmeantrag-de.pdf index ff8f662179edb92ef13f82e74ff6604cb8ac71d2..771eca78df7a258a7c11431fc1595a778c4ce63e 100755 Binary files a/storage/app/public/aufnahmeantrag-de.pdf and b/storage/app/public/aufnahmeantrag-de.pdf differ diff --git a/storage/app/public/aufnahmeantrag-en.pdf b/storage/app/public/aufnahmeantrag-en.pdf index 96f174ec2ef0b5839757a98b7caf0f57459d4774..594b9dfa3dee6a429daab19648482f6017c428bb 100755 Binary files a/storage/app/public/aufnahmeantrag-en.pdf and b/storage/app/public/aufnahmeantrag-en.pdf differ