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 der Artikeleigenschaften in der Kategorieansicht immer nach ABC

    fritten_fahrer

    • Mitglied
    • Beiträge: 149
    Hallo zusammen,

    besteht die Möglichkeit die Anordnung der Artikeleigenschaften in der Auswahlbox im Frontend immer in der Anordnung ABC anzeigen zu lassen?

    Danke und Gruß
    Chris

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

    TrueSlide

    • Schreiberling
    • Beiträge: 397
    Ich schließe mich der Frage an, da dies in nächster Zukunft bei mir auch ein Thema sein würde/wird.

    Timm

    • Fördermitglied
    • Beiträge: 6.342
    Ich hab es über die Sortierungsnummern alphabetisch geordnet. Muss man aber immer etwas Platz lassen zwischen den Nummern, damit man später noch Eigenschaften dazwischen schieben kann.

    Das hab ich aber nur für die möglichen Ausprägungen der Artikeleigenschaften so gemacht, damit bei Klick auf das Dropdown im Filter diese für den Kunden geordnet sind.

    Ein allgemeines sortieren nach ABC kann aber bei den Produkteigenschaften die unter der Artikelbeschreibung erscheinen selbst schlecht sein, weshalb ich dort nicht sortiert habe.

    Bsp ein Kfzs: Da wird Zylinderanzahl vermutlich wichtiger sein als Abgasnorm.

    Deshalb ist eine allgemeine alphabetische Sortierung nicht für jeden sinnvoll und es wurde deshalb nicht so umgesetzt. Für die Ausprägungen der Eigenschaften aber eventuell schon.

    Gruß Timm

    fritten_fahrer

    • Mitglied
    • Beiträge: 149
    Hallo Timm,

    ich verstehe schon, warum das so gemacht wurde. Es kann unter Umständen aber problematisch werden, wenn große mengen an Artikel-Eigenschaften hinterlegt werden und im Laufe der Zeit immer wieder welche dazu kommen.

    Wenn du zum Beispiel ein Produkt einem Fahrzeugmodell zu ordnen möchtest und hast 10 Modelle, bei denen das entsprechende Teil passt, dann bist du bei der Anlage der Artikel ziemlich lang mit sortieren beschäftigt.

    Es gibt bestimmt eine Möglichkeit die Auflistung im Frontend (Dropdown und Artikelansicht) automatisch nach dem Alphabet zu sortieren.

    Für Eure Bemühungen danke ich Euch schon einmal recht herzlich im Voraus.

    Viele Grüße
    Chris

    karsta.de

    • Experte
    • Beiträge: 3.075
    Übergangsweise nicht updatesicher kann man die Sortierung in der includes/modules/listing_filter.php in Zeile 287 individuell anpassen:.
    Eine Möglichkeit:
    Ist keine Sortierung vorgegeben (also alle Eigenschaften Sortierung "0"), soll alphabetisch nach Namen der Eigenschaften sortiert werden.
    suchen:
    Code: PHP  [Auswählen]
    ORDER BY pto.sort_order, ptv.sort_order";  

    ändern in:
    Code: PHP  [Auswählen]
    ORDER BY pto.sort_order, ptv.values_name, ptv.sort_order";  

    Zweite Möglichkeit:
    Sollen die Eigenschaften grundsätzlich im Filter nach Namen sortiert werden, dann:
    ändern in:
    Code: PHP  [Auswählen]
    ORDER BY pto.sort_order, ptv.values_name";  

    BG Karsta

    fritten_fahrer

    • Mitglied
    • Beiträge: 149
    Hallo Karsta,

    vielen Dank. Das ist sehr hilfreich. In der Dropdown Auswahl funktioniert das sehr gut.

    Können in der Artikelansicht auch die Werte nach ABC geordnet werden? Also nicht das was links in der Box als Überschrift steht, sondern rechts als einzelne Positionen/Eigenschaften aufgelistet wird?

    Viele Grüße
    Chris

    karsta.de

    • Experte
    • Beiträge: 3.075
    Leg eine neue php-Datei 99_sort_product_tags.php mit folgenden Inhalt in den Ordner:
    includes/extra/modules/products_tags_data
    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: 99_sort_product_tags.php 11316 2018-06-27 09:16:53Z GTB $

       modified eCommerce Shopsoftware
       http://www.modified-shop.org

       Copyright (c) 2009 - 2013 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/

       
       $module_content = array ();
       $tags_query = xtDBquery("SELECT ".ADD_TAGS_SELECT."
                                    pto.options_id,
                                    pto.options_name,
                                    pto.options_description,
                                    pto.sort_order AS options_sort_order,
                                    pto.options_content_group,
                                    ptv.values_id,
                                    ptv.values_name,
                                    ptv.values_description,
                                    ptv.sort_order AS values_sort_order,
                                    ptv.values_image,
                                    ptv.values_content_group
                               FROM "
    .TABLE_PRODUCTS_TAGS." pt
                               JOIN "
    .TABLE_PRODUCTS_TAGS_OPTIONS." pto
                                    ON pt.options_id = pto.options_id
                                       AND pto.status = '1'
                                       AND pto.languages_id = '"
    .(int)$_SESSION['languages_id']."'
                               JOIN "
    .TABLE_PRODUCTS_TAGS_VALUES." ptv
                                    ON ptv.values_id = pt.values_id
                                       AND ptv.status = '1'
                                       AND ptv.languages_id = '"
    .(int)$_SESSION['languages_id']."'
                              WHERE pt.products_id = '"
    .$product->data['products_id']."'
                           ORDER BY pt.sort_order, pto.sort_order, ptv.values_name"
    );
    if (xtc_db_num_rows($tags_query, true) > 0) {
      while ($tags = xtc_db_fetch_array($tags_query, true)) {
        if (!isset($module_content[$tags['options_id']])) {
          $module_content[$tags['options_id']] = array('OPTIONS_NAME' => $tags['options_name'],
                                                       'OPTIONS_ID' => $tags['options_id'],
                                                       'OPTIONS_SORT_ORDER' => $tags['options_sort_order'],
                                                       'OPTIONS_DESCRIPTION' => $tags['options_description'],
                                                       'OPTIONS_CONTENT_LINK' => (($tags['options_content_group'] != '') ? xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.$tags['options_content_group'], 'NONSSL') : ''),
                                                       'DATA' => array());
        }
        $module_content[$tags['options_id']]['DATA'][] = array('VALUES_NAME' => $tags['values_name'],
                                                               'VALUES_ID' => $tags['values_id'],
                                                               'VALUES_SORT_ORDER' => $tags['values_sort_order'],
                                                               'VALUES_DESCRIPTION' => $tags['values_description'],
                                                               'VALUES_IMAGE' => (($tags['values_image'] != '' && is_file(DIR_FS_CATALOG.DIR_WS_IMAGES.$tags['values_image'])) ? DIR_WS_BASE.DIR_WS_IMAGES.$tags['values_image'] : ''),
                                                               'VALUES_CONTENT_LINK' => (($tags['values_content_group'] != '') ? xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.$tags['values_content_group'], 'NONSSL') : ''),
                                                               );
                                                               
      }
    }
     

    In Zeile 36 kannst du weitere individuelle Sortierungseinstellungen vornehmen. (Momentan alphabetische Optionswerte eingestellt.)

    BG Karsta

    fritten_fahrer

    • Mitglied
    • Beiträge: 149
    Karsta, das ist perfekt! Dankeschön für deine Bemühungen. Es funktioniert perfekt.

    Viele Grüße
    Chris

    Timm

    • Fördermitglied
    • Beiträge: 6.342
    @karsta
    Deine erste gepostete Lösung ändert die Reihenfolge alphabetisch nur im Dropdown (mögliche Eigenschaftenausprägungen) des Filters und nicht unter der Artikelbeschreibung bei den Produkteigenschaften, oder? Und auch nicht die Reihenfolge der Eigenschaften im Filter.

    Das sollte doch eigentlich Standard so sein, solange kein Sortierreihenfolge vorgegeben? Dann würde ich ein Ticket dazu aufmachen.

    Gruß Timm

    karsta.de

    • Experte
    • Beiträge: 3.075
    Genau so ist es.
    Ist keine Sortierung eingestellt wird standardmäßig nach der Eigenschafts-ID (ptv.values_id) sortiert.
    Das gilt für die Artikeleigenschaften - Gruppe wie für die Artikeleigenschaften - Werte.

    Standardmäßig wäre es denke ich so sinnvoll:
    Code: PHP  [Auswählen]
    ORDER BY   pto.sort_order, pto.options_name, ptv.sort_order, ptv.values_name";
    (Heißt ist eine Sortierung vorgegeben wird diese genommen, wenn nicht wird alphabetisch sortiert.)

    BG Karsta

    Timm

    • Fördermitglied
    • Beiträge: 6.342
    Danke Karsta!

    Ich hab das in Ticket #1753 festgehalten.

    Gruß Timm
    5 Antworten
    581 Aufrufe
    18. Juli 2023, 23:21:26 von noRiddle (revilonetz)
    4 Antworten
    4173 Aufrufe
    04. Dezember 2019, 16:51:46 von ND
    1 Antworten
    2064 Aufrufe
    06. September 2010, 08:56:13 von Tomcraft
    6 Antworten
    4136 Aufrufe
    30. Juli 2014, 18:38:46 von gruenbaer