Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #120 am: 02. Juli 2021, 01:44:14
    Habe noch eine Ungereimtheit und eine Notice korrigiert.

    Gruß,
    noRiddle

    [EDIT Tomcraft 02.07.2021: Modul in Beitrag 1 aktualisiert.]

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.850
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #121 am: 02. Juli 2021, 13:27:42
    Servus Oli,

    ich würde es wirklich gerne testen, aber da ich eine andere Suche verwende, ist das bei mir gar nicht so einfach - ich hab dann immer Probleme damit :)

    Bin froh, dass meine aktuelle Variante läuft, aber bei deinen Änderungen komme ich einfach nicht auf einen grünen Zweig, dass ich die Daten gespeichert bekomme.

    Würd dich ja auch an meinen Testshop lassen, aber da sind aktuell eh schon gerade zwei Leute dran am basteln, da möchte ich nicht noch was drittes dran rummachen. Da kenn ich mich am Ende nicht mehr aus, wer welche Änderung gemacht hat ;)

    Aber unabhängig davon, dass ich die Daten nicht speicher konnte.....(bei mir wurden immer nur die ersten Buchstaben gespeichert also statt "apfel" nur "a" usw.):

    du hast du in deiner Variante noch den Fehler, dass die Seitenschaltung nicht korrekt ist:
    springt immer um 50 - obwohl nur 20 Stück angezeigt werden.
    Hatte ich hier schon vermerkt: https://www.modified-shop.org/forum/index.php?topic=36450.msg382523#msg382523

    Karsta hat das in Ihrer Version schön umgesetzt, so dass man es dann selber einstellen konnte.

    Die einzelne Löschung der Keywords ist aber toll und funktioniert soweit  :thumbs:

    Wo ich mir nicht so sicher bin, ist die Speicherung der Keywords einzeln statt als query.
    Denn wenn jetzt einige nach rosa bluse suchen, dann weiß ich, dass dies wohl notwendig ist. Sofern ich nämlich keine rosa Blusen habe!
    Wenn ich also aber gelbe, grüne und blaue habe, und es wird nur "rosa" & "bluse" separat gespeichert, komme ich nicht auf den Trichter, dass das miteinander in Verbindung steht.

    Könnte nun also bei "rosa" in der Suchanfrage einfach nur denken, dass die rosa Unterhosen, rosa Socken und rosa T-Shirts mögen....

    Grüße
    Dominik

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #122 am: 02. Juli 2021, 13:44:11
    Das Paging (Seitenschaltung) habe ich noch nicht geprüft, folgt beizeiten*.

    Was die Suchworte betrifft arbeitet die shop-eigene Suchfunktion genau so wie ich auch die Statiskik umgebaut habe. Wenn jemand, um bei deinem Beispiel zu bleiben, nicht nach "rosa bluse", inkl. der Anführungszeichen, sucht, bekommt er sowohl Ergebnisse für bluse als auch für rosa. Wie möchte man ansonsten unterscheiden ob jemand mit oder ohne Anführungsstriche gesucht hat. Vielleicht könnte man es im System-Modukl wählbar machen wie das gehandhabt werden soll.

    Inwiefern die Suche im Shop überhaupt gut und zeitgemäß ist ist ein neues Thema.
    Aus dem Stegreif würde ich allerdings sagen, daß die Suche nicht einen Filter ersetzen kann/soll (Filter wäre dann, man sieht alle Blusen und kann nach Farbe filtern).

    Gruß,
    noRiddle

    *
    Einfach an den beiden Stellen (in /admin/t10_searchstats.php)
    Code: PHP  [Auswählen]
    echo $qSplit->display_count($qNumRows, '50', ...
    Code: PHP  [Auswählen]
    echo $qSplit->display_links($qNumRows, '50',...

    die 50 mit 20 ersetzen.
    Beizeiten sollte man das auf der Seite unten konfigurierbar machen, analog zu z.B. der Bestell-Übersicht.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.850
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #123 am: 02. Juli 2021, 14:05:36
    Hi Oli,

    danke für dein Feedback.

    Du hast vollkommen recht, woher sollte man das unterscheiden können!

    Ich kann dir als Shopbetreiber nur soviel sagen:
    in unserem Shop hat noch niemals jemand mit Anführungsstrichen gesucht, und wenn, dann so verschwindend gering, dass ich das ehrlich gesagt, noch nie gesehen habe!

    Denn es ist ja keine Suchmaschine, sondern ein Shop. Und selbst bei Suchmaschinen verstehen es eh nur 1% der Normalsterblichen, wie man das Suchergebnis verfeinern könnte.

    Demnach halte ich diese Funktionalität gar nicht für so wichtig....

    Und du hast recht: die Suche ersetzt in der Tat keinen Filter. Dennoch gibt es eben unterschiedlichste Kunden. Die einen suchen einfach nach dem, was sie haben möchten, die anderen (geringere Anteil) filtern sich durch die Gegend :D

    Ich gehe in einem Shop mit vielen Sachen persönlich auch eher auf die Suche, da ich keine Lust habe, da erstmal nach der entsprechenden Kategorie zu suchen. Aber das ist natürlich auch vom Warenangebot und dem Aufbau des Shops abhängig ;)

    Deswegen hat man am besten beides in guter Form :)

    Und wie gesagt: zur Seitenschaltung, das hatte Karsta schon gut gelöst!

    Grüße
    Dominik

    karsta.de

    • Experte
    • Beiträge: 3.056
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #124 am: 02. Juli 2021, 14:06:08
    Hallo Dominik,

    habe mal das Modul neu zusammengepackt und die Erweiterung von noRiddle, einzelne Suchwörter löschen zu können, mit integriert.

    Getestet mit Version 2.0.6.0.

    BG Karsta

    [EDIT Tomcraft 02.07.2021: Modul in Beitrag 1 ergänzt.]

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #125 am: 02. Juli 2021, 14:18:16
    Du hast jetzt nicht nur den Löschen-Button sondern auch noch andere Dinge meiner Änderungen übernommen.
    Die CSS Einträge fehlen jedoch (/admin/include/css/t10.searchstats.css), für z.B. das Loading-Icon für den Delete-Vorgang,

    Gruß,
    noRiddle

    karsta.de

    • Experte
    • Beiträge: 3.056
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #126 am: 02. Juli 2021, 14:28:08
    Habe die CSS jetzt aktualisiert. Die Version unterscheidet sich eh etwas von deiner Version.
    Ansonsten kann ja jeder sich die T10-Suchstatistik-Version_noRiddle1.1 selbst runterladen, wer diese lieber nutzen möchte.
    Alle Kommentare für die geänderten Pasagen von dir wurden natürlich drin gelassen. Also transparent.

    BG Karsta

    [EDIT Tomcraft 02.07.2021: Modul in Beitrag 1 aktualisiert.]

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #127 am: 02. Juli 2021, 14:30:42
    Korrekt. Ich wollte damit auch  nicht sagen, daß deine Version mit meiner identisch ist.
    Du hast ja sinnigerweise z.B. das bzgl. des Pagings bereits gelöst:
    ...
    Beizeiten sollte man das auf der Seite unten konfigurierbar machen, analog zu z.B. der Bestell-Übersicht.

    Gruß,
    noRiddle

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.850
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #128 am: 06. Juli 2021, 11:58:52
    Erstmal Danke für euren Einsatz - bin immer wieder begeistert ;)

    Des Weiteren stimmt beim Modul die Ergebnisliste nicht, sobald man die Sortierreihenfolge verändert und bspw. nach Suchergebnissen sortiert.

    Wenn man also mehrere Seiten mit "0" Treffern hat, und man blättert durch diese hindurch, dann kommt es oftmals vor, dass sich die Ergebnisse auf mehreren Seiten wiederholen - siehe beigefügte Screenshots.

    Scheinbar fehlt hier in der Sortierung noch ein zusätzliches nachfolgendes Kriterium, so dass z.B. bei "0" noch nach Datum/Uhrzeit sortiert wird.

    Grüße
    Dominik

    Dieser Fehler ist weiterhin vorhanden - bei beiden Varianten.....

    Ebenso muss ich mich korrigieren, es betrifft nicht nur die Treffer mit "0" Ergebnissen, es scheint überall zu bestehen! Allerdings ist das bisher nicht aufgefallen, da man schneller Treffer mit "0" Ergebnissen in Masse hat als z.B. Ergebnisse mit genau "25" Treffern.

    Habe aber soeben festegestellt, dass es eben auch bei den Ergebnissen mit "1" Treffer bzw. "2" Treffern so ist.

    Grüße
    Dominik

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #129 am: 06. Juli 2021, 15:55:18
    Kann ich nicht nachvollziehen.
    Wie genau äußert sich das (sorry falls ich was überlesen und/oder nicht verstanden haben sollte).

    In der /includes/classes/t10searchstats.php wird vor Schreiben in die Statistik-Tabelle geprüft ob es das betreffende Wort bereits in der DB-Tabelle gibt.
    Code: PHP  [Auswählen]
    $r = $this->getQuery($this->query[$i]);

    Wenn nicht wird es hineingeschrieben,
    Code: PHP  [Auswählen]
                      } else {
                        // data for new record
                        $data = array('crdate'       => $this->now,
                                      'tstamp'       => $this->now,
                                      'query'    => $this->query[$i], //stripslashes($this->query[$i]), //why stripslashes here ?, 02-2021, noRiddle
                                      'searches' => 1,
                                      'products' => $this->numProducts
                                     );

                        // insert
                        xtc_db_perform(TABLE_T10_SEARCHSTATS, $data);
                    }

    wenn ja, werden lediglich die Treffer um eines erhöht.
    Code: PHP  [Auswählen]
                    // there is already a record for the current query
                    if($r !== false) {
                        // alter some things
                        $r['tstamp']        = $this->now;
                        $r['products']      = $this->numProducts;

                        // counter
                        $r['searches'] ++;

                        // update
                        xtc_db_perform(TABLE_T10_SEARCHSTATS, $r, 'update', 'id=' . $r['id']);

    Genauso funtioniert es bei mir auch.

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #130 am: 07. Juli 2021, 08:10:58
    *NACHTRAG*
    Okay, kann es doch nachvollziehen. Scheint nicht beim Speichern der Keywords sondern beim Auflösen der Query in splitPageResults() im Backend zu passieren. Schaue mir das mal genauer an...

    Gruß,
    noRiddle

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.850
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #131 am: 07. Juli 2021, 08:16:34
    Hallo Oli,

    da hast du mich etwas missverstanden. Das mit den Eintragungen und der korrekten Anzahl der Suchen funktioniert einwandfrei.

    Es geht um die Darstellung der Ergebnisse, bei der ein Fehler vorliegt.
    Wenn ich die Statistik nach "Produkte" sortiere, so dass die mit "0" Treffern vorne sind, dann kann es beim blättern auf die nächsten Seiten passieren, dass der gleiche Begriff erneut angezeigt wird!

    Natürlich nicht nochmal der gleiche Suchbegriff mit einem anderen Datensatz, sondern eben genau der exakt gleiche, bei dem "zuerst gesucht am" und "zuletzt gesucht am" gleich sind!

    Das System sortiert in gewisser Weise "willkürlich" die Treffer, denn die "zuletzt gesucht am" bzw. "zuerst gesucht am" haben keinerlei Reihung.

    Meines Erachtens müsste die Sortierreihenfolge hier noch erweitert werden, so dass es dann zuerst nach Anzahl der Produkte und anschließend noch nach crdate sortiert wird. Dann wird dieser Fehler wahrscheinlich erledigt sein.

    Hier nochmals zwei Bilder zur Veranschaulichung
    [ Für Gäste sind keine Dateianhänge sichtbar ] [ Für Gäste sind keine Dateianhänge sichtbar ]

    Leider reicht hier aber mein php Verständnis nicht aus,  denke aber, das müsste hier irgendwo begraben liegen in der admin/t10_searchstats.php:
    Code: PHP  [Auswählen]
    // whitelist possible order fields
    $orderFields            = array('query'         => QUERY,
                                    'searches'      => SEARCHES,
                                    'crdate'        => CRDATE,
                                    'tstamp'        => TSTAMP,
                                    'products'      => PRODUCTS
                                    );

    $orderDirections        = array('desc', 'asc');

    // assign session values, use whitelists from above
    if (isset($_GET['orderField']) && in_array($_GET['orderField'], array_keys($orderFields)))
            $_SESSION['t10']['filter_stats']['orderField'] = $_GET['orderField'];

    if (isset($_GET['orderDirection']) && in_array($_GET['orderDirection'], $orderDirections))
            $_SESSION['t10']['filter_stats']['orderDirection'] = $_GET['orderDirection'];

    // set defaults for both
    if (empty($_SESSION['t10']['filter_stats']['orderField']))
            $_SESSION['t10']['filter_stats']['orderField'] = 'searches';
           

    if (empty($_SESSION['t10']['filter_stats']['orderDirection']))
            $_SESSION['t10']['filter_stats']['orderDirection'] = current($orderDirections);

    // select all search phrases from table
    $q              = sprintf('SELECT * FROM %s ORDER BY %s %s', TABLE_T10_SEARCHSTATS, $_SESSION['t10']['filter_stats']['orderField'], $_SESSION['t10']['filter_stats']['orderDirection']);

    $q_split = new splitPageResults($page, $page_max_display_results, $q, $q_numrows);
    $q              = xtc_db_query($q);

    und hier
    Code: PHP  [Auswählen]
    // shorten
    $currtenFilter  = $_SESSION['t10']['filter_stats'];

    foreach ($orderFields as $orderField => $label) {
    // indicate the current direction
    $classes = array($currtenFilter['orderDirection']);
    // keep the currently selected direction
    $direction      = $currtenFilter['orderDirection'];

            // if one clicks a second time on the same link
            // switch the direction
            if ($currtenFilter['orderField'] == $orderField) {
                    $direction = ($currtenFilter['orderDirection'] == 'asc') ? 'desc' : 'asc';
                   
                    // highlight the current order field
                    $classes[] = 'current';
            }


            // the links title to prevent confusion
            $title                          = sprintf(SORT_BY, (($direction == 'asc') ? SORT_BY_ASC : SORT_BY_DESC), $label);
            $links[$orderField] = sprintf('%s%s?%s', DIR_WS_ADMIN, FILENAME_MODULE_T10_SEARCHSTATS, http_build_query(array('orderField' => $orderField, 'orderDirection' => $direction)));
            $links[$orderField] = sprintf('<th class="%s"><a href="%s" title="%s">%s</a></th>', implode(' ', $classes), $links[$orderField], $title, $label);
    }

    // the options row
    $links[] = '<th></th>';
    echo implode(null, $links);

    Grüße
    Dominik

    karsta.de

    • Experte
    • Beiträge: 3.056
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #132 am: 07. Juli 2021, 10:13:22
    Hallo Dominik,

    hast du nach dem Update des Moduls mal die alte Liste gelöscht?
    Bei mir scheint der Fehler nicht mehr aufzutreten.

    BG Karsta

    [EDIT]
    Nach nochmaligen Test scheint das Problem bei der Sortierung der 2. Spalte [Suchen] doch noch zu bestehen.
    Bei den anderen Sortieroptionen wurde bei mir bisher nichts doppelt gelistet.

    karsta.de

    • Experte
    • Beiträge: 3.056
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #133 am: 07. Juli 2021, 11:58:17
    Hallo Dominik,
    ich habe das Ganze jetzt mal auf zwei verschiedenen Servern getestet. Auf dem Server mit PHP8 und der Shopversion 2.0.6.0 läufts korrekt und ohne doppelte Anzeige. Auf dem Server mit PHP7.3 und der Shopversion 2.0.6.0 werden wie von dir beschrieben bei Verwendung der Sortierfunktion Begriffe doppelt angezeigt als Ersatz für die, die nicht mehr angezeigt werden.
    Auf beiden Servern verwende ich die selbe Version des Moduls.

    [EDIT]
    Ich habe noch einmal alle Dateien auf den Servern verglichen. Ich hatte da auf dem 2. Server noch eine alte Datei aus einer vorhergehenden Version liegen. (Datei includes/extra/application_bottom/t10_searchstats.php)
    Ich hänge hier jetzt noch einmal eine geänderte Version ran, bei der ich bisher die von dir angesprochenen Probleme bisher nicht mehr entdecken konnte.

    Bitte bei Verwendung des hier angehängten Moduls, das alte Modul unter
    Admin > Module > System Module > T10 Suchbegriffstatistik deinstalieren und die Datei includes/extra/application_bottom/t10_searchstats.php  entfernen.

    BG Karsta

    [EDIT Tomcraft 07.07.2021: Modul in Beitrag 1 aktualisiert.]

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: t10: Suchbegriffstatistik für Shopversion 2.x
    Antwort #134 am: 07. Juli 2021, 15:25:27
    Die Sache verhält sich nach meinen Gedanken so:
    Es fehlen in der Auflistung im Backend Einträge und andere sind mehrfach vorhanden.
    Das Fehlen von Einträgen ergibt sich schon daraus, daß bei mehrfachem Vorhandensein von gleichen Einträgen die Gesamtzahl korrekt ist/bleibt.

    Grund für das Verhalten;
    Bei der Query die splitPageResults() übergeben wird fehlt ein eindeutiger Parameter für das "ORDER BY" den das LIMIT benötigt um bei jeder Query gleich zu sortieren.
    Wie du, voodoopupp, bereits intuitiv vermutet hast wird das Problem behoben wenn man einen zweiten "ORDER BY"-Parameter verwendet. Dieser muß allerdings eindeutig (unique) sein. Ansonsten ist die Range die die jeweilige Query ausgibt zufällig..

    Aus
    Code: PHP  [Auswählen]
    $q = sprintf('SELECT * FROM %s ORDER BY %s %s', TABLE_T10_SEARCHSTATS, $_SESSION['t10']['filter_stats']['orderField'], $_SESSION['t10']['filter_stats']['orderDirection']);

    sollte dies werden
    Code: PHP  [Auswählen]
    $q = sprintf('SELECT * FROM %s ORDER BY %s %s, id ASC', TABLE_T10_SEARCHSTATS, $_SESSION['t10']['filter_stats']['orderField'], $_SESSION['t10']['filter_stats']['orderDirection']);

    sodaß immer als zweites nach der eindeutigen 'id' sortiert wird.

    Es mag sein, das es MySQL-Versionen gibt die auch bei uneindeutigem "ORDER BY" immer gleich sortieren, aber auch das ist mit hoher Wahrscheinlichkeit nicht 100% verlässlich.

    Beispiel:
    Da searches (und auch andere Werte nach denen sortiert werden kann) nicht eindeutig ist, es also mehrere Ergebnisse mit demselben Wert geben kann,
    Code: SQL  [Auswählen]
    SELECT * FROM t10_searchstats ORDER BY searches DESC LIMIT 0, 5

    weiß MySQL nicht wie es genau sortieren soll bis nach einem zweitem eindeutigen Parameter mitsortiert wird, hier 'id'
    Code: SQL  [Auswählen]
    SELECT * FROM t10_searchstats ORDER BY searches DESC, id ASC LIMIT 0, 5

    was das Ergebniss dann jedesmal gleich macht und somit das LIMIT erst richtig greifen kann.
    Das lässt sich leicht in PhpMyAdmin nachstellen.

    Getestet mit 7.2.24 und MaraiaDB 10.1.48 .

    Ich vermute, daß das Probem an weiteren Stellen im Backend und evtl. auch im Frontend auftauchen wird, da in modified splitPageResults() an vielen Stellen verwendet wird (Stichwort z.B. Filtermöglichkeiten im Frontend).
    Ich werde das mal beobachten und bitte euch dies ebenfalls zu tun.

    Im Anhang noch meine korrigierte Version, wo außerdem noch potentielle Sicherheitslücken gefixt sind (GET gesichert).
    Zur Erinnerung: In meiner Version gilt
    • Speichern von $search_keywords anstelle von $keywords, analog zur shop-eigenen Suchfunktion.
      D.h. sucht jemand juhu 5 => es wird juhu und 5 gespeichert,
      sucht jemand "juhu 5", also in Anführungszeichen => es wird juhu 5 gespeichert.

    Gruß,
    noRiddle

    [EDIT Tomcraft 07.07.2021: Modul in Beitrag 1 aktualisiert.]
    28 Antworten
    13453 Aufrufe
    15. Januar 2017, 07:42:11 von karsta.de
    2 Antworten
    2251 Aufrufe
    21. Februar 2016, 16:28:45 von tuvalu
    260 Antworten
    64144 Aufrufe
    21. März 2024, 11:04:27 von CojaX89
    17 Antworten
    6450 Aufrufe
    28. September 2023, 09:30:26 von rpech