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: Rollover Bild in product_listing_v1.html

    Parker

    • Mitglied
    • Beiträge: 135
    • Geschlecht:
    Rollover Bild in product_listing_v1.html
    am: 18. März 2016, 14:07:59
    Hi,

    ich möchte gerne in der product_listing_v1.html einen Rollover-Effekt bei den Produktbildern erstellen. Hierzu muss ich aber irgendwie an das Thumbnail des zweiten Bildes des Produktes kommen, insofern dies eines hat.

    Das Produktbild selbst wird in der product_listing_v1.html ja über
    Code: PHP  [Auswählen]
    {$module_data.PRODUCTS_IMAGE}
    geholt. Kann man hier auch an das erste Thumb des nächsten Produktbildes kommen? In der product_info_v1.html werden die zustätzlich Bilder als Thumbs ja so aufgerufen:
    Code: PHP  [Auswählen]
    {foreach name=aussen item=more_images_data from=$more_images}
      <a class="thickbox" rel="alternate" title="{$PRODUCTS_NAME}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}">
        <img class="product_main_image img-responsive" src="{$more_images_data.PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME}" />
      </a>
    {/foreach}

    Das CSS hierfür bekomme ich hin.. Wie komme ich nur das das eine jeweilige Bild? Und geht das überhaupt?  :mhhh:

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

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #1 am: 18. März 2016, 16:52:34
    Süß, dass die Lösung bereits in deiner Frage steht. :-)

    Code: XML  [Auswählen]
    {$PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}
    {$more_images_data.|replace:"info_images":"thumbnail_images"}

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #2 am: 20. März 2016, 15:59:52
    Nicht wirklich, denn $more_images_data ist nur in der foreach-Schleife vorhanden.
    Gehen tut es aber so {$PRODUCTS_IMAGE_1} für das erste weitere Bild und entsprechend {~_2} für das zweite usw..
    (siehe /includes/modules/product_info.php)
    Code: PHP  [Auswählen]
    $info_smarty->assign('PRODUCTS_IMAGE_'.$img['image_nr'], $mo_img);

    Gruß,
    noRiddle

    Parker

    • Mitglied
    • Beiträge: 135
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #3 am: 21. März 2016, 15:35:59
    Danke Leute, aber ich bekomme das so leider nicht hin. Ich habe wohl den Abschnitt zu
    Code: PHP  [Auswählen]
    // more images
      $mo_images = xtc_get_products_mo_images($product->data['products_id']);...
    in der product_info.php gefunden.
    Wenn ich das nun richtig verstehe, muss dieser Abschnitt nun in die /includes/modules/product_listing.php, richtig?
    Und dann um den Teil von noRiddle erweitert werden.
    Wenn ich das nun dort hinein kopiere, funktioniert gar nichts mehr. Leider habe ich keine Ahnung, wie welche Funktionen und Vars dort wie zusammen hängen. Könnt Ihr mir da bitte noch mal weiter helfen?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #4 am: 21. März 2016, 15:45:21
    Mein Einwurf bezog sich lediglich auf die product_info, nicht auf das product_listing.
    Da deine Frage aber auf das Listing bezogen war bitte ich um Entschuldigung weil meine Aussage (aber auch die von |Alex|) nur verwirrt.
    Eine einfache Methode an das erste Zusatzbild zu kommen wäre dies:
    Code: XML  [Auswählen]
    {$module_data.PRODUCTS_IMAGE|replace:'_0':'_1'}

    Gruß,
    noRiddle

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #5 am: 21. März 2016, 15:49:36
    Aber nur, wenn es die gleiche Endung hat, oder nicht?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #6 am: 21. März 2016, 16:13:33
    Ich gehe in meinen Antworten immer von der Deafult-Implementation des modified-Systems aus.
    Da werden Bild-Dateinamen immer so gebildet:
    BILDNAME.FILETYPE_PRODUCTS_ID_X
    X steht für 0 bis X, wobei 0 das erste, 1 das zweite Bild ist usw..

    Wenn du den Filetype meinst, also .jpg oder .png, dann hast du Recht.
    Wenn jemand also für Bild 1 und 2 verschiedene Filetypes hat, dann geht es so nicht, es sei denn es ist überall gleich. Dann könnte man es mittels |regex_replace machen.

    Wenn man nicht mit solchen "Tricks" im Template arbeiten will/kann, muß man das Array $module_content in der /includes/modules/product_listing.php erweitern indem man aus der DB-Tabelle products_images das zweite Bild ausliest (z.B. mittels der Funktion xtc_get_products_mo_images(), wie es auch in der product_info.php geschieht).

    Gruß,
    noRiddle

    Parker

    • Mitglied
    • Beiträge: 135
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #7 am: 21. März 2016, 17:23:29
    Ist doch kein Problem, noRiddle. Ich glaube, Du hast Recht, Bonsai.
    Allerdings geht es bei mir erst gar nicht, zumal die Bildernamen wohl nicht so sind, wie Ihr denkt.
    Hauptbild Thumb: 100_0.jpg
    2 Thumb: 8_1.jpg
    3 Thumb: 8_2.jpg
    4 Thumb: tollerartikelname..jpg
    Da komme ich an noRiddles Lösung nicht vorbei. Im PHP-Errorlog finde ich aber die Meldung, dass xtc_get_products_mo_images() unbekannt sei. Weiß jemand, was ich "include"n muss, damit das geht?

    Und was muss ich dann hier dran ändern?
    Code: PHP  [Auswählen]
    `  // more images
      $mo_images = xtc_get_products_mo_images($product->data['products_id']);
      if ($mo_images != false) {
        $more_images_data = array();
        foreach ($mo_images as $img) {
          $mo_img = $product->productImage($img['image_name'], 'info');
          $mo_img_nr = $img['image_nr'];
          if ($mo_img != '') {
            $more_images_data[$mo_img_nr] = array ('PRODUCTS_IMAGE' => $mo_img);
          }
        }
        $info_smarty->assign('more_images', $more_images_data);
      }

    Ich nehme mal an aus "$info_smarty" wird "$module_smarty" aber sonst steh ich schon wieder wie Ochs vorm Karren. (Ich hoffe, ich werde nicht lästig  :daumen-dreh: )

    Parker

    • Mitglied
    • Beiträge: 135
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #8 am: 21. März 2016, 17:53:55
    Oky, zu
    Zitat
    Im PHP-Errorlog finde ich aber die Meldung, dass xtc_get_products_mo_images() unbekannt sei. Weiß jemand, was ich "include"n muss, damit das geht?
    hab ich es doch noch gefunden (nach fünf mal blind ins leere gucken). FYI:
    Code: PHP  [Auswählen]
    require_once (DIR_FS_INC.'xtc_get_products_mo_images.inc.php');

    Wenn ich nun aber die gleichen Quelltext habe um das gleiche Array aufzubauen, wie in der product_info.php, komme ich hier nicht weiter:
    Code: PHP  [Auswählen]
    $mo_images = xtc_get_products_mo_images($product->data['products_id']);
    Das "$product->data['products_id']" tut's nicht und ich weiß nicht, wie ich in der product_listing.php an die products_id komme. Ich glaube, mir fehlt zu viel Grundwissen.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #9 am: 21. März 2016, 18:07:33
    Wieso heißen denn deine Bilder so verschieden ?
    Die Ziffer vor dem Unterstrich sollte die products_id sein, bei allen Bildern die zu dem Artikel gehören.

    Wenn du's über eine Änderung in der /includes/modules/product_listing.php machen möchtest:
    Unter dem
    Code: PHP  [Auswählen]
    require_once (DIR_FS_INC.'xtc_get_vpe_name.inc.php');
    das einfügen
    Code: PHP  [Auswählen]
    require_once (DIR_FS_INC.'xtc_get_products_mo_images.inc.php');

    Suche
    Code: PHP  [Auswählen]
    while ($listing = xtc_db_fetch_array($listing_query, true)) {
        $rows ++;
        $module_content[] =  $product->buildDataArray($listing);
    }
    und mache daraus
    Code: PHP  [Auswählen]
    while ($listing = xtc_db_fetch_array($listing_query, true)) {
        $rows ++;
        //$module_content[] =  $product->buildDataArray($listing);
        //BOC get also additional images, noRiddle
        $prod_data = $product->buildDataArray($listing);
        $more_imgs = xtc_get_products_mo_images($listing['products_id']);
        if ($more_imgs != false) {
            foreach ($more_imgs as $img) {
                $more_img = $product->productImage($img['image_name'], 'thumbnail');
                $prod_data += array('PRODUCTS_IMAGE_'.$img['image_nr'] => $more_img);
            }
        }
        $module_content[] =  $prod_data;
        //EOC get also additional images, noRiddle
    }

    Im Template kannst du dann jedes weitere Bild so aufrufen:
    Code: XML  [Auswählen]
    <img src="{$module_data.PRODUCTS_IMAGE_1}" alt=""WAS_WEISS_ICH />
    Das X steht für die Bildnummer, in deinem Falle also die 1 für das erste zusätzliche Bild.

    Der Rest für den Rollover-Effekt ist CSS, den man mittels transition und Änderung der opacity sogar animiert aus-und ein-fade-nd gestalten könnte.

    Gruß,
    noRiddle

    *NACHTRAG*
    Ach, und immer so abfragen vor Einbindung im Template, für den Fall, daß kein weiteres Bild vorhanden ist:
    Code: XML  [Auswählen]
    {if $module_data.PRODUCTS_IMAGE_1 != ''}<img src="{$module_data.PRODUCTS_IMAGE_1}" alt=""WAS_WEISS_ICH />{/if}

    Parker

    • Mitglied
    • Beiträge: 135
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #10 am: 21. März 2016, 18:17:17
    Ooookay... wäre ich in Monaten nicht drauf gekommen. Egal. Es geht (modified 2.0 btw)! Danke Leute und vor allem noRiddle. Text wurde inkl. noRiddle-Gütesiegel übernommen. Die {if} hatte ich schon und CSS liegt mir deutlich mehr als PHP.
     :) Danke!

    PS: Wie setze ich hier im Forum einen Thread auf "gelöst"?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #11 am: 21. März 2016, 18:20:11
    Ganz unten ist ein Knopf

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Re: Rollover Bild in product_listing_v1.html
    Antwort #12 am: 21. März 2016, 18:21:18
    modified 2.0, soso...   :-?

    Den Kommentar im Code kannst du auch mit deinem Kürzel versehen. ;-)

    Gruß,
    noRiddle
    3 Antworten
    3304 Aufrufe
    30. August 2012, 02:24:14 von noRiddle (revilonetz)
    4 Antworten
    4985 Aufrufe
    01. August 2011, 08:30:53 von franky_n
    2 Antworten
    566 Aufrufe
    04. August 2024, 20:09:33 von scaleshop.at
    1 Antworten
    4168 Aufrufe
    08. Juni 2009, 16:18:27 von Peter Will
               
    anything