Ergebnis 1 bis 12 von 12

Thema: Produktliste nach Kategorie gruppiert auflisten

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

    Frage Produktliste nach Kategorie gruppiert auflisten

    Hi Community,

    Ich stehe bei der Umsetzung einer MetaModels FE Liste aufm Schlauch.
    Gerne möchte ich auch eine Art Produkte-Übersichtsseite die nach Kategorie gruppiert ist, darstellen.
    Beispiel: http://www.swix.de/Produkte/Wachs-Tuning/Gleitwachs (Nur Listendarstellung beachten)

    Die Weiterleitungsseite bei Klick auf Headline oder Item sollten alle Produkte der Kategorie ausgegeben werden. Auf der Übersichtsseite sollten die Produkte auf eine Anzahl von 6 Produkte pro Kategorie beschränkt werden.
    Meine MetaModels sehen so aus: Produkte müssen eine Kategorie besitzen (n:1).

    Würde mich auf euer Feedback freuen

    Cheers

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

    Standard

    da braucht es etwas mehr Infos, wie Du Deine MMs angelegt hast

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

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    da braucht es etwas mehr Infos, wie Du Deine MMs angelegt hast
    Hi zonky,

    Das MetaModel "Produkte" beinhaltet ein Auswahl-Attribut der die Werte von einer Quelltabelle "Kategorien" bezieht.
    Ansonsten beinhaltet das MetaModel eigenständige Attribute wie Bild, Titel, Beschreibung, Alias. Das MetaModel ist Zweisprachig.
    Das Ziel ist es eine Grundidee zu bekommen wie man das in dieser Richtung umsetzten kann.

    Cheers

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

    Standard

    da gibt es mehrere Möglichkeiten... kommt auch etwas darauf an, ob deine Kategorien per Einfach- oder Mehrfachattribut referenziert sind

    z.B.

    a) Du machst für jede Kategorie ein FE-Inhaltselement und gibst die Sache aus - mach ein Filter "einfache Abfrage" mit Kategorie als Attribut sowie check von "Statischer Parameter" - dann kannst Du die Kategorie leicht im Inhaltselement auswählen

    b) du spielst mal mit den Sortierungen/Gruppierungen rum und fängst in der Templateschleife eine neue Kategorie für eine (Zwischen)Überschrift ab

    c) bei "hierarchichen Sortierungen" also z.B. erst nach Kategorie und dann nach Preis und dann nach Name mache ich das im Template in dem ich das Ausgabearray entsprechend manipuliere

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

    Standard

    Hi zonky,

    Vielen Dank für deine Antwort!
    Deine Varianten a & b habe ich mal getestet und finde beide sehr gut, wobei Variante b dynamischer wirkt. Dank diesem Thread habe ich einen Gedankenstoss bekommen.

    Genügen eigentlich folgende Zeilen im Template innerhalb der foreach-Schleife?:
    PHP-Code:
    <?php if ($lastcat != $arrItem['text']['product_category']):
        
    $lastcat $arrItem['text']['product_category']; ?>
    <h2 class="category"><?= $arrItem['text']['product_category'?></h2>
    <?php endif; ?>
    Cheers

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

    Standard

    Zitat Zitat von rflx Beitrag anzeigen
    Genügen eigentlich folgende Zeilen im Template innerhalb der foreach-Schleife?:
    im Prinzip schon...

    Interessanter wird es, wenn ein Produkt/Item zu mehreren Kategorien gehört ;-)

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

    Standard

    Hi zonky,

    vielen Dank für deine Hilfe.
    Ja, wenn ich es mir so überlege würde es sehr interessant werden, zum Glück habe ich nur eine 1:n Relation.
    Ich werde die Variante mit den mehreren Inhaltselementen pro Seite machen, die dann via Filter die entsprechende Kategorie ausgeben. In diesem Fall kann ich auch pro Inhaltselement die "Shuffle"-Funktion und Items/page einstellen. Sonst werde ich noch durchdrehen wenn ich im Template die Items kategorisiere, Anzahl pro Kategorie festlegen muss und evt. eine "Shuffle"-Funktion implementiere.

    Falls Jemand oben genanntes Szenario schon mal umgesetzt würde mich trotzdem interessieren.

    Cheers
    Geändert von rflx (03.09.2015 um 08:07 Uhr)

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

    Standard

    spontane Idee wäre, das Listing nicht über die Produkte zu machen sondern über die Kategorien und in den Kategorien die Produkte ausgeben - ggf. mit einer kleinen "Hilfsfunktion" (Stichwort: Referenzierte Items)

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

    Standard

    Also du meinst einen Frontend-Rendersetting für MM Kategorien erstellen und diese dann im Frontend ausgeben?
    Die dazugehörigen Produkte dann via:
    PHP-Code:
    $objMetaModel = \MetaModels\Factory::byTableName('mm_products');
    $objFilter $objMetaModel->getEmptyFilter();
    $objFilter->addFilterRule(new \MetaModels\Filter\Rules\SearchAttribute($objMetaModel->getAttribute('product_category'), $arrItem['text']['category_internal_name'], $objMetaModel->getAvailableLanguages()));
    $objItems $objMetaModel->findByFilter($objFilter); 
    in die Foreach-Schleife holen?

    Den category_internal_name (MM Kategorien) erfasse ich in MM Produkte mittels Select-Feld (product_category).
    Erhalte aber mittels var_dump($objItems) nichts schlaues raus:
    Code:
    object(MetaModels\Items)#268 (2) { ["intCursor":protected]=> int(-1) ["arrItems":protected]=> array(0) { } }
    Cheers
    Geändert von rflx (03.09.2015 um 17:30 Uhr)

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

    Standard

    probier mal

    PHP-Code:
    function getProductsByCategoryId($intCategoryId$format='html5'$view)
    {
      
    $objMetaModel = \MetaModels\Factory::byTableName('mm_products');
      
    $objFilter $objMetaModel->prepareFilter(1, array('id_category' => $intCategoryId));
      
    $objItems $objMetaModel->findByFilter($objFilter);
      return 
    $objItems->parseAll($format$view);
    }

    // in Schleife
    $arrProductItems getProductsByCategoryId($arrItem['raw']['id_category'], $this->getFormat(), $this->view);
    foreach(
    $arrProductItems...
    // alle Produkte 
    bei prepareFilter statt der ID (1) die Filter-ID einsetzen (Achtung: die ID des "ganzen Filters" nicht einer der "Sub-Einstellungen")

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

    Standard

    Hi zonky,

    vielen Dank für dein Snippet – Jetzt sieht es schon besser aus.
    Was genau ist die "id_category" und welchen Filter muss ich in prepareFilter einstellen?

    Cheers
    Geändert von rflx (04.09.2015 um 08:44 Uhr)

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

    Standard

    * in deinen Produkten sollte es ein (Attribut)Feld geben, in dem die Kategorie-ID(s) enthalten sind
    * "Filter-muss-nicht-aber-kann" - z.B. der "veröffentlicht-Filter"

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
  •