Jump to content
Sign in to follow this  
alinalessioYandex

[Решено] Как в категории выводить дополнительные изображения?

Recommended Posts

Подскажите пожалуйста как на Opencart 2.x можно вывести дополнительную картинку?

Сейчас в категории каждый товар с одной картинкой, а как сделать, чтобы было две?

 

Версия ocStore 2.1.0.2.1

 

Нашел в сети такое:

 

[РЕШЕНО]

 

/catalog/controller/product/category.php

 

после строк

$results = $this->model_catalog_product->getProducts($filter_data);
foreach ($results as $result) {

вставляем следующее

$results_img = $this->model_catalog_product->getProductImages($result['product_id']);
$dop_img = array();
foreach ($results_img as $result_img) {
	if ($result_img['image']) {
		$image_dop = $this->model_tool_image->resize($result_img['image'], 50, 50);
	} else {
		$image_dop = false;
	}
	$dop_img[] = $image_dop;
}

В этом же файле, после:

$data['products'][] = array(
'product_id'  => $result['product_id'],

Вставляем

'dop_img' => $dop_img,

/catalog/view/theme/default/template/product/category.tpl

 

Находим

<?php foreach ($products as $product) { ?>

И под этой строчкой, где надо вставляем

<div class="dop_img">
	<?php foreach ($product['dop_img'] as $img) { ?>
		<img src="<?php echo $img;?>">
	<?php } ?>
</div>

Когда все это проделываю, то ошибок никаких не возникает. Исходный код показывает пустой див, где должен быть <img ... />

Посмотрите пожалуйста, в чем тут ошибка, почему не работает?

 

==========================================================

Вот я тупень. ))) Все оказывается работает. Выводился пустой тег, потому что дополнительного изображения для товаров у меня не было задано. Добавил дополнительное изображение и оно стало показываться в категориях.

Edited by alinalessioYandex
  • +1 1

Share this post


Link to post
Share on other sites

У меня наоборот задача убрать прогрузку дополнительных изображений товаров в категориях и подкатегориях.

Только у меня код совсем другой. шаблон модерн:

 

$results = $this->model_catalog_product->getProducts($filter_data);

            foreach ($results as $result) {
                if ($result['image']) {
                    $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height'));
                } else {
                    $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height'));
                }

                if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
                    $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                } else {
                    $price = false;
                }

                if ((float)$result['special']) {
                    $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                } else {
                    $special = false;
                }

                if ($this->config->get('config_tax')) {
                    $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']);
                } else {
                    $tax = false;
                }

                if ($this->config->get('config_review_status')) {
                    $rating = (int)$result['rating'];
                } else {
                    $rating = false;
                }

                $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')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
                    'price'       => $price,
                    'special'     => $special,
                    'tax'         => $tax,
                    'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
                    'rating'      => $result['rating'],
                    'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
                );
            }

Share this post


Link to post
Share on other sites

Может кому-то это будет полезно - есть готовое платное решение для 2.3 и 3.0

Выводит доп. изображения на всех страницах сайта и в модулях при наведении курсора мыши.

Работает на телефонах и планшетах.

Пример:

additional-hover-image-3product.gif.b75e309ede7092032bf139db7f8dd77d.gif

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.