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: Sortierung nach products_sort (Sortierreihenfolge) in den Suchergebnissen

    Teichbau

    • Fördermitglied
    • Beiträge: 383
    • Geschlecht:
    Hallo zusammmen,
    ich glaube das die Sortierung nach products_sort in der Ergebnis-Ansicht nicht funktioniert.
    Testweise habe ich im stable Demo-Shop den Testartikeln Sort-Nummern hinterlegt - mit negativem Ergebnis.

    Leider kann ich nicht feststellen in welcher Datei man schauen muß, ich bitte da um Eure Hilfe.

    Im Anhang sind 2 Bilder zur Erklärung.

    Gruß Teichbau

    Linkback: https://www.modified-shop.org/forum/index.php?topic=42903.0

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Teichbau,
    kann ich im Stable-Demo-Shop nicht nachvollziehen.

    Meine Einstellungen:
    Kategorie1: Sortierreihenfolge - aufsteigend
    Artikel in Kategorie1: Jedem Artikel eine Zahl für Sortierreihenfolge vergeben.

    Caches gelöscht und Kategorie1 aktualisiert.
    Alles gut!

    Gruß Karl

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.852
    • Geschlecht:
    Hallo Teichbau,

    ich kann die Aussage von Karl1 bestätigen, sobald der Cache gelöscht wurde, wird korrekt sortiert.

    Allerdings bin ich mir mit deinem ersten Bild nicht sicher: du zeigst da das Dropdown der Sortierkritieren. Erwartest du dort die "Sortierreihenfolge" als Auswahl?

    Das wird natürlich nicht passieren, sondern die im Backend eingestellte Variante wird nur für die Standardsortierung ausgegeben, wenn der Kunde die Sortierreihenfolge eben nicht auf seine Wünsche geändert hat!

    Grüße
    Dominik

    Teichbau

    • Fördermitglied
    • Beiträge: 383
    • Geschlecht:
    @ Dominik
    Zitat
    Allerdings bin ich mir mit deinem ersten Bild nicht sicher: du zeigst da das Dropdown der Sortierkritieren. Erwartest du dort die "Sortierreihenfolge" als Auswahl?
    Nicht unbedingt muß die "Sortierreihenfolge" hier erscheinen, es gibt aber den Hinweis darauf das die Sortierung nach "Sortierreihenfolge" nicht eingebunden ist - siehe auch das Ergebnis in der "suche" oben rechts im Shop bzw. meine weitere Bebilderung des Problems.

    @Karl und Dominik
    Zitat
    Meine Einstellungen:
    Kategorie1: Sortierreihenfolge - aufsteigend
    Artikel in Kategorie1: Jedem Artikel eine Zahl für Sortierreihenfolge vergeben.
    Caches gelöscht und Kategorie1 aktualisiert.
    Alles gut!
    Kann ich wie auf den Bildern zu ersehen ist nicht bestätigen - oder mach ich was falsch?

    Für die autocomplete-Anzeige konnte ich es schon mal wie folgt ändern:
    root/api/autocomplete/autocomplete.php
    Code: PHP  [Auswählen]
    Zeile 77
    von ORDER BY p.products_id ASC nach ORDER BY p.products_sort ASC

    Gruß Teichbau

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Teichbau,
    du hattest nie von Sortierung der Autocomplete-Suche und Suche (letzter Sceenshot) gesprochen, meine Antwort bezieht sich auf die Kategoriesortierung.

    Gruß Karl

    Teichbau

    • Fördermitglied
    • Beiträge: 383
    • Geschlecht:
    @Karl
    Das schrieb ich ja bereits zu Dominik's Hinweis, dadurch "daß die Sortierreihenfolge (als Dropdown) nicht ausgewählt werden kann" ist es für mich ein Hinweis darauf das die Einstellungen im Backend (Kategorie/Artikel) nicht für die Sortierreihenfolge der "Suche" oben rechts greift/gültig ist.
    In vermute das in einer bestimmten Datei - die mir nicht bekannt ist - die Information für die Sortierrung der Suchergebnisse nach products_sort eingefügt/hinterlegt werden muß.

    Hast Du da einen Ansatz in welcher Datei das sein könnte?

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Teichbau,
    in includes/extra/default/listing_sql/99_advanced_search_result.php wird die Variable $listing_sql gesetzt und an includes/modules/default.php übergeben.

    Gruß Karl

    Teichbau

    • Fördermitglied
    • Beiträge: 383
    • Geschlecht:
    Hallo Karl,
    Deine Hilfe hat mir geholfen und das Problem ist gelöst, vielen Dank.
    Noch ein Frage:
    Wie findet man die nötigen Dateien zu einem Problem?
    Kann man mit Hilfsmitteln zum Erfolg kommen oder ist es die Erfahrung die Du hast wie die Zusammenhänge des Systems sind.
    Mit z.B. dem Inspector von Firefox bin ich nicht zum Ergebnis gekommen.

    Zusammenfassung:
    Code: PHP  [Auswählen]
    In beiden Dateien
    unter $listing_sql = "SELECT ".ADD_SELECT_SEARCH."
    p.products_sort,     hinzugefügt
    und in der 99_advanced_search_result.php 2x (Zeile 160 + 201)
    von ORDER BY p.products_id ASC nach ORDER BY p.products_sort ASC   geändert

    Gruß Teichbau

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Teichbau,
    ich versuche mein Vorgehen zu beschreiben.

    In der URL wird die Datei "advanced_search_result.php" aufgerufen.
    Ich schau mir den Code an und stelle fest, dass die einzig relevante Stelle
    Code: PHP  [Auswählen]
      include (DIR_WS_MODULES.'default.php');
    ist.
    In der Datei "includes/modules/default/default.php" wird vor der Codezeile
    Code: PHP  [Auswählen]
        foreach(auto_include(DIR_FS_CATALOG.'includes/extra/default/listing_sql/','php') as $file) require ($file);
    die Variable "$listing_sql" gesetzt, die ich mir mit "var_dump()" ausgeben lasse.
    Setze ich den PHP-Befehl "var_dump()" nach der Autoinclude-Zeile ein - verändert sich die Variable.
    Ich suche also weiter im Verzeichnis "includes/extra/default/listing_sql/".
    Dort liegt die relevante Datei "99_advanced_search_result.php".

    In deinem Fall würde ich aber versuchen das Problem (wobei man über die Sortierung diskutieren könnte) updatesicher zu lösen.
    Eine neue Datei "99_teichbau_sort.php"  im Verzeichnis "includes/extra/default/listing_sql/" mit diesem Inhalt
    Code: PHP  [Auswählen]
      if (basename($PHP_SELF) == FILENAME_ADVANCED_SEARCH_RESULT && !empty($listing_sql)) {
                    $listing_sql = str_replace('ORDER BY p.products_id', 'ORDER BY p.products_sort', $listing_sql);
      }
    würde auch helfen.
    Wichtig beim Dateinamen ist, dass die Datei nach "99_advanced_search_result.php" ausgeführt wird.

    Gruß Karl

    Teichbau

    • Fördermitglied
    • Beiträge: 383
    • Geschlecht:
    Hallo Karl,
    helfe mir bitte weiter damit ich es nachvollziehen kann:
    1) Du schreibst:
    Zitat
    die Variable "$listing_sql" gesetzt, die ich mir mit "var_dump()" ausgeben lasse.
    Wie läßt Du sie Dir ausgeben, wie folgt: var_dump($listing_sql) und wenn ja wo soll ich es eingeben???

    2) Du schreibst
    Zitat
    Setze ich den PHP-Befehl "var_dump()" nach der Autoinclude-Zeile ein - verändert sich die Variable.
    Innerhalb der default.php Zeile 312 wie folgt?
    Code: PHP  [Auswählen]
    foreach(auto_include(DIR_FS_CATALOG.'includes/extra/default/listing_sql/','php') as $file) require ($file);
    var_dump($listing_sql)
    Zitat
    ...verändert sich die Variable
    Wo sehe ich die Veränderung, muß ich die default.php starten oder was ist nötig...

    Gruß Teichbau

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Teichbau,
    schreibe zum Testen in die Datei "includes/modules/default/default.php" vor dieser Zeile
    Code: PHP  [Auswählen]
        foreach(auto_include(DIR_FS_CATALOG.'includes/extra/default/listing_sql/','php') as $file) require ($file);
    folgenden PHP-Code
    Code: PHP  [Auswählen]
    var_dump($listing_sql);
    und aktualisiere die erweiterte Suche "dein_shop/advanced_search_result.php?keywords=..." deines Shops.

    Bei mir wird dann ganz oben ausgegeben
    string(2241) "SELECT IFNULL(s.specials_new_products_price, p.products_price) AS price, p.products_manufacturers_model,... "

    Setzte ich den PHP-Code hinter die Zeile und aktualisiere wird dies angezeigt.
    string(1660) "SELECT p.products_manufacturers_model, p.products_date_added, ..."

    Bedeutet für mich, dass in einer Autoinclude-Datei der SQL-String für meine Shopseite verändert wird und ich dort ("includes/extra/default/listing_sql/") weitersuchen muss.

    Gruß Karl

    Teichbau

    • Fördermitglied
    • Beiträge: 383
    • Geschlecht:
    Hallo Karl,
    vielen Dank das kann ich soweit nachvollziehen - ich werde diese Vorgehensweise beim nächsten Problem anwenden.

    Die Ausgabe des var_dump() oben im Browser funktioniert bei mir im Live-Shop,
    im Test-Shop mit Subdomain funktioniert die Ausgabe nicht.
    Kann man im Backend irgendwo etwas einstellen, daß die Ansicht freischaltet oder nicht?

    Zitat
    In deinem Fall würde ich aber versuchen das Problem (wobei man über die Sortierung diskutieren könnte) updatesicher zu lösen.
    Eine neue Datei "99_teichbau_sort.php"  im Verzeichnis "includes/extra/default/listing_sql/" mit diesem Inhalt
    Code: PHP  [Auswählen]
      if (basename($PHP_SELF) == FILENAME_ADVANCED_SEARCH_RESULT && !empty($listing_sql)) {
                    $listing_sql = str_replace('ORDER BY p.products_id', 'ORDER BY p.products_sort', $listing_sql);
      }
    würde auch helfen.
    Wichtig beim Dateinamen ist, dass die Datei nach "99_advanced_search_result.php" ausgeführt wird.
    Heißt das das man im listing_sql Ordner die Reihenfolge der Ausführung per Dateibez. in Abhängigkeit zum Alphabet steuert?
    99_adv*****.php - original
    99_teich****.php - richtig
    99_ab_heute.php - falsch
    Hab ich das so richtig verstanden?

    Gruß Teichbau

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Teichbau,
    der PHP-Befehl "var_dump()" funktioniert auch in einem Testshop.
    Vermutlich hast du den Befehl in die falsche Datei, an den falschen Platz geschrieben, oder die Datei wird durch deinen Shopaufruf nicht durchlaufen.

    Das mit der Reihenfolge hast du richtig verstanden und trifft im Normalfall so zu.

    Gruß Karl

    Teichbau

    • Fördermitglied
    • Beiträge: 383
    • Geschlecht:
    Hallo Karl,
    vielen Dank für Deine Geduld und die ausführliche Hilfe.

    Gruß Teichbau
    0 Antworten
    1351 Aufrufe
    24. Juli 2017, 17:35:19 von Parker
    4 Antworten
    4191 Aufrufe
    04. Dezember 2019, 16:51:46 von ND
    1 Antworten
    2963 Aufrufe
    23. Februar 2014, 22:22:20 von dmun