Jump to content
Sign in to follow this  
CaptainPower

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

Recommended Posts

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

$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'));

}

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.