Ergebnis 1 bis 6 von 6

Thema: Produkte inkl. deren Varianten (Variantenliste) anzeigen

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

    Standard Produkte inkl. deren Varianten (Variantenliste) anzeigen

    Hallo zusammen,

    ich habe folgendes Problem:

    Ich möchte eine Übersichtsseite mit allen Produkten inkl. deren Varianten (als Variantenliste) anzeigen.
    Aufbau in etwa so:
    Unbenannt-1.jpg

    Habe das Variantenmodul im Template iso_list_default oder mod_iso_productlist eingebunden bekomme aber wenn, dann nur alle Varianten aller Produkte und nicht pro Produkt.

    Hat das schon jemand versucht oder eine Idee wie das einfach machbar wäre?

  2. #2
    Contao-Nutzer Avatar von Monique Hahnefeld
    Registriert seit
    22.11.2011.
    Ort
    Berlin
    Beiträge
    173

    Standard

    Ja, dazu müsstest du das Produkt-Varianten-Template anpassen.
    Curiosity killed the cat

  3. #3
    Contao-Nutzer
    Registriert seit
    19.03.2014.
    Beiträge
    94

    Standard

    Hallo Monique,

    danke für deine Antwort.

    Das ich das Template anpassen muss ist soweit klar und für die Darstellung, so wie ich es wünsche, habe ich es schon angepasst.
    Mein Problem ist das ich es nicht schaffe das mir nur die Varianten je Produkt angezeigt werden. Ich bekomme zu jedem Produkt immer alle Varianten aller Produkte.
    Da jemand eine Idee? Wo müsste ich abfragen das ich nur die Varianten bekommen wo PID == ID oder so. Oder bin ich da auf dem "Holzweg"?
    Bin selbst nicht wirklich PHP kundig, hab aber jemanden dafür.

    Noch ne Frage: Das Template iso_list_variants definiert ja nur eine Variante. Wo ist der Zusammenbau der Liste definiert. Vielleicht könnte ich ja da meine "ID-Abfrage" einbauen.

    LG Simon
    Geändert von contaoUser79 (30.03.2015 um 09:26 Uhr)

  4. #4
    Contao-Nutzer Avatar von Monique Hahnefeld
    Registriert seit
    22.11.2011.
    Ort
    Berlin
    Beiträge
    173

    Standard

    Hi Simon,

    Du musst die Produkte doch nur bündeln, also die Produkte, welche die selbe PID haben. Ob man das jetzt mir Array Sortieren oder so hinbekommt muss man sehen. Hängt dann sicher noch davon ab was du im Varianten-Listen-Modul konfiguriert hast. Ansonsten sehe ich da nicht wo das Problem liegen sollte.

    VG
    Curiosity killed the cat

  5. #5
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Hallo Simon,

    ich bin an dem Thema auch sehr interessiert.

    Bevor jetzt alle schimpfen, dass man im Template die DB nicht so abfragen soll: Hab zu dem Thema sonst nichts besseres gefunden.

    Daher habe ich das Ganze über das Knie gebrochen bei einer Variante aus externer Tabelle:
    PHP-Code:
                    <?php 
                                    $subbadubba_id
    =$this->raw['id'];
                                    
    $this->import('Database');
                                        
    $objwasduwillst $this->Database->execute
                                            
    ("
                                                SELECT 
                                                    mm_externetabelle.name AS mm_name, 
                                                    mm_externetabelle.id AS mm_id, 
                                                    mm_externetabelle.shortdescription AS mm_description, 
                                                    mm_externetabelle.main_picture AS mm_picture, 
                                                    tl_iso_product.variantenname AS iso_product_variante, 
                                                    tl_iso_product.published AS iso_product_published, 
                                                    tl_iso_product.pid AS iso_product_pid, 
                                                    tl_iso_product.id AS iso_product_id,
                                                    tl_iso_product_pricetier.price AS iso_pricetier_price, 
                                                    tl_iso_product_pricetier.pid AS iso_pricetier_pid,
                                                    tl_iso_product_price.id AS iso_price_id,
                                                    tl_iso_product_price.pid AS iso_price_pid
                                                FROM 
                                                    mm_externetabelle,
                                                    tl_iso_product,
                                                    tl_iso_product_pricetier,
                                                    tl_iso_product_price
                                                WHERE mm_externetabelle.id = tl_iso_product.variantenname
                                                AND tl_iso_product.pid = 
    $subbadubba_id AND tl_iso_product.published ='1'
                                                AND tl_iso_product_price.pid = tl_iso_product.id
                                                AND tl_iso_product_price.id = tl_iso_product_pricetier.pid
                                                ORDER BY tl_iso_product_pricetier.price ASC
                                            "
    );
                                            while (
    $objwasduwillst->next())  
                                                {
                                                    
    $var_mm_name =  $objwasduwillst->mm_name
                                                    echo 
    $var_mm_name// und alles was du noch ausgeben willst

                                                
    }  
                                    
    ?>
    Vielleicht hat ja jemand eine bessere Idee.
    Gruß Hauge
    Geändert von Hauge (27.06.2015 um 14:50 Uhr)

  6. #6
    Contao-Nutzer
    Registriert seit
    07.07.2016.
    Beiträge
    65

    Standard

    Da ich gerade ein ähnliches Problem gelöst habe, hier mal eine Beschreibung zumindest meines einfachen Lösungsansatzes.

    Das Template 'mod_iso_productlist.html5' wie folgt anpassen:

    PHP-Code:
    <div class="product_list">

    <?php $lastPid 0?>

    <?php foreach ($this->products as $product): ?>

    <div<?php echo $product['cssID']; ?> class="<?php echo $product['class']; ?>">

    <?php 
    if($lastPid != $product['product']->pid):
        echo(
    $product['product']->name); 
    endif; 
    $lastPid $product['product']->pid;
    ?>
    <?php 
    echo $product['html']; ?>
    </div>

    <?php endforeach; ?>
    </div>
    Danach wird ganz normal die Produktvariante generiert. Da dort der Produktname auch wieder erscheint, kann man ihn einfach im Template 'iso_list_variants.html5' löschen oder was auch immer damit machen. Zu beachten ist dabei sicherlich der Sortierungsaspekt. Werden also alle Produktvarianten nach Variantenattributen sortiert, können die Varianten zumindest mit diesem Ansatz auch nicht mehr gebündelt angezeigt werden. Aber das macht zumindest für mein konkretes Problem auch Sinn...
    Geändert von DanEi (22.03.2017 um 21:47 Uhr)

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
  •