From a41a272be1162e46165466cbef8fd89161fcadc4 Mon Sep 17 00:00:00 2001 From: Dominik Pfennig <dominik@suma-ev.de> Date: Mon, 19 Sep 2016 08:37:38 +0200 Subject: [PATCH] =?UTF-8?q?Option=20eingebaut=20mit=20der=20MetaGer=20?= =?UTF-8?q?=C3=BCber=20eine=20POST=20Request=20abgefragt=20werden=20kann.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/StartpageController.php | 107 +++++++++--------- app/Http/routes.php | 2 +- resources/lang/de/settings.php | 2 + resources/views/index.blade.php | 2 +- .../views/layouts/researchandtabs.blade.php | 2 +- resources/views/plugin.blade.php | 6 +- resources/views/settings.blade.php | 5 + 7 files changed, 69 insertions(+), 57 deletions(-) diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php index 0725cc289..1aef59d0b 100644 --- a/app/Http/Controllers/StartpageController.php +++ b/app/Http/Controllers/StartpageController.php @@ -2,12 +2,11 @@ namespace App\Http\Controllers; -use Jenssegers\Agent\Agent; - +use App; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Jenssegers\Agent\Agent; use Response; -use App; class StartpageController extends Controller { @@ -19,24 +18,22 @@ class StartpageController extends Controller */ /* public function loadStartPage($locale = "de") { - \App::setLocale($locale); - return view('index', [ - 'title' => 'MetaGer: Sicher suchen & finden, Privatsphäre schützen', - 'homeIcon']); + \App::setLocale($locale); + return view('index', [ + 'title' => 'MetaGer: Sicher suchen & finden, Privatsphäre schützen', + 'homeIcon']); } */ - public function loadStartPage(Request $request) + public function loadStartPage(Request $request) { $focusPages = []; - foreach($request->all() as $key => $value) - { - if($value === 'on' && $key != 'param_sprueche' && $key != 'param_tab') - { - $focusPages[] = str_replace('param_', '', $key); + foreach ($request->all() as $key => $value) { + if ($value === 'on' && $key != 'param_sprueche' && $key != 'param_tab') { + $focusPages[] = str_replace('param_', '', $key); } } - $agent = new Agent(); + $agent = new Agent(); $browser = $agent->browser(); return view('index') @@ -58,15 +55,15 @@ class StartpageController extends Controller { /* TODO CSS und Titel laden $css = array( - 'datenschutz' => 'privacy.css', + 'datenschutz' => 'privacy.css', ); if (in_array($subpage, $css)) { - return view($subpage, [ 'title' => 'Datenschutz Richtlinien', 'css' => $css[$subpage]]); + return view($subpage, [ 'title' => 'Datenschutz Richtlinien', 'css' => $css[$subpage]]); } else { - return view($subpage, [ 'title' => 'Datenschutz Richtlinien']); - }*/ return view($subpage, [ 'title' => 'Datenschutz Richtlinien']); + }*/ + return view($subpage, ['title' => 'Datenschutz Richtlinien']); } public function loadLocalPage($locale = "de", $subpage = "datenschutz") @@ -77,66 +74,74 @@ class StartpageController extends Controller public function loadPlugin($params, $locale = "de") { - $params = unserialize(base64_decode($params)); + $params = unserialize(base64_decode($params)); $requests = $params; - $params = []; - foreach($requests as $key => $value) - { - if( strpos($key, "param_") === 0 ) - { - $key = substr($key, strpos($key, "param_") + 6 ); + $params = []; + foreach ($requests as $key => $value) { + if (strpos($key, "param_") === 0) { + $key = substr($key, strpos($key, "param_") + 6); } $params[$key] = $value; } - if(!isset($params['focus'])) + if (!isset($params['focus'])) { $params['focus'] = 'web'; - if(!isset($params['encoding'])) + } + + if (!isset($params['encoding'])) { $params['encoding'] = 'utf8'; - if(!isset($params['lang'])) + } + + if (!isset($params['lang'])) { $params['lang'] = 'all'; + } + + if (isset($params['request']) && ($params['request'] === "GET" || $params['request'] === "POST")) { + $request = $params['request']; + } else { + $request = "GET"; + } + array_forget($params, 'eingabe'); array_forget($params, 'out'); array_forget($params, 'page'); + array_forget($params, 'request'); $link = action('MetaGerSearch@search', $params); $response = Response::make( - view('plugin')->with('link', $link), "200"); + view('plugin') + ->with('link', $link) + ->with('request', $request), "200"); $response->header('Content-Type', "application/xml"); return $response; - return $link; } - public function loadSettings (Request $request) + public function loadSettings(Request $request) { $sumaFile = ""; - if(App::isLocale('en')) + if (App::isLocale('en')) { $sumaFile = config_path() . "/sumas.xml"; - else + } else { $sumaFile = config_path() . "/sumas.xml"; + } - $xml = simplexml_load_file($sumaFile); + $xml = simplexml_load_file($sumaFile); $sumas = $xml->xpath("suma"); $foki = []; - foreach($sumas as $suma) - { - if( (!isset($suma['disabled']) || $suma['disabled'] === "") && ( !isset($suma['userSelectable']) || $suma['userSelectable']->__toString() === "1") ) - { - if( isset($suma['type']) ) - { + foreach ($sumas as $suma) { + if ((!isset($suma['disabled']) || $suma['disabled'] === "") && (!isset($suma['userSelectable']) || $suma['userSelectable']->__toString() === "1")) { + if (isset($suma['type'])) { $f = explode(",", $suma['type']->__toString()); - foreach($f as $tmp) - { - $displayName = $suma['displayName']->__toString(); - $url = isset($suma['homepage']) ? $suma['homepage']->__toString() : "https://metager.de"; - $foki[$tmp][$suma['name']->__toString()] = [ 'displayName' => $displayName, 'url' => $url]; + foreach ($f as $tmp) { + $displayName = $suma['displayName']->__toString(); + $url = isset($suma['homepage']) ? $suma['homepage']->__toString() : "https://metager.de"; + $foki[$tmp][$suma['name']->__toString()] = ['displayName' => $displayName, 'url' => $url]; } - }else - { - $displayName = $suma['displayName']->__toString(); - $url = isset($suma['homepage']) ? $suma['homepage']->__toString() : "https://metager.de"; - $foki["andere"][$suma['name']->__toString()] = [ 'displayName' => $displayName, 'url' => $url]; + } else { + $displayName = $suma['displayName']->__toString(); + $url = isset($suma['homepage']) ? $suma['homepage']->__toString() : "https://metager.de"; + $foki["andere"][$suma['name']->__toString()] = ['displayName' => $displayName, 'url' => $url]; } } } @@ -151,4 +156,4 @@ class StartpageController extends Controller return $xml->saveXML(); } -} \ No newline at end of file +} diff --git a/app/Http/routes.php b/app/Http/routes.php index 9c3cc316c..04074ed73 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -147,7 +147,7 @@ Route::group( Route::get('settings', 'StartpageController@loadSettings'); - Route::get('meta/meta.ger3', 'MetaGerSearch@search'); + Route::match(['get', 'post'], 'meta/meta.ger3', 'MetaGerSearch@search'); Route::get('meta/picture', 'Pictureproxy@get'); Route::get('clickstats', 'LogController@clicklog'); Route::get('pluginClose', 'LogController@pluginClose'); diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php index e809540e5..ea0ad63ed 100644 --- a/resources/lang/de/settings.php +++ b/resources/lang/de/settings.php @@ -29,4 +29,6 @@ return [ 'speichern.2' => 'Einstellungen dauerhaft speichern', 'speichern.3' => 'Plugin mit diesen Einstellungen generieren', 'speichern.4' => 'Einstellungen zurücksetzen', + + 'request' => 'Mit welcher Methode soll MetaGer abgefragt werden', ]; diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index dc71495ba..91046290d 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -160,7 +160,7 @@ </label> </fieldset> <fieldset> - <form id="searchForm" method="GET" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/meta.ger3") }}" accept-charset="UTF-8"> + <form id="searchForm" @if(Request::has('request') && Request::input('request') === "POST") method="POST" @elseif(Request::has('request') && Request::input('request') === "GET") method="GET" @else method="GET" @endif action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/meta.ger3") }}" accept-charset="UTF-8"> <div class="input-group"> <div class="input-group-addon"> <button type="button" data-toggle="popover" data-html="true" data-container="body" title="{{ trans('index.design') }}" data-content='<ul id="color-chooser" class="list-inline list-unstyled"> diff --git a/resources/views/layouts/researchandtabs.blade.php b/resources/views/layouts/researchandtabs.blade.php index 6b274cb4d..e321f55e4 100644 --- a/resources/views/layouts/researchandtabs.blade.php +++ b/resources/views/layouts/researchandtabs.blade.php @@ -11,7 +11,7 @@ </div> </li> <li class="pull-right"> - <form method="get" accept-charset="UTF-8" class="form" id="submitForm"> + <form method="{{ Request::method() }}" accept-charset="UTF-8" class="form" id="submitForm"> <div class="input-group"> <input autocomplete="off" class="form-control" form="submitForm" id="eingabeTop" name="eingabe" placeholder="Suchbegriffe erweitern/verändern, oder völlig neue Suche:" tabindex="1" type="text" value="{{ $eingabe }}" required /> <div class="input-group-addon"> diff --git a/resources/views/plugin.blade.php b/resources/views/plugin.blade.php index f4095e76d..2f6c07d7f 100644 --- a/resources/views/plugin.blade.php +++ b/resources/views/plugin.blade.php @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xmlversion = "1.0"encoding = "UTF-8"?> <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> <ShortName>MetaGer</ShortName> <Description>MetaGer: Sicher suchen & finden, Privatsphäre schützen</Description> <Contact>office@suma-ev.de</Contact> <Image width="16" height="16" type="image/x-icon">{{ url('/favicon.ico') }}</Image> - <Url type="text/html" template="{{ $link }}&eingabe={searchTerms}" method="get"></Url> + <Url type="text/html" template="{{ $link }}&eingabe={searchTerms}" method="{{$request}}"></Url> <InputEncoding>UTF-8</InputEncoding> -</OpenSearchDescription> \ No newline at end of file +</OpenSearchDescription> diff --git a/resources/views/settings.blade.php b/resources/views/settings.blade.php index 9bfba205d..492de42a3 100644 --- a/resources/views/settings.blade.php +++ b/resources/views/settings.blade.php @@ -33,6 +33,11 @@ <option value="5000">{!! trans('settings.zeit.4') !!}</option> <option value="10000">{!! trans('settings.zeit.5') !!}</option> <option value="20000">{!! trans('settings.zeit.6') !!}</option></select> + <label class="select-label">{{ trans('settings.request') }}:</label> + <select class="form-control" name="request"> + <option value="GET" selected>GET</option> + <option value="POST">POST</option> + </select> <h2>{!! trans('settings.suchmaschinen.1') !!} <small><a class="allUnchecker">{!! trans('settings.suchmaschinen.2') !!}</a></small></h2> @foreach( $foki as $fokus => $sumas ) <div class="headingGroup {{ $fokus }}"> -- GitLab