Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Проблема с отображением миниатюр


gracef

Recommended Posts

Здравствуйте. Помогите разобраться, пожалуйста.

1. Почему-то миниатюры не оптимизируются под размер окна превью карточки, то есть миниатюра большая и не видно товара. https://gracef.ru/category/nozhnicy/nozhnicy-karmet-g-mogilev/
Как можно поправить это?

2. Пропали миниатюры фото со слайдера в карточке товара https://gracef.ru/category/trikotazhnye-tkani/velsot  http://prntscr.com/rthwh9

 

Надіслати
Поділитися на інших сайтах


Ищи в контроллере product/category

Ниже привожу свой(несколько измененный код - для отображения в табах или списком)

if($result['image']&& file_exists(DIR_IMAGE.'catalog/'.$result['image']))
           {
             $image=$this->model_tool_image->resize('catalog/'.$result['image'], $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_height'));
             $thumb=$this->model_tool_image->resize('catalog/'.$result['image'], $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_height'));
           }
            else
           {
             $image=$this->model_tool_image->resize('placeholder.png', $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_height'));
             $thumb=$this->model_tool_image->resize('placeholder.png', $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_height'));
           }

Соответственно в таблице БД setting должны быть установлены требуемые параметры для ресайза

Надіслати
Поділитися на інших сайтах

9 часов назад, esculapra сказал:

Ищи в контроллере product/category

Ниже привожу свой(несколько измененный код - для отображения в табах или списком)

if($result['image']&& file_exists(DIR_IMAGE.'catalog/'.$result['image']))
           {
             $image=$this->model_tool_image->resize('catalog/'.$result['image'], $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_height'));
             $thumb=$this->model_tool_image->resize('catalog/'.$result['image'], $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_height'));
           }
            else
           {
             $image=$this->model_tool_image->resize('placeholder.png', $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_product_height'));
             $thumb=$this->model_tool_image->resize('placeholder.png', $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_width'), $this->config->get('theme_'.$this->config->get('config_theme').'_image_category_height'));
           }

Соответственно в таблице БД setting должны быть установлены требуемые параметры для ресайза

1. А можно путь? Если тут /catalog/controller/product/category.php , то нету таких строк..
2. Когда найду, то что с ними делать?

Про миниатюры на слайдере - там что-то в .css надо поправить?

Надіслати
Поділитися на інших сайтах


1 час назад, gracef сказал:

о нету таких стро

Их и не будет - это мой код для одного сайта. В стандартной тройке такой код

            $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('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
                } else {
                    $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
                }

Просто я ремонтирую один сайт на локалке, а картинок у меня нет всех, поэтому добавил условие для проверки на существование картинки.

Надіслати
Поділитися на інших сайтах

3 часа назад, esculapra сказал:

Их и не будет - это мой код для одного сайта. В стандартной тройке такой код

            $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('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
                } else {
                    $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
                }

Просто я ремонтирую один сайт на локалке, а картинок у меня нет всех, поэтому добавил условие для проверки на существование картинки.

А вы можете написать, что мне делать и в каком файле?

Надіслати
Поділитися на інших сайтах


7 часов назад, gracef сказал:

о нету таких стро

       В контроллере  должен быть код

    $product_total = $this->model_catalog_product->getTotalProducts($filter_data);

            $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('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
                } else {
                    $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $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(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $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)
                );
            }

 

Вот строки для ресайзинга изображений

 $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));

Проверь параметры конфигурации в таблице базы данных setting

Примерно такие theme_default_image_product_width  (вместо default может быть название используемой темы)

Надіслати
Поділитися на інших сайтах

6 часов назад, esculapra сказал:

       В контроллере  должен быть код

    $product_total = $this->model_catalog_product->getTotalProducts($filter_data);

            $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('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));
                } else {
                    $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $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(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $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)
                );
            }

 

Вот строки для ресайзинга изображений

 $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height'));

Проверь параметры конфигурации в таблице базы данных setting

Примерно такие theme_default_image_product_width  (вместо default может быть название используемой темы)

Даже если я найду эти строки (правда не знаю путь до контроллера), то что с ними делать, где можно задавать размер или как что там прописывать?

Надіслати
Поділитися на інших сайтах


путь catalog/controller/product/category.php

 $image = $this->model_tool_image->resize($result['image'], '120px', '120px'); - попробуй указать размеры прямо в коде (это пример).

Надіслати
Поділитися на інших сайтах

14 часов назад, esculapra сказал:

путь catalog/controller/product/category.php

 $image = $this->model_tool_image->resize($result['image'], '120px', '120px'); - попробуй указать размеры прямо в коде (это пример).


Перехожу по данному пути, делаю правки, а .php никак не реагирует, решил вообще код удалить из category.php ничего не изменилось.. будто вообще не там вношу правки, хотя все правильно вроде?! ... 

Спойлер

/www/gracef.ru/catalog/controller/product

 

Надіслати
Поділитися на інших сайтах


2 часа назад, gracef сказал:

Перехожу по данному пути, делаю правки, а .php никак не реагирует, решил вообще код удалить из category.php ничего не изменилось.. будто вообще не там вношу правки, хотя все правильно вроде?! .

Обнови модификаторы - видимо имеется модификатор этого файла (поищи такой в storage/modification/catalog/controller/product/category.php), но в нем не делай правки, иначе после обновления они пропадут.

Надіслати
Поділитися на інших сайтах

16 часов назад, esculapra сказал:

Обнови модификаторы - видимо имеется модификатор этого файла (поищи такой в storage/modification/catalog/controller/product/category.php), но в нем не делай правки, иначе после обновления они пропадут.

Обновить, это что значит - этот же файл взять перезалить, например?

Надіслати
Поділитися на інших сайтах


30 минут назад, gracef сказал:

Обновить, это что значит

В админке есть вкладка модификаторы. Там нужно отметить галочками и нажать кнопку Обновить.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.