Produkt Details: Thumbnail Bilder neben dem Produktbild

  • Hallo Zusammen,


    hier mal eine kurze Zusammenstellung für diejenigen die neben dem normalen Produktbild in den Produktdetails für die weiteren Produktbilder Thumbnails daneben haben möchte.


    In core/modules/product_info.php in ca. Z. 92 nach dem:

    PHP
    1. $info_theme->assign('PRODUCTS_IMAGE', $img);
    2. if (!strpos($img, STANDARD_IMAGE)) $info_theme->assign('PRODUCTS_IMAGE_ZOOM', $product->getZoomButton());

    das einfügen:


    In der core/classes/class.product.php in ca. in Z. 1144 nach:

    PHP
    1. function getZoomButton($pID = - 1)
    2. {
    3. global $popup_box;
    4. if ($pID == - 1) $pID = $this->data['products_id'];
    5. return '<a href="' . $popup_box->get_popup_link('images', 'pID=' . $pID) . '" title="' . $this->data['products_name'] . '">' . hhg_image(DIR_WS_CATALOG . DIR_WS_THEME_FOLDER . CURRENT_THEME . '/buttons/' . $_SESSION['language'] . '/button_zoom.gif', "Zoom") . '</a>';
    6. }

    das einfügen:

    PHP
    1. function getZoomLink($page = 2)
    2. {
    3. global $popup_box;
    4. $pID = $this->data['products_id'];
    5. return '<a href="' . $popup_box->get_popup_link('images', 'pID=' . $pID . '&amp;page=' . $page) . '" title="' . $this->data['products_name'] . '">';
    6. }


    In der store_files/1/themes/hhg_ms_r2/modules/product_template/product_info_v1.html in ca. Z. 14 nach dem:

    PHP
    1. {$PRODUCTS_IMAGE_ZOOM}
    2. {/if}
    3. {if $product->data.products_fsk18 && $SHOW_FSK18_IMAGE}<img src="{$thm_path}img/fsk18.png" alt="" />{/if}
    4. </div>

    das einfügen:

    PHP
    1. <div class="more_images">
    2. {foreach name=thumbnails key=thumbnails_key item=more_images from=$PRODUCT_THUMBNAILS}
    3. {$PRODUCT_THUMBNAIL_LINKS[$thumbnails_key]}<img src="{$more_images}" alt="{$product->data.products_name}" /></a>
    4. {/foreach}
    5. </div>


    Und in der store_files/1/themes/hhg_ms_r2/stylesheet.css nach ca. Z. 480:

    PHP
    1. #product_info .image {
    2. width: 13.5em;
    3. }

    das einfügen:

    PHP
    1. #product_info .more_images {
    2. padding-top: 0.9em;
    3. padding-left: 24em;
    4. }
    5. #product_info .more_images img {
    6. width: 8em;
    7. }


    (Diese beiden Einträge könnten sicherlich noch technisch wie auch optisch besser gestyled werden. Wer sich berufen fühlt kann dann ja das hier erweitern! ;) )


    Danach sollten anklickbare Thumbnails neben dem Produktbild erscheinen die auch direkt auf das richtige Bild im Popup verlinken.
    Viel Erfolg! :)


    Viele Grüße


    Franky

  • Mit etwas Mühe geht das bestimmt auch vollständig im Template :whistling:

  • Hallo Hasan,


    wenn Du nicht möchtest das andere so was posten dann sag es einfach! :S
    Ich kann in jedem Fall mit so einer Aussage jetzt so gar nichts anfangen... wollte eigentlich nur mal eine Erweiterung posten... naja!


    Viele Grüße


    Franky

  • ich habe nichts gegen Erweiterungen, natürlich geht es wie oben beschrieben. Es sollte aber mit der heutigen Struktur auch möglich sein, ohne die Sourcen anzufassen. Z.B. sind in

    Code
    1. {$product->images}


    alle Bilder gegeben, diese kann man auch dort iterieren, den Pfad zum Bild kann man über

    Code
    1. {$product->productImage($name, $type, $owner = STORE_ID)}


    auch im Template abrufen. Ich weiß umgewöhnen ist schwer, aber langsam solltet Ihr Euch das angewöhnen. Das hat auch nichts mit Dir persönlich zu tun. Es betrifft fast alle Dienstleister aus der osC/xt:C/H.H.G. Riege, jede Zeile Codeänderung führt zu einem nicht updatebaren System.


    Mit der nächsten Version wird alles OOP sein und Updates mit Klicks durchführbar, dies erfordert aber auch, dass keine Codes mehr geändert werden.

  • Hallo Supporter,


    sieht dann so aus wie im Anhang zu sehen. Wäre dann noch per stylesheet den Vorstellungen anzupassen aber das sollte ja kein Problem sein.
    Größe der Thumbnail Bilder habe ich über stylesheet width begrenzt und kann man natürlich noch kleiner stellen...


    PS @Hasan: Du weißt ganz genau das ich auch OOP programmiere. Habe es nur jetzt nicht Smarty lastig programmiert. Und ganz ehrlich: In dem Fall kann man es sicher über Smarty lösen, aber fang mal mit größeren Umbauten an, dann kommt man schnell an eine Grenze wo manche Variablen etc. einfach noch gar nicht zur Verfügung stehen (T-Shirt Designer, m² Eingabe, Produktfilter nur mal als Beispiel). Und leider ist es eben oft so das der Kunde eben genau das haben will was nicht Standard im Shop ist. Und dann darauf zu warten das eine neue Version vom HHG kommt wäre meinen Kunden zu lange, denn die Fixes sind das eine, die neue Version (wo dann evtl. eine neue Funktion übernommen wird oder auch nicht) was anderes. Ich werde sicherlich niemals drum herum kommen die Versionen per WinMerge vergleichen zu müssen...


    Viele Grüße


    Franky

  • PS @Hasan: Du weißt ganz genau das ich auch OOP programmiere. Habe es nur jetzt nicht Smarty lastig programmiert. Und ganz ehrlich: In dem Fall kann man es sicher über Smarty lösen, aber fang mal mit größeren Umbauten an, dann kommt man schnell an eine Grenze wo manche Variablen etc. einfach noch gar nicht zur Verfügung stehen (T-Shirt Designer, m² Eingabe, Produktfilter nur mal als Beispiel). Und leider ist es eben oft so das der Kunde eben genau das haben will was nicht Standard im Shop ist. Und dann darauf zu warten das eine neue Version vom HHG kommt wäre meinen Kunden zu lange, denn die Fixes sind das eine, die neue Version (wo dann evtl. eine neue Funktion übernommen wird oder auch nicht) was anderes. Ich werde sicherlich niemals drum herum kommen die Versionen per WinMerge vergleichen zu müssen...


    Wenn wir Module verbauen, ists in den meisten Fällen lediglich eine Zeile, die zu ändern ist und das der Aufruf der Klasse. Bei Texteingabe wäre es also die Warenkorb Klasse. ;)

  • Die oben erwähnte Lösung als Code:

    Code
    1. {if count($product->images) > 1}
    2. {foreach from=$product->images item=image}
    3. <img src="{$product->productImage($image, 'thumbnail', $product->data.products_owner)}" alt="{$product->data.products_name}" />
    4. {/foreach}
    5. {/if}
  • Hallo,


    Code
    1. {$product->productImage($image, 'thumbnail', $product->data.products_owner)}


    thumnail, info und popup funktionieren gut, was ich nicht hinbekomme ist das originalbild hier zu zeigen.



    Quote
    Code
    1. {$product->productImage($image, 'original', $product->data.products_owner)}

    geht leider nicht