[Ищу] Чтобы при наведении на товар мышкой в категории показывалась другая картинка товара

Тема в разделе "OpenCart", создана пользователем Gafe62, 13 янв 2014.

  1. Gafe62

    Gafe62

    Регистрация:
    11 окт 2013
    Сообщения:
    252
    Симпатии:
    30
    Добрый вечер!
    Видел такое решение уже у кого-то на сайте на Опене, но найти уже не могу. Как реализовать или подскажите, пожалуйста, модуль?

    П.С. Если кто-то не понял - http://meigeeteam.com/product/viking-magento-theme/livepreview/ вот так нужно.
     
  2. blackfm

    blackfm

    Регистрация:
    29 янв 2013
    Сообщения:
    181
    Симпатии:
    34
    поищи тему GAZAL, там есть така реализация, делаеться очень просто, я именно с этой темы себе скопировал решение
     
  3. Gafe62

    Gafe62

    Регистрация:
    11 окт 2013
    Сообщения:
    252
    Симпатии:
    30
    Из template/product/product.tpl?

    А что из этого кода является тем самым скриптом?
    category.tpl:
     
  4. blackfm

    blackfm

    Регистрация:
    29 янв 2013
    Сообщения:
    181
    Симпатии:
    34
    category.tpl
    HTML:
    <!-- image //
         =============-->
         <!--for swap image-->
         <?php if ($product['thumb_swap']) { ?>
          <div class="image">
              <a href="<?php echo $product['href']; ?>">
                 <img oversrc="<?php echo $product['thumb_swap']; ?>" src="<?php echo $product['thumb']; ?>" 
                 title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" style="border:none"/>
              </a>
          </div>
       
          <?php } else {?>
       
          <div class="image">
              <a href="<?php echo $product['href']; ?>">
                  <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" 
                  alt="<?php echo $product['name']; ?>" style="border:none"/>
              </a>
          </div>
       
         <?php } ?>
         <!--/ swap img-->
    
    в common.js добавить функцию для смены фотографий:
    Код:
    //simple swap
    //----------------------------------------------
    function SimpleSwap(el,which){
      el.src=el.getAttribute(which || "origsrc");
    }
    function SimpleSwapSetup(){
      var x = document.getElementsByTagName("img");
      for (var i=0;i<x.length;i++){
        var oversrc = x[i].getAttribute("oversrc");
        if (!oversrc) continue;
        x[i].oversrc_img = new Image();
        x[i].oversrc_img.src=oversrc;
        x[i].onmouseover = new Function("SimpleSwap(this,'oversrc');");
        x[i].onmouseout = new Function("SimpleSwap(this);");
        x[i].setAttribute("origsrc",x[i].src);
      }
    }
    var PreSimpleSwapOnload =(window.onload)? window.onload : function(){};
    window.onload = function(){PreSimpleSwapOnload(); SimpleSwapSetup();};
    

    в контроллере категорий category.php добавить после:
    Код:
    foreach ($results as $result) {
                    if ($result['image']) {
                        $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                    } else {
                        $image = false;
                    }
    следующий код:
    Код:
    //this for swap image
                   
                    $images = $this->model_catalog_product->getProductImages($result['product_id']);
    и после кода:
    PHP:
    $this->data['products'][] = array(
                        
    'product_id'  => $result['product_id'],
                        
    'thumb'       => $image,
                        
    'name'        => $result['name'],
                        
    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES'UTF-8')), 0100) . '..',
                        
    'price'       => $price,
                        
    'special'     => $special,
                        
    'tax'         => $tax,
                        
    'rating'      => $result['rating'],
                        
    'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                        
    'href'        => $this->url->link('product/product''path=' $this->request->get['path'] . '&product_id=' $result['product_id'] . $url),
    добавить код:
    PHP:
    // for swap image
                        
    'thumb_swap'  => $this->model_tool_image->resize($images$this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 
     
    Gafe62 нравится это.
  5. Gafe62

    Gafe62

    Регистрация:
    11 окт 2013
    Сообщения:
    252
    Симпатии:
    30
    Сейчас попробовал - не работает, вообще никакого эффекта
     
  6. blackfm

    blackfm

    Регистрация:
    29 янв 2013
    Сообщения:
    181
    Симпатии:
    34
    возможно, я что то проглядел, код не проверял на 100%, так как сейчас не помню, где это делал... но делал это 100% и решение было найдено в теме gazal. если есть базовые навыки php. то перенос кода будет легче простого. иначе - ищите готовое решение