Commit a134bd30 authored by Karl's avatar Karl

Automatische Auswahl des Ergebnistabs funktioniert wieder und ist kommentiert

parent 6297cab5
......@@ -543,26 +543,27 @@ class MetaGer
$this->retrieveResults($engines);
}
# Passt den Suchfokus an, falls für einen Fokus genau alle vorhandenen Sumas eingeschaltet sind
public function adjustFocus($sumas, $enabledSearchengines)
{
# Jetzt werden noch alle Kategorien der Settings durchgegangen und die jeweils enthaltenen namen der Suchmaschinen gespeichert.
$foki = [];
# Findet für alle Foki die enthaltenen Sumas
$foki = []; # [fokus][suma] => [suma]
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;
# Wenn foki für diese Suchmaschine angegeben sind
$focuses = explode(",", $suma['type']->__toString());
foreach ($focuses as $foc) {
$foki[$foc][] = $suma['name']->__toString();
}
} else {
$name = $suma['name']->__toString();
$foki["andere"][$suma['name']->__toString()] = $name;
# Wenn keine foki für diese Suchmaschine angegeben sind
$foki["andere"][] = $suma['name']->__toString();
}
}
}
# Es werden auch die Namen der aktuell aktiven Suchmaschinen abgespeichert.
# Findet die Namen der aktuell eingeschalteten Sumas
$realEngNames = [];
foreach ($enabledSearchengines as $realEng) {
$nam = $realEng["name"]->__toString();
......@@ -572,22 +573,25 @@ class MetaGer
}
# 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) {
foreach ($foki as $fok => $engines) {
$isFokus = true;
$fokiEngNames = [];
foreach ($engs as $eng) {
foreach ($engines as $eng) {
$fokiEngNames[] = $eng;
}
# Jede eingeschaltete Engine ist für diesen Fokus geeignet
foreach ($fokiEngNames as $fen) {
if (!in_array($fen, $realEngNames)) {
$isFokus = false;
}
}
# Jede im Fokus erwartete Engine ist auch eingeschaltet
foreach ($realEngNames as $ren) {
if (!in_array($ren, $fokiEngNames)) {
$isFokus = false;
}
}
# Wenn die Listen identisch sind, setze den Fokus um
if ($isFokus) {
$this->fokus = $fok;
}
......
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