[Помогите] Превью атрибутов/описания товара при наведении

Тема в разделе "OpenCart", создана пользователем CrazYViruS, 28 сен 2015.

  1. CrazYViruS

    CrazYViruS

    Регистрация:
    30 май 2013
    Сообщения:
    133
    Симпатии:
    79
    Всем доброго времени, подскажите пожалуйста как реализовать эффект превью товара при наведении например как тут:
    [​IMG]

    Возможно есть на это модуль какойто ? OC2
    Желательно чтобы можно было выбрать что показывать, описание или атрибуты
     
    odinochka нравится это.
  2. Flexx

    Flexx

    Регистрация:
    8 янв 2013
    Сообщения:
    122
    Симпатии:
    85
    по моему самый быстрый вариант сделать стилями. По умолчанию скрыть блок и при наведении его показывать.Это для описания.А если нужны атрибуты,то добавить в контроллер вывод атрибутов товара
    и не нужен никакой модуль )
     
    dem03x и CrazYViruS нравится это.
  3. CrazYViruS

    CrazYViruS

    Регистрация:
    30 май 2013
    Сообщения:
    133
    Симпатии:
    79
    Спасибо, а можно пример с атрибутами ?
     
  4. VaLeXaR

    VaLeXaR

    Регистрация:
    24 мар 2015
    Сообщения:
    61
    Симпатии:
    84
    В catalog\controller\product\category.php

    В это блок заменяете
    Код:
    $this->data['products'][] = array(
                        'product_id'  => $result['product_id'],
                        'thumb'       => $image,
                        'name'        => $result['name'],
                        'model'       => $result['model'],
                        'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
                        'price'       => $price,
                        'special'     => $special,
                        'tax'         => $tax,
                        'rating'      => $rating,
                        'stock'       => $stock,
                        'quantity'    => $result['quantity'],
                        '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)
                    );
    на этот
    Код:
    $this->data['products'][] = array(
                        'product_id'  => $result['product_id'],
                        'thumb'       => $image,
                        'name'        => $result['name'],
                        'model'       => $result['model'],
                        'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
                        'price'       => $price,
                        'special'     => $special,
                        'tax'         => $tax,
                        'rating'      => $rating,
                        'stock'       => $stock,
                        'quantity'    => $result['quantity'],
                        '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),
                        'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id'])
                    );
    А в шаблон в нужное место вставляете
    Код:
    <?php if ($product['attribute_groups']) { ?>
                        <div id="attribute">
                            <table class="attribute">
                                <?php foreach ($product['attribute_groups'] as $attribute_group) { ?>
                                <thead>
                                <tr>
                                    <td colspan="2"><?php echo $attribute_group['name']; ?></td>
                                </tr>
                                </thead>
                                <tbody>
                                <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
                                <tr>
                                    <td><?php echo $attribute['name']; ?></td>
                                    <td><?php echo $attribute['text']; ?></td>
                                </tr>
                                <?php } ?>
                                </tbody>
                                <?php } ?>
                            </table>
                        </div>
    <?php } ?>
    
    И оформляете как нужно.
    Типо так. Накидал на скорую руку. Проверьте.
     
    Последнее редактирование: 29 сен 2015
    dem03x и CrazYViruS нравится это.
  5. CrazYViruS

    CrazYViruS

    Регистрация:
    30 май 2013
    Сообщения:
    133
    Симпатии:
    79
    Все работает =) только для OC2 не $this->data а $data, но вот новая напасть со стилями =( выделенный товар с развернутыми атрибутами смещает товары расположенные ниже по сетке, никак не могу это адекватно исправить без изменения типа расположения самих товаров на absolute.
    Надо чтобы развернутые атрибуты перекрывали нижестоящую позицию товара а не сдвигала вниз.
    http://cnske1.info/tsh1/index.php?route=product/category&path=101_90_70
     
    odinochka нравится это.
  6. VaLeXaR

    VaLeXaR

    Регистрация:
    24 мар 2015
    Сообщения:
    61
    Симпатии:
    84
    Добавьте такие изменения:
    Код:
    .product-grid-item {
      height: 295px;
    }
     
    odinochka, CrazYViruS и dem03x нравится это.