Skip to content
Snippets Groups Projects
Commit 56aba359 authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

Merge branch '167-codekommentare' of...

Merge branch '167-codekommentare' of https://gitlab.metager3.de/dominik/MetaGer into 167-codekommentare
parents 26bce958 45d20fd9
No related branches found
No related tags found
1 merge request!1365Resolve "Filter Options for MetaGer"
...@@ -19,42 +19,50 @@ use Illuminate\Support\Collection; ...@@ -19,42 +19,50 @@ use Illuminate\Support\Collection;
*/ */
class MetaGer class MetaGer
{ {
/* Noch nicht hier oben: (unter anderem)
* url - ???
* language - ???
* category - ???
* tab - gewählter Ergebnistab
* password - ???
* quicktips - Quicktips ein-/ausgeschaltet
* out - ???
* request - Sicherung der Anfrage
*/
# Einstellungen für die Suche # Einstellungen für die Suche
protected $fokus; # Der gewählte Suchfokus protected $fokus; # Der gewählte Suchfokus
protected $eingabe; # protected $eingabe; # Die eingegebenen Suchbegriffe
protected $q; # protected $q; # Die eingegebenen Suchbegriffe ???
protected $category; # protected $category; #
protected $time; # protected $time; # Die maximale Suchzeit
protected $page; # protected $page; # Die ausgewählte Ergebnisseite
protected $lang; # protected $lang; # Die gewählte Sprache der Suchergebnisse
protected $cache = ""; # protected $cache = ""; #
protected $site; # protected $site; # Erkannte Sitesearches
protected $hostBlacklist = []; # protected $hostBlacklist = []; # Die Blacklist der Hosts
protected $domainBlacklist = []; # protected $domainBlacklist = []; # Die Blacklist der Domains
protected $stopWords = []; # protected $stopWords = []; # Erkannte Stopworte
protected $phrases = []; # protected $phrases = []; # Erkannte Phrasensuchen
protected $engines = []; # protected $engines = []; #
protected $results = []; # protected $results = []; # Die gesammelten Ergebnisse
protected $ads = []; # protected $ads = []; # Die gesammelten Werbungen
protected $warnings = []; # protected $warnings = []; # Die entstandenen Warnmeldungen
protected $errors = []; # protected $errors = []; # Die entstandenen Fehlermeldungen
protected $addedHosts = []; # protected $addedHosts = []; #
# Daten über die Abfrage # # Daten über die Abfrage
protected $ip; # protected $ip; # Die IP des Nutzers
protected $language; # protected $language; #
protected $agent; # protected $agent; # Ein Agent - unter anderem zur Browser-, Sprach- und Mobilgeräteerkennung
# Konfigurationseinstellungen: # # Konfigurationseinstellungen:
protected $sumaFile; # protected $sumaFile; # Die Suma-Datei je nach Sprache
protected $mobile; # protected $mobile; # Nutzer auf Mobilgerät
protected $resultCount; # protected $resultCount; # Gewünschte Anzahl Ergebnisse pro Seite
protected $sprueche; # protected $sprueche; # Sprüche ein-/ausgeschaltet
protected $domainsBlacklisted = []; # protected $domainsBlacklisted = []; #
protected $urlsBlacklisted = []; # protected $urlsBlacklisted = []; #
protected $url; # protected $url; #
protected $languageDetect; # protected $languageDetect; #
# validated ???
# Erstellt einen noch leeren MetaGer. Dabei werden erst einmal nur die Blacklists für Domains und URLs geladen und die Spracherkennung festgelegt. # Erstellt einen noch leeren MetaGer. Dabei werden erst einmal nur die Blacklists für Domains und URLs geladen und die Spracherkennung festgelegt.
function __construct() function __construct()
{ {
...@@ -310,7 +318,7 @@ class MetaGer ...@@ -310,7 +318,7 @@ class MetaGer
} }
} }
# ??? # Fügt beim Boost-Partnershop Amazon dem Link unser boost-tag an
public function parseBoost($results) public function parseBoost($results)
{ {
foreach($results as $result) foreach($results as $result)
...@@ -411,7 +419,7 @@ class MetaGer ...@@ -411,7 +419,7 @@ class MetaGer
$countSumas = 0; $countSumas = 0;
$sumas = $xml->xpath("suma"); $sumas = $xml->xpath("suma");
# Die beiden if-Teile überschneiden sich stark. ??? # Die beiden if-Teile überschneiden sich stark. ??? zusammenführen ???
# Überprüfe, welche Sumas eingeschaltet sind # Überprüfe, welche Sumas eingeschaltet sind
if($this->fokus === "angepasst") if($this->fokus === "angepasst")
{ {
...@@ -523,8 +531,6 @@ class MetaGer ...@@ -523,8 +531,6 @@ class MetaGer
$this->errors[] = "Achtung: Sie haben in ihren Einstellungen keine Suchmaschine ausgewählt."; $this->errors[] = "Achtung: Sie haben in ihren Einstellungen keine Suchmaschine ausgewählt.";
} }
$engines = []; # Kommt erst viel später ???
# Wenn eine Sitesearch durchgeführt werden soll, überprüfen wir ob eine der Suchmaschinen überhaupt eine Sitesearch unterstützt: # Wenn eine Sitesearch durchgeführt werden soll, überprüfen wir ob eine der Suchmaschinen überhaupt eine Sitesearch unterstützt:
$siteSearchFailed = false; $siteSearchFailed = false;
if( strlen($this->site) > 0 ) if( strlen($this->site) > 0 )
...@@ -552,7 +558,8 @@ class MetaGer ...@@ -552,7 +558,8 @@ class MetaGer
$counter = 0; $counter = 0;
# Erstellung der Suchengines # Erstellung der Suchengines
$engines = [];
foreach($enabledSearchengines as $engine){ foreach($enabledSearchengines as $engine){
# Überspringt die Suchengine, falls eine Sitesearch aktiv ist, aber die Engine keine Sitesearch unterstützt. # Überspringt die Suchengine, falls eine Sitesearch aktiv ist, aber die Engine keine Sitesearch unterstützt.
if( !$siteSearchFailed && strlen($this->site) > 0 && ( !isset($engine['hasSiteSearch']) || $engine['hasSiteSearch']->__toString() === "0") ) if( !$siteSearchFailed && strlen($this->site) > 0 && ( !isset($engine['hasSiteSearch']) || $engine['hasSiteSearch']->__toString() === "0") )
...@@ -732,10 +739,10 @@ class MetaGer ...@@ -732,10 +739,10 @@ class MetaGer
* *
* url - ??? * url - ???
* fokus - Der gewählte Suchfokus * fokus - Der gewählte Suchfokus
* sumaFile - Die gewählten Suchmaschinen * sumaFile - Die Suma-Datei je nach Sprache
* eingabe - Die eingegebenen Suchbegriffe * eingabe - Die eingegebenen Suchbegriffe
* q - Erst einmal gleich wie eingabe * q - Erst einmal gleich wie eingabe
* ip - Die IP des Nutzers * ip - Die IP des Nutzers ??? anonymisiert ???
* language - ??? * language - ???
* category - ??? * category - ???
* time - Die maximale Suchzeit * time - Die maximale Suchzeit
...@@ -876,7 +883,7 @@ class MetaGer ...@@ -876,7 +883,7 @@ class MetaGer
$this->sprueche = "off"; $this->sprueche = "off";
} }
# Falsche Anzahl maximale Ergebnisse - ??? # Falsche Anzahl maximale Ergebnisse - Standartwert 1000
if($this->resultCount <= 0 || $this->resultCount > 200 ) if($this->resultCount <= 0 || $this->resultCount > 200 )
{ {
$this->resultCount = 1000; $this->resultCount = 1000;
...@@ -889,7 +896,7 @@ class MetaGer ...@@ -889,7 +896,7 @@ class MetaGer
$this->cache = "cache"; $this->cache = "cache";
} }
# Fälschlicherweise Tab eingestellt - Auf leeren Tab gesetzt ??? # Den richtigen Tab einstellen
if( $request->has('tab')) if( $request->has('tab'))
{ {
if($request->input('tab') === "off") if($request->input('tab') === "off")
...@@ -923,9 +930,12 @@ class MetaGer ...@@ -923,9 +930,12 @@ class MetaGer
$this->request = $request; $this->request = $request;
} }
# Liest aus der Sucheingabe bestimmte Spezialsuchen aus
# Arbeitet auf der Variable q
public function checkSpecialSearches (Request $request) public function checkSpecialSearches (Request $request)
{ {
# Site Search: # Site Search:
# Wenn die Suchanfrage um das Schlüsselwort "site:*" ergänzt ist, sollen Ergebnisse nur von einer bestimmten Seite stammen.
if(preg_match("/(.*)\bsite:(\S+)(.*)/si", $this->q, $match)) if(preg_match("/(.*)\bsite:(\S+)(.*)/si", $this->q, $match))
{ {
$this->site = $match[2]; $this->site = $match[2];
...@@ -935,8 +945,9 @@ class MetaGer ...@@ -935,8 +945,9 @@ class MetaGer
{ {
$this->site = $request->input('site'); $this->site = $request->input('site');
} }
# 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: # Host-Blacklisting:
# Wenn die Suchanfrage um das Schlüsselwort "-host:*" ergänzt ist, sollen bestimmte Hosts nicht eingeblendet werden.
while(preg_match("/(.*)(^|\s)-host:(\S+)(.*)/si", $this->q, $match)) while(preg_match("/(.*)(^|\s)-host:(\S+)(.*)/si", $this->q, $match))
{ {
$this->hostBlacklist[] = $match[3]; $this->hostBlacklist[] = $match[3];
...@@ -952,8 +963,9 @@ class MetaGer ...@@ -952,8 +963,9 @@ class MetaGer
$hostString = rtrim($hostString, ", "); $hostString = rtrim($hostString, ", ");
$this->warnings[] = "Ergebnisse von folgenden Hosts werden nicht angezeigt: \"" . $hostString . "\""; $this->warnings[] = "Ergebnisse von folgenden Hosts werden nicht angezeigt: \"" . $hostString . "\"";
} }
# Wenn die Suchanfrage um das Schlüsselwort "-domain:*" ergänzt ist, sollen bestimmte Domains nicht eingeblendet werden
# Wir prüfen, ob das hier der Fall ist: # Domain-Blacklisting:
# Wenn die Suchanfrage um das Schlüsselwort "-domain:*" ergänzt ist, sollen bestimmte Domains nicht eingeblendet werden.
while(preg_match("/(.*)(^|\s)-domain:(\S+)(.*)/si", $this->q, $match)) while(preg_match("/(.*)(^|\s)-domain:(\S+)(.*)/si", $this->q, $match))
{ {
$this->domainBlacklist[] = $match[3]; $this->domainBlacklist[] = $match[3];
...@@ -970,8 +982,8 @@ class MetaGer ...@@ -970,8 +982,8 @@ class MetaGer
$this->warnings[] = "Ergebnisse von folgenden Domains werden nicht angezeigt: \"" . $domainString . "\""; $this->warnings[] = "Ergebnisse von folgenden Domains werden nicht angezeigt: \"" . $domainString . "\"";
} }
# Stopwords:
# Alle mit "-" gepräfixten Worte sollen aus der Suche ausgeschlossen werden. # Alle mit "-" gepräfixten Worte sollen aus der Suche ausgeschlossen werden.
# Wir prüfen, ob das hier der Fall ist:
while(preg_match("/(.*)(^|\s)-(\S+)(.*)/si", $this->q, $match)) while(preg_match("/(.*)(^|\s)-(\S+)(.*)/si", $this->q, $match))
{ {
$this->stopWords[] = $match[3]; $this->stopWords[] = $match[3];
...@@ -988,7 +1000,8 @@ class MetaGer ...@@ -988,7 +1000,8 @@ class MetaGer
$this->warnings[] = "Sie machen eine Ausschlusssuche. Ergebnisse mit folgenden Wörtern werden nicht angezeigt: \"" . $stopwordsString . "\""; $this->warnings[] = "Sie machen eine Ausschlusssuche. Ergebnisse mit folgenden Wörtern werden nicht angezeigt: \"" . $stopwordsString . "\"";
} }
# Meldung über eine Phrasensuche # Phrasensuche:
# Alle mit " umschlossenen Worte gelten als Phrasensuche und sollen in genau dieser Reihenfolge im Suchergebnis vorkommen.
$p = ""; $p = "";
$tmp = $this->q; $tmp = $this->q;
while(preg_match("/(.*)\"(.+)\"(.*)/si", $tmp, $match)){ while(preg_match("/(.*)\"(.+)\"(.*)/si", $tmp, $match)){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment