Стандартно в 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 (он автоматом вписывает изображение в размер окна без полос прокруток).