Ergebnis 1 bis 14 von 14

Thema: Produkte nach Kategorie anzeigen

  1. #1
    Contao-Nutzer
    Registriert seit
    19.03.2014.
    Beiträge
    96

    Standard Produkte nach Kategorie anzeigen

    Hallo zusammen,

    ich habe eine Übersicht-Seite und darunter die verschiedenen Kategorien denen Produkte zugewiesen sind.
    Nun möchte ich auf der Übersicht-Seite eine Produktliste - Blockweise sortiert nach den Kategorien anzeigen lassen.
    Ich nehme an das es dafür eine einfache Lösung gibt (Filter oder so).

    Hat hier jemand die Lösung (oder weiß wo ich sie finde)?

  2. #2
    Gesperrt
    Registriert seit
    07.05.2011.
    Beiträge
    1.199

    Standard

    Du hast ja in den Unterkategorien immer schon eine Produktliste für die akt. Kategorie. Ich versteh zwar nicht, wozu die ganzen Kategorieprodukte auch noch auf der Wurzelseite ausgegeben werden sollen und finde es keine gute Idee, aber muss ich ja auch nicht verstehen.

    Zwei naheliegende Möglichkeiten:
    1. Du bindest das Listenmodul mehrfach auf der Übersichtsseite ein. 1x je Unterkategorie und wählst als Referenzseite die jeweilige Kategorieseite. Hätte die Vorteile, anders formatieren und/oder anders filtern zu können als die in der Kategorie platzierte Liste sowie der Verwendungsmöglichkeit eines modifizierten Templates.
    2. Oder falls Du bloß die Produkte in identischer Anzahl, Sortierung und Optik wie in den Kategorien anzeigen willst, nur eben halt alle vorhandenen Produkte, kannst Du stattdessen auch einfach auf der Übersichtsseite nacheinander die Contao-Artikel der Kategorieseiten einbinden. Die Elemente z. B. auch scrollbar machen, damits bei vielen Produkten keine Riesentapete wird. Oder zum selben Zweck bereits in den Kategorien mit Pagination - die hättest Du so ja auch gleich mit auf der Übersichtsseite.
    Geändert von soweit_ok (01.09.2015 um 20:36 Uhr)

  3. #3
    Contao-Nutzer Avatar von rflx
    Registriert seit
    06.08.2009.
    Ort
    127.0.0.1
    Beiträge
    98

    Standard

    Bitte Beitrag löschen. Bin im falschen Thread gelandet.
    Geändert von rflx (02.09.2015 um 10:18 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    19.03.2014.
    Beiträge
    96

    Standard

    Hallo soweit_ok,

    warum das ganze? Der Kunde will das so. Sinnhaftigkeit!? - da bin ich ganz deiner Meinung.

    Deine zwei Varianten hab ich auch schon überlegt, wobei ich mich dann für Variante 1 entscheiden muss da die Darstellung und vor allem die Links der Produktbilder unterschiedlich sind.
    Bei über 40 Kategorien (nicht alles auf einer Seite, ich habe ja noch Kategorien darüber) jedoch etwas mühsam.

    Interessant wäre eine Anpassung des Templates mod_iso_productlist, mit der Produkte mit der selben Kategorie in einen div zusammengefasst werden.

    Da jemand eine Idee?

    LG Simon

  5. #5
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.726
    User beschenken
    Wunschliste

    Standard

    Beispiel: https://www.robert-metcalf.de/liederladen.html

    * nach Kategorie (erst CD, dann Notenheft und dann Begleitheft)
    * anschließend nach einer ind. Sortierung (hatte vorher nach Jahr und dann nach Preis)

    => aber nur so lange wie keine eigene Sortierung oder Suche angewählt wurde...

    kann man alles im Template machen - auch die Umschaltung der Ansicht ;-)

  6. #6
    Gesperrt
    Registriert seit
    07.05.2011.
    Beiträge
    1.199

    Standard

    Ja, das Liederladen-Beispiel ist gut.

    Wären da nicht das Sortierungsproblem und ansonsten auch noch die Anforderung des TE-Kunden, dass die Übersichtslisten was teils was anderes anzeigen sollen als die Listen der Kategorieseiten (andere Produktbilder und so), bräuchte man nichtmal verschiedene Produktlisten auf der Übersichtsseite.

    Denn man kann ja im Produkt auswählen, dass es nicht nur auf der Kategorieseite, sondern auch auf der Übersichtsseite angezeigt werden soll. Ich denke auch, es ließe sich wahrscheinlich alles mit einem einzigen Listentemplate erschlagen, könnte aber ziemlich knifflig werden. Im Template ließe sich feststellen, auf welcher Seite sich der Besucher gerade befindet. Das mache ich für verschiede Zwecke ebenfalls, bspw. um Attribute seitenabhängig zu verarbeiten. Okay, wenn man also die Seite kennt, wo der Besucher ist, könnte man mit einer Dateinamenskonvention der Bilder im Template seitenabhängig steuern, welches ausgegeben werden soll - noch relativ einfach zu coden. Mit der Sortierung, Produkte hübsch nach Kategorien auf der Übersichtsseite auszugeben, würde es aber schon deutlich schwieriger, glaub ich. Deshalb würde ich wahrscheinlich für das Listing der Übersichtsseite ein eigenes Template bevorzugen. Das mit dem anderen Produktbild ließe sich trotzdem leicht machen. Evtl. würde ich die abweichende Bild-URL einfach in einem Attribut hinterlegen, so bräuchte es keine Dateinamenskonvention.

    Hab ich jetzt mal schnell runtergetippt, ohne kompliziertes Nachdenken - könnten Denkfehler drin sein.

  7. #7
    Contao-Nutzer
    Registriert seit
    19.03.2014.
    Beiträge
    96

    Standard

    Sortierung oder Suche im Frontend nicht nötig.

    Das das möglich ist - davon bin ich ausgegangen. Mein Problem ist nur wie abfragen!! Kaum php-Kenntnisse.
    Gibt es dazu auch Code-Beispiele von euch?

    LG Simon

  8. #8
    Gesperrt
    Registriert seit
    07.05.2011.
    Beiträge
    1.199

    Standard

    Vorschlag:

    Integrier doch erstmal die Produktliste(n) auf der Übersichtsseite so, dass es dem Ziel so nah wie möglich kommt. Dann postest Du Screenshot und Templatecode, sowie die Angabe, was Du ggf. noch anders haben willst.

    Dann gucken wir, was im Code angepasst werden müsste.

  9. #9
    Contao-Nutzer
    Registriert seit
    19.03.2014.
    Beiträge
    96

    Standard

    Hallo soweit_ok,

    so wie im Screenshot soll die Auflistung der Produkte aussehen. Wobei die Überschriften (Filzhausschuh...., Walkhausschuh....., etc.) die Kategorien (als Seiten angelegt) darstellen und darunter alle Produkte die dieser Kategorie zugewiesen wurden. Jeweils jede Kategorie mit ihren Produkten in einem div (wie im Template angedeutet).

    Wäre nett wenn du mir helfen könntest.

    LG Simon


    Unbenannt-1.jpg

    mod_iso_productlist:

    Code:
    PHP-Code:
    <div class="<?php echo $this->class?> block"<?php echo $this->cssID?><?php if ($this->style): ?> style="<?php echo $this->style?>"<?php endif; ?>> <?php if ($this->headline): ?> <<?php echo $this->hl?>><?php echo $this->headline?></<?php echo $this->hl?>> <?php endif; ?> <?php if($this->message): ?> <p class="<?php echo $this->type?> message"><?php echo $this->message?></p> <?php endif; ?> <?php if(!empty($this->products)): ?> <div class="product_list">     <div class=""> // das ist die Kategorie (foreach Kategorie)         <h2>Seitenname</h2>              <?php foreach ($this->products as $product): ?> // das sind die dazugehörigen Produkte         <div<?php echo $product['cssID']; ?> class="<?php echo $product['class']; ?>">         <?php echo $product['html']; ?>         </div>         <?php endforeach; ?>     </div>      </div> <?php echo $this->pagination?> <?php endif; ?> </div>

  10. #10
    Contao-Nutzer
    Registriert seit
    19.03.2014.
    Beiträge
    96

    Standard

    Sorry, ich glaube so ist es besser mit dem Code.


    Code:
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    <?php if ($this->headline): ?>
    
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    <?php if($this->message): ?>
    
    <p class="<?php echo $this->type; ?> message"><?php echo $this->message; ?></p>
    <?php endif; ?>
    <?php if(!empty($this->products)): ?>
    
    <div class="product_list">
    
    	<div class=""> // das ist die Kategorie (foreach Kategorie)
    		<h2>Seitenname</h2>
    	
    		<?php foreach ($this->products as $product): ?> // das sind die dazugehörigen Produkte
    		<div<?php echo $product['cssID']; ?> class="<?php echo $product['class']; ?>">
    		<?php echo $product['html']; ?>
    		</div>
    		<?php endforeach; ?>
    	</div>
    	
    </div>
    <?php echo $this->pagination; ?>
    <?php endif; ?>
    
    </div>

  11. #11
    Gesperrt
    Registriert seit
    07.05.2011.
    Beiträge
    1.199

    Standard

    Gibt wie gesagt mehrere Möglichkeiten. Okay, dann greif ich Dir damit mal unter die Arme. Heut hab ich allerdings keine Zeit, aber irgendwann am Wochende wirds gehen.

    Edit: Zugunsten der Übersichtlichkeit des Threads inzwischen überflüssig gwordenen Text aus dem Posting gelöscht.
    Geändert von soweit_ok (07.09.2015 um 11:32 Uhr)

  12. #12
    Contao-Nutzer
    Registriert seit
    19.03.2014.
    Beiträge
    96

    Beitrag

    Vielen Dank für dein Angebot aber das Ganze sollte kein Auftrag werden. Zugang zu PHP-Entwicklern habe ich ja.
    Da sollst du jetzt keinen Aufwand damit haben.
    Falls jemand soetwas schon einmal gemacht hat, hätte mich sein Lösungsansatz (wenn möglich auch der Code) interessiert.
    Für meine Zwecke angepasst hätte ich es dann selbst.
    Ich glaube das Beispiel von zonky ist genau das was ich brauche (ohne weiter Sortier-Möglichkeiten). Wäre interessant wie das gemacht wurde.

    Trotzdem vielen Dank für deine Bemühungen und Lösungsansätze, soweit_ok!

  13. #13
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.726
    User beschenken
    Wunschliste

    Standard

    per PHP-Array-Anpassung... thats all

  14. #14
    Gesperrt
    Registriert seit
    07.05.2011.
    Beiträge
    1.199

    Standard

    Zitat Zitat von contaoUser79 Beitrag anzeigen
    ... aber das Ganze sollte kein Auftrag werden..
    Hmmh, von "Auftrag war" auch keine Rede. Ich wollte ja keine Bezahlung für so ne Kleinigkeit. Das Angebot, es gleich online im BE einzubauen, war bloß, weil ich wg meines kaputten PC nur mit Notebook bloß momentan etwas eingeschränkt bin und könnte es ohne Extraaufwand grad nicht lokal testen, hab auch keinen Codeschnipsel dafür parat.

    Okay, von selbermachen hast Du eh mehr. So wie zonky vorschlägt, finde ich´s ebenfalls am praktischten. Ist auch ohne Codebeispiel nicht schwierig. Der Umgang mit Arrays ist ja in PHP-Tutorials bestens beschrieben.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •