Вывод оригинального изображения товара во всплывающем окне CMS Opencart 2 и 3

28-05-2021

Стандартно в CMS OpenCart при просмотре фотографии товара во всплывающем окне (popap), фотографии подгоняются под определенный размер, заданный в настройках вашей темы. Обычно это квадрат. Остальная часть изображения заполняется белыми полями, что не всегда красиво. А если оригинальное фото меньше заданного размера в настройках темы, то качество заметно становится хуже. Как вариант сделать это немного по другому - вывести оригинальные фото.

Как всегда при любых изменениях не забываем делать резервный оригинальный файл.

Мы будем работать только с файлом product.php - его расположение: catalog / controller / product

Операция 1.

255 строка 

if ($product_info['image']) {
    $data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height'));

Меняем на:

if ($product_info['image']) {
    $data['popup'] = "/image/".$product_info['image'];

Операция 2.

273 строка 

$data['images'][] = array(
    'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height')),

Меняем на:

'popup' => "/image/".$result['image'],

Сбрасываем кеш и проверяем наши изображения в товаре. Они должны выводиться в оригинальных размерах и пропорциях.

Если у вас Opencart версии 2.3.

1. Ищем данный файл product.php по адресу: catalog / controller / product.php

2. Операция 1 - ищем данный код:

$this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));

и меняем его на:

$this->data['popup'] = "/image/".$product_info['image'];

3. Операция 2 - код такой же как и для OpenCart 3.

На стандартном colorbox недостаток метода в том, что если изображение больше за размер окна браузера оно выходит за его рамки и появляются полоски прокрутки. Так что лучше использовать fancybox.

Небольшое дополнение. Если для вывода изображений используется модуль colorbox - то он может показывать полосу прокрутки, если фото товара больше окна. Обычно разработчики рекомендуют использовать другой модуль - fancybox (он автоматом вписывает изображение в размер окна без полос прокруток).

Похожие статьи