Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Artikelattribute als Bilder in product_listing

    0815Shop

    • Neu im Forum
    • Beiträge: 21
    Hallo liebe modified eCommerce Shopsoftware Community ;)

    ich suche seit einer Weile alle möglichen Foren nach einer (möglichst kostenfreien) Variante ab um in meiner product_listing auf die Artikeloptionen zugreifen zu können.

    Ich möchte in der Produktauflistung für die verschiedenen Varianten der Produkte kleine Bildchen einfügen, so dass man schon auf der Listenseite einsehen kann, in welchen Varianten das Produkt verfügbar ist. Leider ist es mir bislang selbst nicht gelungen den zugriff auf die products_options in der product_listing_v1.html hinzu bekommen.
    Weiss jemand ob eine entsprechende Erweiterung irgendwo verfügbar ist, oder kann mir die entsprechenden Codeschnippsel geben ?
    Der Aufwand dafür dürfte eigentlich nicht sonderlich groß sein, denn in der product_info ist der Zugang zu den relevanten Daten ja schon gelegt.

    Vielen Dank für die Hilfe schonmal im voraus,

    Gruß



    Linkback: https://www.modified-shop.org/forum/index.php?topic=6144.0

    0815Shop

    • Neu im Forum
    • Beiträge: 21
    Artikelattribute als Bilder in product_listing
    Antwort #1 am: 21. Juni 2010, 10:14:48
    problem selbst gelöst ;)

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Artikelattribute als Bilder in product_listing
    Antwort #2 am: 21. Juni 2010, 10:24:28
    tja... ganz reizend wäre es ja, wenn die Community von deinem Wissen profitieren könnte..  ;)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Artikelattribute als Bilder in product_listing
    Antwort #3 am: 21. Juni 2010, 11:38:41
    Forensuche nach "Attribut Bild" hätte die Lösung gebracht, daher hatte ich hier auch nicht geantwortet, da hätte man wirklich drauf kommen können. :-PP

    Hier die Lösung: Zusaztfunktion für Attributmerkmale?

    Grüße

    Torsten

    0815Shop

    • Neu im Forum
    • Beiträge: 21
    Artikelattribute als Bilder in product_listing
    Antwort #4 am: 21. Juni 2010, 16:20:27
    umm leider ist das was du geschrieben hast nicht das was ich gesucht habe ;) es gibt 200 Lösungen zum Thema wie man die Attribute in der product_info sinnvoll darstellen kann, ja

    aber ich will sie ja nich in der info sondern brauch sie in der listing, und da gibt es, zumindest nach meinem wissensstand, keinen direkten zugang, und den habe ich mir halt nun legen wollen.
    code folgt, sobald ichs sauber gelöst hab, momentan steh ich noch bei der "quick'n'dirty" Lösung ;)

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Artikelattribute als Bilder in product_listing
    Antwort #5 am: 21. Juni 2010, 16:53:22
    Alles klar... lass dir Zeit... gut Ding will Weile haben. ;-)

    Aber denke bitte noch an uns. :B

    Grüße

    Torsten

    0815Shop

    • Neu im Forum
    • Beiträge: 21
    Artikelattribute als Bilder in product_listing
    Antwort #6 am: 22. Juni 2010, 07:56:08
    Ok, ist nun für meine Zwecke soweit fertig und funktional.

    Leider brauche ich nur die options_name variable und nicht die einzelnen options_values so dass dieser Zusatz zwar bewirkt, dass man in der product_listing_v1.html abgreifen kann welche Optionen verfügbar sind (bsp: dieses T-Shirt gibt es in verschiedenen Farben und Größen). Für meine Zwecke ist es jedoch uninteressant zu wissen, z.b. in welcher Farbe es dann wirklich der Fall ist, sondern lediglich, dass es unterschiedliche Farben gibt. Vielleicht kann trotzdem jemand was damit anfangen.

    Änderungen in product_listing.php (/includes/modules/product_listing.php)
    Finde: (Standardmäßig Zeile 25)

    Code: PHP  [Auswählen]
    $module_content = array ();

    Füge dahinter ein:

    Code: PHP  [Auswählen]
    // Create list of all available options
    $total_attributes_query = xtc_db_query("select products_options_id, products_options_name from
                                                                                      "
    .TABLE_PRODUCTS_OPTIONS."
                                                                                      "
    );
    $total_attributes = xtc_db_fetch_array($total_attributes_query);

            for ( $x = 0; $x <count ( $total_attributes ); $x++ )
                    {
                      $total_options[] = array ( 'id' => $total_attributes['products_options_id'],
                                                                     'name' => $total_attributes['products_options_name']);
                    }
            sort($total_options);
    $module_smarty->assign('total_options', $total_options);

    // Get attributes of current product
            $products_attributes_query = xtc_db_query("select products_id, options_id, options_values_id from
                                                                                      "
    .TABLE_PRODUCTS_ATTRIBUTES."
                                                                                      "
    );
            while ($products_attributes = xtc_db_fetch_array($products_attributes_query))
                            {
                    $products_eff_attributes[] = array ( 'p_id' => $products_attributes['products_id'],
                                                                                                     'p_options_id' => $products_attributes['options_id']);
                            }
    $module_smarty->assign('products_eff_attributes', $products_eff_attributes);

    Finde: (Standardmäßig Zeile 65, nach dem vorigen einfügen Zeile 91)

    Code: PHP  [Auswählen]
            while ($listing = xtc_db_fetch_array($listing_query, true)) {
                    $rows ++;
                    $module_content[] =  $product->buildDataArray($listing);
            }

    Ersetze mit:

    Code: PHP  [Auswählen]
            while ($listing = xtc_db_fetch_array($listing_query, true)) {
                    $rows ++;
                    $module_content[] =  $product->buildDataArray($listing);
                    $prod_id[] = $module_content[$rows-1]['PRODUCTS_ID'];
            }

    // Compare attributes of current product with all available attributes
            for($i = 0; $i <count($prod_id); $i++)
            {
                    for ($j=0; $j <count($products_eff_attributes); $j++)
                            {
                                            if ($prod_id[$i] == $products_eff_attributes[$j]['p_id'])
                                                    {
                                                            $products_eff_options[$i][] = array ('id' => $products_eff_attributes[$j]['p_options_id']);
                                                    }
                            }
            }
    // Build data array of current attributes with names and values
            for ($i = 0; $i <count ($products_eff_options); $i++)
                            {
                                    for ($j = 0; $j <count ($total_options); $j++)
                                            {
                                                    for ($k = 0; $k <count ($total_options); $k++)
                                                            {
                                                                    if ($products_eff_options[$i][$j]['id'] == $total_options[$k]['id'])
                                                                            {
                                                                    $products_eff_options[$i][$j]['name'] = $total_options[$k]['name'];
                                                                            }
                                                            }
                                            }
                            }
            // Add products attributes to module_content
     $module_smarty->assign('products_eff_options',$products_eff_options);
            for ($j = 0; $j <count($module_content); $j++)
                    {
                    for ($i = 0; $i <count($products_eff_options[$j]); $i++)
                            {
                            $module_content[$j]['PRODUCTS_ATTRIBUTES'][$i] = array ('name' => $products_eff_options[$j][$i]['name']);
                            }
                    }

    So, damit kann in der product_listing_v1.html (/templates/dein_template/module/product_listing/product_listing_v1.html)
    auf die Optionen zugegriffen werden mit folgender Anweisung:

    Code: PHP  [Auswählen]
     {foreach name=aussen item=attributes from=$module_data.PRODUCTS_ATTRIBUTES}
            {$attributes.name}
            {/foreach}

    wo Ihr das einfügt, bleibt euch überlassen, solang es in der Hauptschleife steht ;)

    Es ist mehr oder weniger mein erstes PHP-Experiment, von daher gebt bitte bescheid ob das bei euch auch so funktioniert, ich hab's mal eben auf 'nem "nackten" Shop laufen lassen und da hat es getan.
    Vielleicht kann jemand sich noch die mühe machen und die values mit einpflegen ;)

    Gruß

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.204
    • Geschlecht:
    Artikelattribute als Bilder in product_listing
    Antwort #7 am: 22. Juni 2010, 08:17:21
    Cool, danke für's Teilen!

    Grüße

    Torsten

    jolie001

    • Neu im Forum
    • Beiträge: 4
    Artikelattribute als Bilder in product_listing
    Antwort #8 am: 06. Juli 2010, 17:24:56
    [...]

    Code: PHP  [Auswählen]
     {foreach name=aussen item=attributes from=$module_data.PRODUCTS_ATTRIBUTES}
            {$attributes.name}
            {/foreach}
    wo Ihr das einfügt, bleibt euch überlassen, solang es in der Hauptschleife steht ;)
    [...]

    könnte man erfahren, wo genau diese Anweisung stehen sollte, ich habe dies direkt nach der neu eingefügten while-Schleife platziert.

    Fehlermeldung:
    Code: PHP  [Auswählen]
    syntax error, unexpected T_STRING.

    Danke

    0815Shop

    • Neu im Forum
    • Beiträge: 21
    Artikelattribute als Bilder in product_listing
    Antwort #9 am: 07. Juli 2010, 05:52:06
    siehe PM ;) wobei jetzt wo ich deinen Text lese - Welche While Schleife ? ^^

    jolie001

    • Neu im Forum
    • Beiträge: 4
    Artikelattribute als Bilder in product_listing
    Antwort #10 am: 10. Juli 2010, 06:11:00
    Sorry, das war mein Fehler. Ich habe die Schleife

    Code: PHP  [Auswählen]
    {foreach name=aussen item=attributes from=$module_data.PRODUCTS_ATTRIBUTES}
           {$attributes.name}
           {/foreach}
     
    in product_listing.php anstatt product_listing_v1.htm einzufügen. Alles OK

    0815Shop

    • Neu im Forum
    • Beiträge: 21
    Artikelattribute als Bilder in product_listing
    Antwort #11 am: 14. Juli 2010, 06:37:48
    na dann :)

    Jürgen

    • Viel Schreiber
    • Beiträge: 891
    • Geschlecht:
    Re: Artikelattribute als Bilder in product_listing
    Antwort #12 am: 23. Mai 2012, 11:04:50
    Hallo,

    hat das mal jemand auch für die attributes_options umgesetzt????

    Also für die hinterlegten Optionen der Attribute und nicht nur für den Namen des Attributs...

    Gruss Jürgen
    5 Antworten
    4628 Aufrufe
    17. April 2011, 10:52:05 von web28
    3 Antworten
    3264 Aufrufe
    15. Dezember 2010, 18:21:27 von h-h-h
    3 Antworten
    2160 Aufrufe
    17. Dezember 2013, 14:22:43 von alufax
    2 Antworten
    1504 Aufrufe
    23. Mai 2016, 15:13:38 von sigowil
               
    anything