Меняем генерацию изображений товаров на страницах категорий.

White_S

Постоялец
Регистрация
27 Май 2009
Сообщения
482
Реакции
102
Довольно много намучился с генерацией изображений на страницах категорий, и решил написать пост о том как это делается. Идея была взята здесь Для просмотра ссылки Войди или Зарегистрируйся там , правда речь идет о страницах товара, но как выяснил в процессе, там есть функция которая не только убирает белые поля, но и которая обрежет изображение в случае несоответствия пропорций. Для версии 1.5.6 файле не подошли, пришлось немного поправить. После того как залили файлы в catalog/controller/product/category.php делаем следующую замену:
Для версии двига 1.5.6 (изображение обрезается если пропорции не соответствуют функция cropsize)
заменяем:
Код:
if ($result['image']) {
                    $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                } else {
                    $image = false;
                }
на
Код:
if ($result['image']) {
                    $image = $this->model_tool_image->cropsize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                } else {
                    $image = false;
                }

Если хотите сделать изображение без белых полей (за максимум берется высота изображения) то используете функцию onesize, в том же файле делаете замену.
Код:
if ($result['image']) {
                    $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                } else {
                    $image = false;
на

Код:
if ($result['image']) {
                    $image = $this->model_tool_image->onesize($result['image'], $this->config->get('config_image_product_height'));
                } else {
                    $image = false;
а также
Код:
if ($category_info['image']) {
                $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
            } else {
                $this->data['thumb'] = '';
на

Код:
if ($category_info['image']) {
                $this->data['thumb'] = $this->model_tool_image->onesize($category_info['image'], $this->config->get('config_image_category_height'));
            } else {
                $this->data['thumb'] = '';
Если хотите чтобы изображение было создано на основе максимальной ширины изображения, то делаем так:
заменяем
Код:
if ($result['image']) {
                    $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                } else {
                    $image = false;
на

Код:
if ($result['image']) {
                    $image = $this->model_tool_image->onesize($result['image'], $this->config->get('config_image_product_width'));
                } else {
                    $image = false;
а также
Код:
if ($category_info['image']) {
                $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));
            } else {
                $this->data['thumb'] = '';
на

Код:
if ($category_info['image']) {
                $this->data['thumb'] = $this->model_tool_image->onesize($category_info['image'], $this->config->get('config_image_category_width'));
            } else {
                $this->data['thumb'] = '';
Если мне не изменяет память, то в версии 1.5.4.1 по аналогии, не помню точно в 1.5.6 работает это.
Так генерируются изображения стандартно
798b5a95a38225530862a1b61bd6afc7.png

так работает функция cropsize
acff36a68828daab618cb7fc69461403.png

так работает onesize с использованием в качестве максимального размера высоты картинки
619ba1eb90b2b2c351e6cbd1b517b8cb.png

а так по ширине
27a0b1f0af21b8b345df21f170083209.png

В принципе, если откроете файлы из приложения, понятно что там легко завернуть в Vqmod чтобы не делать замену файлов двига, но на это мне время тратить лень.
 

Вложения

  • Image mods_1.5.4.1.rar
    5,2 KB · Просмотры: 51
  • Image mods_1.5.6.rar
    3,6 KB · Просмотры: 96
То, что надо, с размещением изображения в opencart проблема.
 
Любопытно, а который из вариантов подходит под OcStore 1.5.5.2 ?
 
В OpenShop все тоже самое?
 
Не пойму, а где именно менять, они встречаются в 3-4 экземплярах =\
 
вопрос по теме отображения фото товара в Opencart, возможно сделать отображение полного размера изображения товара иконкой на открытой картинке, например как в ShopCMS см. скрин, спасибо

xCV9eXMyBfFdSj3APPsu-sDFRHdp9XVBt8P1kV6xP95_mFD6RN2ubiUGgb9dMrj4u41dB20XlNVR3uc1bO_Ttw%3D%3D
 
Назад
Сверху