Produkt Attribute sortieren

Thema wurde von TopLight, 16. Mai 2018 erstellt.

  1. TopLight

    TopLight Mitglied

    Registriert seit:
    25. April 2018
    Beiträge:
    12
    Danke erhalten:
    0
    Danke vergeben:
    3
    Hallo,

    ich würde gerne meine Produkt Attribute nach meiner eigenen Sortierung anzeigen lassen jedoch bietet Gambio nicht diese möglichkeit von alleine.

    Ich habe im Admin und in der Datenbank das umgeschrieben,sodass ich ein eigenständiges Sorting bekomme.
    Wie bekomme ich die Attribute in dem Template aber sortiert ?

    In der "/Honeygrid/module/product_options/product_options_dropdown.html" steht folgendes

    {foreach name=outer item=options_data from=$options}...{foreach}

    gib es ne möglichkeit wie sowas ?

    {foreach name=outer item=options_data from=$options orderby=sort}...{foreach}
    wobei "sort" eine Tabelle in der DB ist.

    oder geht das ihrgend wie anders durch umcoden ? oder wo befindest sich die datei wo der Foreach zusammenstellt wird ?

    Danke im vorraus !
     
  2. CITYJEWELS

    CITYJEWELS Erfahrener Benutzer

    Registriert seit:
    13. März 2015
    Beiträge:
    521
    Danke erhalten:
    103
    Danke vergeben:
    202
    Atr_Sort.JPG

    Das Sortierungs-Kennzeichen bei den Attributen ist dir sicherlich bekannt.
     
  3. TopLight

    TopLight Mitglied

    Registriert seit:
    25. April 2018
    Beiträge:
    12
    Danke erhalten:
    0
    Danke vergeben:
    3
    Diese Sortierung ist mir bekannt jedoch ist das nur die Sortierung der Attribut Optionen nicht der Attribute selbst.

    Die Sortierung der Attribute ist von Gambio nicht vorgesehen. Derzeit habe ich meine Sortierung selbst rein geschrieben (siehe bild - (Sort)). Das Klappt auch wie gewollt.

    Screenshot-2018-5-16 Gambio Admin(1).png

    Jedoch wird mein Sorting im Template nicht angezeigt weil die Sortierung nach der DB ID verläuft.

    Screenshot-2018-5-16 Puk Drop Trio(1).png

    {foreach name=outer item=options_data from=$options}...{foreach}

    durch diese "Foreach" abfrage kommt das Sorting nach ID und nicht nach meinen eigenem Sorting.

    In der datei "/system/classes/products/ProductAttributesContentView.inc.php" zeile 80-91 steht folgendes

    $t_query = 'SELECT DISTINCT popt.products_options_id, popt.products_options_name
    FROM ' . TABLE_PRODUCTS_OPTIONS . ' popt, ' . TABLE_PRODUCTS_ATTRIBUTES . ' patrib
    WHERE patrib.products_id = "' . $this->coo_product->data['products_id'] . '" AND patrib.options_id = popt.products_options_id AND popt.language_id = "' . $this->language_id . '"
    ORDER BY popt.products_options_id';

    Wenn ich das ORDER BY in "popt.sort" ändere bekomme ich meine eigene Sortierung jedoch ist diese Variante nicht Update sicher.

    Ich würde gerne die Abfrage des Sortings in der "Foreach Funktion" unterbringen damit das Update Sicher wird.
    Gib es da eine möglichkeit ?
     
  4. barbara

    barbara G-WARD 2014/15/16

    Registriert seit:
    14. August 2011
    Beiträge:
    30.456
    Danke erhalten:
    9.241
    Danke vergeben:
    1.356
    Warum überlädst Du die Datei nicht?
    Dann wäre Deine Änderung Updatesicher.
     
  5. TopLight

    TopLight Mitglied

    Registriert seit:
    25. April 2018
    Beiträge:
    12
    Danke erhalten:
    0
    Danke vergeben:
    3
    Natürlich könnte ich das einfach mit einer Kopie machen jedoch wäre das glaube nicht die richtige Variante.
    Es muss doch möglich sein entweder den Query des Foreach blocks zu ändern oder eine weiteres argument in den foreach block einzufügen wie z.b sortby=sort

    Wenn ich wüsste in welcher Datei der Foreach block zusammen gestellt wird könnte man evtl. schauen ob mann nicht ein weiteres argument an den Smarty block anfügen kann.

    so wie hier z.b.

    {foreach from=$users|@sortby:"lastName,firstName" item=user}
     
  6. barbara

    barbara G-WARD 2014/15/16

    Registriert seit:
    14. August 2011
    Beiträge:
    30.456
    Danke erhalten:
    9.241
    Danke vergeben:
    1.356
    Ich meine keine Kopie der ganzen Datei, sondern das Du das Teilstück überlädst, das Du ändern möchtest.
    https://developers.gambio.de/tutorials.html?v=3.2.0.0&p=class-overloading

    Die Anleitung ist schon älter, den Ordner user_classes gibt es nicht mehr, das wäre jetzt entweder
    GXUserComponents/overloads/
    oder Du packst das ganze inkl der html-Dateien in
    GXModules
     
  7. TopLight

    TopLight Mitglied

    Registriert seit:
    25. April 2018
    Beiträge:
    12
    Danke erhalten:
    0
    Danke vergeben:
    3
    Perfekt das war das was ich gesucht habe vielen Dank !!!
     
  8. Roland Collin

    Roland Collin Mitglied

    Registriert seit:
    2. Juli 2019
    Beiträge:
    15
    Danke erhalten:
    1
    Danke vergeben:
    5
    #8 Roland Collin, 11. Oktober 2020
    Zuletzt bearbeitet: 11. Oktober 2020
    Hey,
    könntest du uns/mir den Code dafür mal veröffentlichen, und mitteilen welche Dateien du nun dazu angepackt und wo abgespeichert hast?
    Und, wie hast du dein "Sort" in die Attribut-Übersicht reinbekommen?

    Also so eher etwas für Semi-Dummies? ;-)

    Das wäre großartig!
    Vielen Dank und einen schöne Woche!


    NACHTRAG:
    eine Nicht-Updatesichere Möglichkeit ist die Datei ProductAttributesContentView.inc.php in Zeile 90 zu ändern:
    von:
    ORDER BY
    popt.products_options_name';
    NAch
    ORDER BY
    popt.products_options_id';

    Somit gibt es eine Reihenfolge, die sich nach der ID richtet, und die man mit dem Zeitpunkt der Erstellung dadurch beeinflussen kann.

    Grüße Roland