rechtstexte für onlineshop
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: Neue Artikel ( products_new.php) nach last_modified anzeigen lassen?

    newbee79

    • Fördermitglied
    • Beiträge: 185
    • Geschlecht:
    Guten Morgen zusammen,

    sitze jetzt schon seit 2 Stunden und habe in den verschiedensten Dateien versucht die "Neue Artikel" Seite ( products_new.php) nach last_modified sortieren zu lassen und nicht nach date_added !!

    Es ändert sich aber nie was.

    Zum Schluss war ich jetzt bei den listing_filter ... aber auch da kein Erfolg.

    Kann mir jemand sagen, an welcher Datei ich das genau ändern muss?

    Ich habe es jetzt natürlich immer nur an einer einzelnen Datei geändert und nicht an mehreren gleichzeitig... vielleicht liegt's daran ?!

    Freue mich über einen Tipp! ( shop 2.0.7.2 )

    Schöne Grüße,
    David

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

    Karl1

    • Experte
    • Beiträge: 1.879
    Hallo David,
    im Admin Konfiguration -> Artikel Listen Optionen gibt es zwei Einstellmöglichkeiten für neue Artikel - leider gibt es nicht die von dir gewünschte Möglichkeit.

    Es gibt aber die Möglichkeit das updatesicher zu ändern.
    Erstelle eine neue PHP-Datei includes/extra/default/listing_sql/1_my_new_product_sorting.php und schreibe hinein
    Code: PHP  [Auswählen]
      if (basename($PHP_SELF) == FILENAME_PRODUCTS_NEW) {
        $listing_sql = str_replace('ORDER BY p.products_date_added', 'ORDER BY p.products_last_modified', $listing_sql);
      }
    Dadurch wird beim Aufruf der Seite "Neue Artikel" die Sortierung verändert.

    Beachte aber, wenn du einen neuen Artikel anlegst und speicherst wird wird das Datenbankfeld "products_last_modified" nicht belegt - man muss zweimal speichern, damit in diesem Feld ein Zeitstempel hinzugefügt wird.
    Machst du das nicht, wird der neue Artikel ans Ende sortiert.

    Gruß Karl

    newbee79

    • Fördermitglied
    • Beiträge: 185
    • Geschlecht:
    Hi Karl,

    vielen Dank. Habe es gerade mal mit der Datei versucht, allerdings zeigt er den Testartikel in der products_new nicht an erster Stelle. Es erscheinen nach wie vor die Artikel mit neuestem date_added.

    Der Testartikel hat den neuesten last_modified Timestamp und ist natürlich aktiv, also daran kann's nicht liegen.

    Dass es nur mit Artikel funktioniert, die bereits einenen last_modified Eintrag haben, ist kein Problem. Denn ich habe angelegte Musterartikel, die dann einfach kopiert werden. Somit ist das last_modified  Feld immer bereits gefüllt :)

    Gruß David

    Karl1

    • Experte
    • Beiträge: 1.879
    Hallo David,
    steht was in den Log-Dateien?
    Du hast schon am Anfang des Codes "<?php" stehen, die Datei liegt im richtigen Verzeichnis?

    Du kannst zum Testen mal in die Datei includes/modules/default.php nach der Zeile
    Code: PHP  [Auswählen]
    foreach(auto_include(DIR_FS_CATALOG.'includes/extra/default/listing_sql/','php') as $file) require ($file);
    schreiben
    Code: PHP  [Auswählen]
    var_dump($listing_sql);die;
    und dann die Seite "Neue Artikel" aktualisieren, am Ende der Ausgabe sollte "ORDER BY p.products_last_modified" stehen.

    Gruß Karl

    newbee79

    • Fördermitglied
    • Beiträge: 185
    • Geschlecht:
    Hi Karl,

    da haben wir's!

    Soweit hatte ich in dem Moment nicht gedacht - ich habe nur deinen Teil in die leere Datei kopiert - ohne die php-Definition  :datz:

    Jetzt funktioniert es! Vielen Dank  :thumbs:

    Gruß David

    newbee79

    • Fördermitglied
    • Beiträge: 185
    • Geschlecht:
    Hi Karl,

    muss meine Antwort revidieren... habe jetzt mal einen noch älteren Artikel bearbeitet ( added 06.06.2022 ) und der erscheint nicht in der products_new.

    Kann es sein, dass der jetzt nicht angezeigt wird, da er außerhalb meiner Admin Max. Einstellungen  "Anzahl der Tage für neue Produkte" ( 30 Tage ) liegt ?!

    Habe mal den Test mit:
    Code: PHP  [Auswählen]
    var_dump($listing_sql);die;

    gemacht, da bringt er mir nur eine weiße Seite mit Fehlermeldungen auf der products_new .... ;)

    Grüße, David

    Karl1

    • Experte
    • Beiträge: 1.879
    Hallo David,
    sorry, das habe ich übersehen.
    Schreib in die Datei
    Code: PHP  [Auswählen]
      if (basename($PHP_SELF) == FILENAME_PRODUCTS_NEW) {
        $listing_sql = str_replace('p.products_date_added >', 'p.products_last_modified >', $listing_sql);
        $listing_sql = str_replace('ORDER BY p.products_date_added', 'ORDER BY p.products_last_modified', $listing_sql);
      }

    Gruß Karl

    newbee79

    • Fördermitglied
    • Beiträge: 185
    • Geschlecht:
    Hey Karl!

    Jetzt rockt's! :)

    Vielen Dank!

    Gruß
    David
               
    anything