diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php index 6384ed2f9a33fc057899089c664cdad089197d6e..20a50f8be6d52d14d0ad9fdd765cc4eae0b88457 100644 --- a/app/Http/Controllers/MetaGerSearch.php +++ b/app/Http/Controllers/MetaGerSearch.php @@ -19,11 +19,11 @@ class MetaGerSearch extends Controller $time = microtime(); # Mit gelieferte Formulardaten parsen und abspeichern: $metager->parseFormData($request); - if($metager->getFokus() !== "bilder" ) - { + #if($metager->getFokus() !== "bilder" ) + #{ # Nach Spezialsuchen überprüfen: $metager->checkSpecialSearches($request); - } + #} # Alle Suchmaschinen erstellen $metager->createSearchEngines($request); diff --git a/app/MetaGer.php b/app/MetaGer.php index 2d8dffb3e83bfe29f5366967ea9fda61aa5fdfe6..e15aeff382a2bf9b590b275d863a9d0401b79496 100644 --- a/app/MetaGer.php +++ b/app/MetaGer.php @@ -292,25 +292,16 @@ class MetaGer if($this->fokus === "angepasst") { $sumas = $xml->xpath("suma"); - /**$maxSumas = 30; - $count = 0; - foreach($sumas as $suma) - { - if($maxSumas === $count) - break; - $enabledSearchengines[] = $suma; - $count++; - }**/ + foreach($sumas as $suma) { if($request->has($suma["service"]) - #|| ( $this->fokus !== "bilder" - # && ($suma["name"]->__toString() === "qualigo" - # || $suma["name"]->__toString() === "similar_product_ads" - # || ( !$overtureEnabled && $suma["name"]->__toString() === "overtureAds" ) - # ) - # ) - #|| 1 === 1 #Todo: entfernen + || ( $this->fokus !== "bilder" + && ($suma["name"]->__toString() === "qualigo" + || $suma["name"]->__toString() === "similar_product_ads" + || ( !$overtureEnabled && $suma["name"]->__toString() === "overtureAds" ) + ) + ) ){ if(!(isset($suma['disabled']) && $suma['disabled']->__toString() === "1")) @@ -355,17 +346,38 @@ class MetaGer { $this->errors[] = "Achtung: Sie haben in ihren Einstellungen keine Suchmaschine ausgewählt."; } + $engines = []; + $siteSearchFailed = false; + if( strlen($this->site) > 0 ) + { + # Wenn eine Sitesearch durchgeführt werden soll, überprüfen wir ob eine der Suchmaschinen überhaupt eine Sitesearch unterstützt: + $enginesWithSite = 0; + foreach($enabledSearchengines as $engine) + { + if( isset($engine['hasSiteSearch']) && $engine['hasSiteSearch']->__toString() === "1" ) + { + $enginesWithSite++; + } + } + if( $enginesWithSite === 0 ) + { + $this->errors[] = "Sie wollten eine Sitesearch auf " . $this->site . " durchführen. Leider unterstützen die eingestellten Suchmaschinen diese nicht. Sie können <a href=\"" . $this->generateSearchLink("web", false) . "\">hier</a> die Sitesearch im Web-FoKus durchführen. Es werden ihnen Ergebnisse ohne Sitesearch angezeigt."; + $siteSearchFailed = true; + }else + { + $this->warnings[] = "Sie führen eine Sitesearch durch. Es werden nur Ergebnisse von der Seite: \"" . $this->site . "\" angezeigt."; + } + } - $engines = []; foreach($enabledSearchengines as $engine){ - if(strlen($this->site) > 0 && (!isset($engine["hasSiteSearch"]) || $engine["hasSiteSearch"]->__toString() !== "1")) + if( !$siteSearchFailed && strlen($this->site) > 0 && ( !isset($engine['hasSiteSearch']) || $engine['hasSiteSearch']->__toString() === "0") ) { + continue; } - # Wenn diese Suchmaschine gar nicht eingeschaltet sein soll $path = "App\Models\parserSkripte\\" . ucfirst($engine["package"]->__toString()); @@ -405,11 +417,11 @@ class MetaGer # Abbruchbedingung if($time < 500) { - if($loadedEngines >= $enginesToLoad && $canBreak) + if(($enginesToLoad === 0 || $loadedEngines >= $enginesToLoad) && $canBreak) break; }elseif( $time >= 500 && $time < $this->time) { - if( ($loadedEngines / ($enginesToLoad * 1.0)) >= 0.8 && $canBreak ) + if( ($enginesToLoad === 0 || ($loadedEngines / ($enginesToLoad * 1.0)) >= 0.8) && $canBreak ) break; }else { @@ -588,12 +600,10 @@ class MetaGer { $this->site = $match[2]; $this->q = $match[1] . $match[3]; - $this->warnings[] = "Sie führen eine Sitesearch durch. Es werden nur Ergebnisse von der Seite: \"" . $this->site . "\" angezeigt."; } if( $request->has('site') ) { $this->site = $request->input('site'); - $this->warnings[] = "Sie führen eine Sitesearch durch. Es werden nur Ergebnisse von der Seite: \"" . $this->site . "\" angezeigt."; } # Wenn die Suchanfrage um das Schlüsselwort "-host:*" ergänzt ist, sollen bestimmte Hosts nicht eingeblendet werden # Wir prüfen, ob das hier der Fall ist: @@ -671,9 +681,6 @@ class MetaGer public function getQ () { - if(strlen($this->site) > 0) - return $this->q . " site:" . $this->site; - else return $this->q; } @@ -777,11 +784,12 @@ class MetaGer } } - public function generateSearchLink($fokus) + public function generateSearchLink($fokus, $results = true) { $requestData = $this->request->except('page'); $requestData['focus'] = $fokus; - $requestData['out'] = "results"; + if($results) + $requestData['out'] = "results"; $link = action('MetaGerSearch@search', $requestData); return $link; } diff --git a/app/Models/Searchengine.php b/app/Models/Searchengine.php index cb508ff46edcb506b6b43c9e91885a039a261e73..d3423b0476afa8074999b2d4584ade660ed05643 100644 --- a/app/Models/Searchengine.php +++ b/app/Models/Searchengine.php @@ -61,8 +61,15 @@ abstract class Searchengine $this->gefVon = "<a href=\"" . $this->homepage . "\" target=\"_blank\">" . $this->displayName . "</a>"; $this->startTime = microtime(); - $this->getString = $this->generateGetString($metager->getQ(), $metager->getUrl(), $metager->getLanguage(), $metager->getCategory()); - + $q = ""; + if( isset($this->hasSiteSearch) && $this->hasSiteSearch === "1") + { + $q = $metager->getQ() . " site:" . $metager->getSite(); + }else + { + $q = $metager->getQ(); + } + $this->getString = $this->generateGetString($q, $metager->getUrl(), $metager->getLanguage(), $metager->getCategory()); $this->hash = $metager->getHashCode(); # Die Anfragen an die Suchmaschinen werden nun von der Laravel-Queue bearbeitet: diff --git a/app/Models/parserSkripte/Ecoshopper.php b/app/Models/parserSkripte/Ecoshopper.php index 1ab99ce68dd4dd71a2c61e334c45361d7f51a394..c5e74c27b2ced9b435e853ace3103a6696f66cc1 100644 --- a/app/Models/parserSkripte/Ecoshopper.php +++ b/app/Models/parserSkripte/Ecoshopper.php @@ -2,6 +2,7 @@ namespace app\Models\parserSkripte; use App\Models\Searchengine; +use Log; class Ecoshopper extends Searchengine { @@ -17,7 +18,8 @@ class Ecoshopper extends Searchengine try { $content = simplexml_load_string($result); } catch (\Exception $e) { - abort(500, "$result is not a valid xml string"); + Log::error("Ergebnisse von Ecoshopper konnten nicht eingelesen werden"); + return; } if(!$content) diff --git a/app/Models/parserSkripte/Mg_produkt2.php b/app/Models/parserSkripte/Mg_produkt2.php index e6688252b6723b9ba4d748e332d327078145888b..6aba1210bcf821c88c0437f1f928e322a74d3ba3 100644 --- a/app/Models/parserSkripte/Mg_produkt2.php +++ b/app/Models/parserSkripte/Mg_produkt2.php @@ -2,7 +2,7 @@ namespace app\Models\parserSkripte; use App\Models\Searchengine; - +use Log; class Mg_produkt2 extends Searchengine { public $results = []; @@ -18,7 +18,8 @@ class Mg_produkt2 extends Searchengine try { $content = simplexml_load_string($result); } catch (\Exception $e) { - abort(500, "$result is not a valid xml string"); + Log::error("MG_Produkt konnte keine Ergebnisse bekommen"); + return; } if(!$content) diff --git a/resources/views/errors/500.blade.php b/resources/views/errors/500.blade.php index 5c78212eb5131a6141da811ca0cccd1743fc91d5..e14254b919a68b5590f073593341736d9294847d 100644 --- a/resources/views/errors/500.blade.php +++ b/resources/views/errors/500.blade.php @@ -5,4 +5,7 @@ @section('content') <h1>{{ trans('500.1') }}</h1> <p>{{ trans('500.2') }}</p> +@if( config('app.debug') ) +<pre>{{ $exception }}</pre> +@endif @endsection \ No newline at end of file diff --git a/resources/views/layouts/researchandtabs.blade.php b/resources/views/layouts/researchandtabs.blade.php index a02b44dd2e8f63e39cc8b4a0557c66f973eb9e4c..5fd584522a143c0a45cafad28ac4dffdffceb409 100644 --- a/resources/views/layouts/researchandtabs.blade.php +++ b/resources/views/layouts/researchandtabs.blade.php @@ -123,24 +123,6 @@ </ul> <div class="tab-content container-fluid"> - @if( sizeof($errors) > 0 ) - <div class="alert alert-danger"> - <ul> - @foreach($errors as $error) - <li>{{ $error }}</li> - @endforeach - </ul> - </div> - @endif - @if( sizeof($warnings) > 0) - <div class="alert alert-warning"> - <ul> - @foreach($warnings as $warning) - <li>{{ $warning }}</li> - @endforeach - </ul> - </div> - @endif @if( $metager->getFokus() === "web" ) <div role="tabpanel" class="tab-pane active" id="web"> diff --git a/resources/views/layouts/resultPage.blade.php b/resources/views/layouts/resultPage.blade.php index 55511408d59ae30af0d1909ff60fe9a016eebfb0..b93e7613441c5ddf8bde02baaea66cb05e090f83 100644 --- a/resources/views/layouts/resultPage.blade.php +++ b/resources/views/layouts/resultPage.blade.php @@ -21,24 +21,6 @@ @include('layouts.researchandtabs') @else <div class="tab-content container-fluid"> - @if( sizeof($errors) > 0 ) - <div class="alert alert-danger"> - <ul> - @foreach($errors as $error) - <li>{{ $error }}</li> - @endforeach - </ul> - </div> - @endif - @if( sizeof($warnings) > 0) - <div class="alert alert-warning"> - <ul> - @foreach($warnings as $warning) - <li>{{ $warning }}</li> - @endforeach - </ul> - </div> - @endif @yield('results') </div> @endif diff --git a/resources/views/metager3.blade.php b/resources/views/metager3.blade.php index 2c78a240eecf34ed06e9d644c8b03231b15131d6..b169b36fdd325ffb7a80a91543383df2f57d8e96 100644 --- a/resources/views/metager3.blade.php +++ b/resources/views/metager3.blade.php @@ -1,6 +1,24 @@ @extends('layouts.resultPage') @section('results') +@if( sizeof($errors) > 0 ) + <div class="alert alert-danger"> + <ul> + @foreach($errors as $error) + <li>{!! $error !!}</li> + @endforeach + </ul> + </div> + @endif + @if( sizeof($warnings) > 0) + <div class="alert alert-warning"> + <ul> + @foreach($warnings as $warning) + <li>{!! $warning !!}</li> + @endforeach + </ul> + </div> + @endif @if( $metager->showQuicktips() ) <div class="col-xs-12 col-md-8 resultContainer"> @else diff --git a/resources/views/metager3bilder.blade.php b/resources/views/metager3bilder.blade.php index 13606769d5199525ecf8680ad3f9c666e16351c4..c0ba4a325ecbc06bafd1632a8ef78a69b468d80b 100644 --- a/resources/views/metager3bilder.blade.php +++ b/resources/views/metager3bilder.blade.php @@ -1,6 +1,24 @@ @extends('layouts.resultPage') @section('results') +@if( sizeof($errors) > 0 ) + <div class="alert alert-danger"> + <ul> + @foreach($errors as $error) + <li>{!! $error !!}</li> + @endforeach + </ul> + </div> + @endif + @if( sizeof($warnings) > 0) + <div class="alert alert-warning"> + <ul> + @foreach($warnings as $warning) + <li>{!! $warning !!}</li> + @endforeach + </ul> + </div> + @endif <div id="container"> @foreach($metager->getResults()->items() as $result) <div class="item"> diff --git a/resources/views/metager3bilderresults.blade.php b/resources/views/metager3bilderresults.blade.php index fde7799d86579f8f2a609963f5a3b902f45d0035..73fdf5da00fac1a41c3cde303b45fe65634bfd86 100644 --- a/resources/views/metager3bilderresults.blade.php +++ b/resources/views/metager3bilderresults.blade.php @@ -1,3 +1,21 @@ +@if( sizeof($errors) > 0 ) + <div class="alert alert-danger"> + <ul> + @foreach($errors as $error) + <li>{!! $error !!}</li> + @endforeach + </ul> + </div> + @endif + @if( sizeof($warnings) > 0) + <div class="alert alert-warning"> + <ul> + @foreach($warnings as $warning) + <li>{!! $warning !!}</li> + @endforeach + </ul> + </div> + @endif <div id="container"> @foreach($metager->getResults()->items() as $result) <div class="item"> diff --git a/resources/views/metager3results.blade.php b/resources/views/metager3results.blade.php index 2338ae9d01a1116c1d1bcbf5bd14d6b1428e4218..add3ebca93cdb83dbd8d4f83a1c266ce71102071 100644 --- a/resources/views/metager3results.blade.php +++ b/resources/views/metager3results.blade.php @@ -1,3 +1,21 @@ +@if( sizeof($errors) > 0 ) + <div class="alert alert-danger"> + <ul> + @foreach($errors as $error) + <li>{!! $error !!}</li> + @endforeach + </ul> + </div> + @endif + @if( sizeof($warnings) > 0) + <div class="alert alert-warning"> + <ul> + @foreach($warnings as $warning) + <li>{!! $warning !!}</li> + @endforeach + </ul> + </div> + @endif <div class="col-xs-12 col-md-8"> {{-- 3-Mal Werbung --}} @for($i = 0; $i <= 2; $i++)