Skip to content
Snippets Groups Projects
Commit 0fac1cc6 authored by karl's avatar karl
Browse files

Der Suchfokus wird jetzt automatisch angepasst, falls ein Nutzer mit...

Der Suchfokus wird jetzt automatisch angepasst, falls ein Nutzer mit angepassten Einstellungen aber allen Suchmaschinen eines Suchfokus ausgewählt sucht.
parent e98d83b6
No related branches found
No related tags found
2 merge requests!220Development,!207Resolve "Automatische Bildersuche"
...@@ -297,10 +297,9 @@ class MetaGer ...@@ -297,10 +297,9 @@ class MetaGer
$enabledSearchengines = []; $enabledSearchengines = [];
$overtureEnabled = FALSE; $overtureEnabled = FALSE;
$countSumas = 0; $countSumas = 0;
$sumas = $xml->xpath("suma");
if($this->fokus === "angepasst") if($this->fokus === "angepasst")
{ {
$sumas = $xml->xpath("suma");
foreach($sumas as $suma) foreach($sumas as $suma)
{ {
if($request->has($suma["name"]) if($request->has($suma["name"])
...@@ -325,7 +324,6 @@ class MetaGer ...@@ -325,7 +324,6 @@ class MetaGer
} }
} }
}else{ }else{
$sumas = $xml->xpath("suma");
foreach($sumas as $suma){ foreach($sumas as $suma){
$types = explode(",",$suma["type"]); $types = explode(",",$suma["type"]);
if(in_array($this->fokus, $types) if(in_array($this->fokus, $types)
...@@ -429,18 +427,20 @@ class MetaGer ...@@ -429,18 +427,20 @@ class MetaGer
$this->sockets[$tmp->name] = $tmp->fp; $this->sockets[$tmp->name] = $tmp->fp;
} }
# Alternativ
# Hier wird direkt eine Liste der Fokustypen erstellt, die bei der Suche verwendet werden: [0] => [web, nachrichten] # Hier wird direkt eine Liste der Fokustypen erstellt, die bei der Suche verwendet werden: [0] => [web, nachrichten]
if($engine["name"] !== "overtureAds") { /*if($engine["name"] !== "overtureAds") {
$type = explode(",", $engine["type"]); $type = explode(",", $engine["type"]);
if(!$type[0] == "") { if(!$type[0] == "") {
$typeslist[$counter++] = $type; $typeslist[$counter++] = $type;
} }
} }*/
} }
# Alternativ
# Jetzt wird geguckt, ob diese Liste überhaupt Typen enthält und für jeden Typen des ersten Eintrags (oder späteren falls dieser "" ist) wird geguckt, ob sich dieser Typ in allen folgenden Einträgen finden lässt. Diese Einträge sind nie "web", da diese Suche meist eh auch möglich ist und ohnehin wie die angepasste Suche funktioniert. Am Ende wird geguckt ob es einen Typen gab, der in allen Elementen enthalten ist. Dieser wird als Fokus gesetzt. # Jetzt wird geguckt, ob diese Liste überhaupt Typen enthält und für jeden Typen des ersten Eintrags (oder späteren falls dieser "" ist) wird geguckt, ob sich dieser Typ in allen folgenden Einträgen finden lässt. Diese Einträge sind nie "web", da diese Suche meist eh auch möglich ist und ohnehin wie die angepasste Suche funktioniert. Am Ende wird geguckt ob es einen Typen gab, der in allen Elementen enthalten ist. Dieser wird als Fokus gesetzt.
if(!empty($typeslist)) { /*if(!empty($typeslist)) {
foreach($typeslist as $matchTypeSearch) { foreach($typeslist as $matchTypeSearch) {
if(!empty($matchTypeSearch) && $matchTypeSearch[0] !== "") { if(!empty($matchTypeSearch) && $matchTypeSearch[0] !== "") {
$toMatch = $matchTypeSearch; $toMatch = $matchTypeSearch;
...@@ -467,6 +467,58 @@ class MetaGer ...@@ -467,6 +467,58 @@ class MetaGer
if($matchedType !== "") { if($matchedType !== "") {
$this->fokus = $matchedType; $this->fokus = $matchedType;
} }
}*/
# Jetzt werden noch alle Kategorien der Settings durchgegangen und die jeweils enthaltenen namen der Suchmaschinen gespeichert.
$foki = [];
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)
{
$name = $suma['name']->__toString();
$foki[$tmp][$suma['name']->__toString()] = $name;
}
}else
{
$name = $suma['name']->__toString();
$foki["andere"][$suma['name']->__toString()] = $name;
}
}
}
# Es werden auch die Namen der aktuell aktiven Suchmaschinen abgespeichert.
$realEngNames = [];
foreach($enabledSearchengines as $realEng) {
$nam = $realEng["name"]->__toString();
if($nam !== "qualigo" && $nam !== "overtureAds") {
$realEngNames[] = $nam;
}
}
# Anschließend werden diese beiden Listen verglichen (jeweils eine der Fokuslisten für jeden Fokus), um herauszufinden ob sie vielleicht identisch sind. Ist dies der Fall, so hat der Nutzer anscheinend Suchmaschinen eines kompletten Fokus eingestellt. Der Fokus wird dementsprechend angepasst.
foreach($foki as $fok => $engs) {
$isFokus = true;
$fokiEngNames = [];
foreach($engs as $eng) {
$fokiEngNames[] = $eng;
}
foreach($fokiEngNames as $fen) {
if(!in_array($fen, $realEngNames)) {
$isFokus = false;
}
}
foreach($realEngNames as $ren) {
if(!in_array($ren, $fokiEngNames)) {
$isFokus = false;
}
}
if($isFokus) {
$this->fokus = $fok;
}
} }
# Nun passiert ein elementarer Schritt. # Nun passiert ein elementarer Schritt.
......
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