Neu Suche zeigt keine Ergebnisse aber fiktive Trefferzahl + PHP-Warning

styxxx

Mitglied
25. Januar 2018
12
0
Hi,

ich fand zu ähnlichen Problemen keine aktuellen Beiträge. Folgendes Verhalten habe ich:
Die Suche findet (egal welcher Suchbegriff, auch solche, die definitiv vorhanden sind) immer an "Leider wurde nichts gefunden". Gleichzeitig jedoch erscheint unten "Seite 1 von 12 Artikel 1-12 von 300" im Evo-Template (und davon abgeleiteten). Es sind immer angeblich 300 Treffer.

Ein Blick ins Log zeigt:
PHP Warning: count(): Parameter must be an array or an object that implements Countable
Und zwar in in den compilierten footer und header.tpl.phps an mehreren Stellen. Die fragelichen Zeilen lauten:
Code:
<?php if (count($_smarty_tpl->tpl_vars['Suchergebnisse']->value->Artikel->elemente) > 0) {?>
oder
Code:
<?php if (count($_smarty_tpl->tpl_vars['Suchergebnisse']->value->Artikel->elemente) <= 0 && isset($_smarty_tpl->tpl_vars['KategorieInhalt']->value)) {?>
Ziemlich deutlich, es liegt an er Variable Suchergebnisse. Ein Blick in die Templatedateien productlist/header.tpl und footer.tpl zeigt, dass nicht immer geprüft wird, ob die Variable überhaupt gesetzt ist:
Code:
{if count($Suchergebnisse->Artikel->elemente) > 0}
Eine Ergänzung mit isset(..) behebt zumindest den PHP-Fehler. Allerdings erklärt das auf den ersten Blick nicht, wieso im Fehlerfall 300 Suchergebnisse gezählt werden, die gar nicht existieren. Soweit ist das eher ein Template-Bug.

Allerdings nicht das Problem, dass nichts gefunden wird. Und ich stelle mir die Frage, ob der Fall überhaupt eintreten sollte, dass $suchergebnisse nicht definiert ist. Vielmehr scheint das Problem mit der Suche nur einen weiteren Fehler im Template aufzudecken.

Artikel lassen sich über Kategorien oder direktes Aufrufen der URL anzeigen. Es ist also nur die Suche, die nichts ausspuckt. Es ist eine recht neue Installation er aktuellsten Version, die meisten Einstellungen sind noch auf default.
Shopversion: 4.06 (Build: 15) (DB und Template ebenfalls 4.06)


Achja, jtllogs/suchanfragen.log zeigt ebenfalls die angeblichen 300 Treffer:
Code:
[12.02.19 06:51:33] [127.0.*.*]
stdClass Object
(
    [kSprache] => 1
    [cSuche] => canon
    [nAnzahlTreffer] => 300
    [nAnzahlGesuche] => 1
    [dZuletztGesucht] => now()
    [cSeo] => canon_40
)
Ich würde da gerne weiter nach er Ursache suchen und mich daher über Tipps freuen, wo ich noch ansetzen sollte. Von den Fehlern im Template abgesehen ist es für Entwickler bei JTL so vermutlich auch noch nicht hilfreich. Oder falls das Problem ohnehin ab und zu vorkommt: Wie man es behebt. Danke :)
 

styxxx

Mitglied
25. Januar 2018
12
0
Hallo,
die Standardsuche war aktiviert. Ich habe es gerade aber auch mal mit Volltextsuche (nach Erstellung des Index) probiert. Da kommt das gleiche. Die PHP-Warnung wird aber nicht immer ausgelöst, wie ich gerade sehe (hängt vermutlich nicht direkt zusammen).
 

Über uns

  • In unserem moderierten JTL-Forum könnt Ihr Euch themenbezogen mit der JTL-Community rund um die Produkte von JTL, passende Erweiterungen und den E-Commerce im Allgemeinen austauschen, Tipps und Tricks teilen sowie Verbesserungswünsche und Fehler diskutieren.

    Unsere Forumsnutzer helfen sich untereinander auch gerne weiter, wenn Sie mal nicht weiterkommen oder einen Ratschlag benötigen.

Schnell-Navigation

Benutzer Menü