Commit b45fa8dc authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

Bei Fehlgeschlagener Sitesearch wird eine Meldung ausgegeben und eine Suche...

Bei Fehlgeschlagener Sitesearch wird eine Meldung ausgegeben und eine Suche ohne Sitesearch durchgeführt
parent d96e84d6
......@@ -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);
......
......@@ -355,17 +355,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 +426,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 +609,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 +690,6 @@ class MetaGer
public function getQ ()
{
if(strlen($this->site) > 0)
return $this->q . " site:" . $this->site;
else
return $this->q;
}
......@@ -777,11 +793,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;
}
......
......@@ -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:
......
......@@ -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)
......
......@@ -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)
......
......@@ -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">
......
......@@ -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
......
@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
......
@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">
......
@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">
......
@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++)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment