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

Формирование пути и наименование файла изображения товара


Recommended Posts

Знатокам, подскажите плиз..

По умолчанию ОП путь и имя до фото берет из поля image таблице product

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

как на уровне всего приложения прописать путь от артикля товара т.е. типа $sku.'jpg' - наименование файла товара

где бы это подправить, чтобы данное исправление действовало на все модули ?

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

1. admin/model/tool/image.php - модель для ресайзинга картинок

2. admin/controller/common/filemanager.php - контроллер файл менеджера, смотрите метод upload

первый вариант более универсальный, так как его используют почти все модули, там формируется название картинки + ширина_х_высота

но этот метод ничего не знает о товаре, то есть нужно как-то получить сам товар, достать оттуда все что нужно (sku, model итд) и сформировать название

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

спасибо за подсказку но решил сделать всетаки в контроллерах :

$filename=$product_info['model'].'.jpg';

if  (!file_exists(DIR_IMAGE. $filename) || !is_file(DIR_IMAGE . $filename))  {
$image =$this->model_tool_image->resize('no-image.png', $setting['image_width'], $setting['image_height']);
} else {
$image =$this->model_tool_image->resize($filename, $setting['image_width'], $setting['image_height']);

}

для контролера товара:

$filename=$product_info['model'].'.jpg';

if  (!file_exists(DIR_IMAGE.'/data/foto/'. $filename) || !is_file(DIR_IMAGE.'/data/foto/' . $filename))  {
$this->data['thumb'] =$this->model_tool_image->resize('no-image.png', $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));
} else {
$this->data['thumb']=$this->model_tool_image->resize($filename, $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));

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

}

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

дело конечно ваше, но этот код вам придется копировать во ВСЕ контроллеры всех модулей, как модулей самого опенкарта так и сторонних.. причем как тех, что уже установлены так и всех что будут установлены в будущем..

я же предлагал более универсальное решение, поменять код в 1 месте и эти изменения бы повлияли на все модули.

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

еще вариант в голову пришел пока писал предыдущее сообщение, самый наверное правильный - сделать все через крон. Написать скрипт, который будет обходить всю базу и заменять названия картинок как в базе так и название файлов согласно каким-то правилам.

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

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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