Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


 Поделиться

Рекомендованные сообщения

Подскажите пожалуйста как на 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 ... />

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

 

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

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

Изменено пользователем alinalessioYandex
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...

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

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

 

$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)
                );
            }

Ссылка на комментарий
Поделиться на других сайтах


  • 11 месяцев спустя...

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

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

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

Пример:

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

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.