Sortierreihenfolge auf Kategorieseiten ausgeben

Thema wurde von ff-webdesigner, 6. April 2021 erstellt.

  1. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    Hallo beisammen,

    Ich versuche gerade auf Kategorieseiten die Sortierreihenfolge-Nummern der einzelnen Produkte ausgeben zu lassen. Hierzu habe ich unter 4.0.2.0

    /system/classes/products/ProductInfoContentView.inc.php in Zeile 1876 bereits zum testen ergänzt:

    $this->set_content_data('PRODUCTS_SORT_ORDER', 'XXX');

    und dann im template product_listing_product.html Zeile 13

    Sortiernummer: {$PRODUCTS_SORT_ORDER}

    Die Smarty Variable bleibt aber auch nach leeren aller Caches stets leer. Warum?
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Wenn Du das Theme nutzt, dann wird die ProductInfoContentView.inc.php nciht mehr genommen.

    da gibt es unter
    GXMainComponents/View/ThemeContentViews/products/
    die Datei
    ProductInfoThemeContentView.inc.php
     
  3. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    hi barbara,

    danke für den tipp, aber die datei ist es leider auch nicht. schon änderung
    $this->set_content_data('PRODUCTS_NAME', $this->product->data['products_name']);
    in
    $this->set_content_data('PRODUCTS_NAME', 'TEST');
    bewirkt nach leeren caches keinerlei neue ausgabe.

    in GXMainComponents/View/ThemeContentViews/listing/ kommt zwar auch einige male PRODUCTS_NAME vor - aber nur für produktboxen startseite wies ausschaut...
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Schau mal in die includes/classes/product.php
    ich glaube das ist die, die Du suchst.
     
  5. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    hi barbara,

    ne, da werden nur die product arrays angelegt. dort schaue ich rein wenn mir im array noch php variablen aus db fehlen. ich hab aber schon unter GXMainComponents/View/ThemeContentViews/products/ProductInfoThemeContentView.inc.php an keiner stelle z.b. PRODUCTS_NAME um irgendwas statisches ergänzen können...die datei scheint auch in themes nicht die smarty template variablen anzulegen.
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Ich meine das die ProductInfoThemeContentView.inc.php für die Artikel-Detailseite ist und nicht für die Listen / Kachelansicht.
    Es müsste eher eine ProductListing/theme.... sein.
    Aber so ganz steige ich da auch noch nicht durch :(
     
  7. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Wenn Du in der "product_listing_product.html" eine Ausgabe erzeugen möchtest, dann musst Du auf Barbara hören und die includes/classes/product.php überladen. Dort ist es die Function "buildDataArray" die ein Array "t_data_array" zurück gibt und damit die Variablen übergibt, die Du dann mittels Smarty wieder ausgeben kannst.
     
  8. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Ich habe gerade noch mal in die Datenbank geschaut.
    Der Name für die Sortiernummern wäre dort products_sort, nicht products_sort_order - oder hast Du eine eigene Spalte angelegt?
     
  9. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    hab jetzt die komplette site durchsucht nach 'PRODUCTS_NAME', also der smarty variable für den produktnamen. an x stellen versucht den zu ergänzen um ein einfaches .'xxx'. nirgends mit erfolg. mann...15 jahre gambio programmierung, und selbst einfachste sachen werden immer schwerer bis unmöglich.
     
  10. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Ich weiß nicht, ob ich Dich richtig verstanden habe, darum habe ich mal eine ZIP-Datei erstellt, die in der Kategorieübersicht einen Text ausgibt. Den Inhalt einfach in das Stammverzeichnis(root) vom Server kopieren, Cache für Module und Seitenausgabe neu erstellen, dann solte ein Text erscheinen.
     

    Anhänge:

  11. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    hi kai, danke, gecheckt...ist aber was ganz anderes. aktuell reduziere ich das problem auf eine einzige frage:

    Wo werden unter Themes Gambio 4.0.2.0 die smarty variablen für kategorieseiten produktboxen gesetzt?

    alle obigen alten dateien aus template und auch die neu von barbara vorgeschlagenen greifen nicht. wenn ich einzig und alleine weiss wo die smarty variable $PRODUCTS_NAME definiert wird schaffe ich alles weitere ohne probleme. ich finde einfach auf teufel komm raus nicht die stelle der definition.
     
  12. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Kannst Du mal ein Bild hier rein geben, auf dem man sieht, was Du meinst? Irgendwie verstehe ich im Augenblick nicht wo Du hin möchtest.
     
  13. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    bild nicht. aber check mal baugleichen shop, gleiche version, auch theme: https://www.katschinka.com/SnapPap-Label/?view_mode=default kategorieseite produktbox

    erster produkt name Kunstleder Label - made with Love for you (4 Stück)

    wo wird diese smarty variable $PRODUCTS_NAME definiert?
    es ist nicht mehr wie in templates unter /system/classes/products/ProductInfoContentView.inc.php
    und auch nicht wie barbara hoffte unter GXMainComponents/View/ThemeContentViews/products/ProductInfoThemeContentView.inc.php - die dateie scheint detailseiten zu bestücken.
    unter GXMainComponents/View/ThemeContentViews/listing/ gibts auch ein paar vorkommen von $PRODUCTS_NAME - aber keine greift...

    sobald ich weiss wo $PRODUCTS_NAME definiert ist ist das einschleifen sortiernummer kein problem...
     
  14. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Hier nochmal ein neuer Versuch, einfach wieder auf den Server bringen, den alten Kram aber vorher löschen.
     

    Anhänge:

  15. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    hi kai,

    danke für deine mühe! das ding läuft. aber ich brauch wirklich einfach wo die smarty variable $PRODUCTS_NAME im original für themes definitiert wird. nur dort kann ich neue smarty variablen einschleusen...zumindest hab ichs im overload z.b. mittels

    $this->set_content_data('PRODUCTS_SORT', '1');

    nicht hinbekommen.
     
  16. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    schnarchnase ich. $ks_t_data_array wird automatisch alles zu smarty variablen. so bekomm ichs hin. stelle die fertige lösung dann hier ein. danke nochmal, kai und barbara!
     
  17. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Das ist in der product.php, dort wird in der function buildDataArray die Variable t_data_array gefüllt. Ein Teil davon ist "PRODUCTS_NAME => Der Inhalt". Schau Dir das mal im Original an, dann wirst Du wissen was los ist.

    Wenn Du eine neue Variable haben möchtest, dann ist das erste Beispiel, welches ich hier eingestellt habe eine gute Vorlage. Da habe ich eine neue Variable erzeugt und die dann im Bereich unter dem Preis ausgegeben. Diese Variable kann aber auch an einer anderen Stelle ausgegeben werden.

    Ich habe nochmal ein Beispiel erstellt, das gibt die Sortiernummer des Artikels vor dem Artikelnamen aus.

    Aber Du musst aufpassen, da wo ich es jetzt drin habe, wird es auch auf der Startseite mit angezeigt.
     

    Anhänge:

  18. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    Registriert seit:
    22. Januar 2014
    Beiträge:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    nochmal dickes danke! hab alles perfekt mit deinen tipps hinbekommen. wers auch braucht: folgendes zip unter /GXModules entpacken. caches seiten und module leeren. ermöglicht es an beliebiger stelle in der theme datei /themes/DEINTHEME/html/custom/product_listing_product.html mittels {$MODULE_DATA['PRODUCTS_SORT']} die sortierreihenfolge des produktes auszugeben. getestet in gambio gx 4.0.2.0 - sollte relativ lange gehen. guten appetit!
     

    Anhänge: