середу, 12 лютого 2014 р.

Подключаем дополнительные функции для генерации изображений в опенкарт

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


О файлах: файлы осуществляют замену в /catalog/model/tool/image.php и в /system/library/image.php - это означает что во-первых надо сделать бекап указанных файлов. Если хотите, можете внести изменения вручную, в файлах изменения помечены комментариями.
О функциях: Происходит подключение 2-ух дополнительных функций обработки изображений для понятности опишу их и стандартную функцию resize:

  1. Resize (стандартная функция движка) - добавляет белые поля картинка при не соответствии размеров указанным в настройках (в админке). Упрощенно это выглядит так: в настройках задан размер 100х100, исходное изображение имеет размер 100х130. При обработке изображение будет сжато до 100 по высоте а образовавшаяся пустота справа и слева будет заполнена белым фоном (или фоном указанным в Ваших настройках) Наглядно работа этой функции представлена на изображении:[​IMG]
  2. Cropsize - функция осуществляет кадрирование изображения в соответствии с размерами заданными в настройках (админке). На пальцах это работает так: в админке задан размер изображения 100х100 исходное фото 100х130, в этом случае при обработке изображение будет обрезано по 15пикс. сверху и снизу. Наглядно работа представлена на изображении:[​IMG]
  3. "Onesize - функция масштабирует изображение по одному из полей высота или ширина (о подключении масштабирования речь пойдет ниже). Суть состоит в том, что при масштабировании, например, по высоте в случае указания в админке в качестве высоты изображения значения 100 и при исходных размерах изображения 100х130 произойдет сжатие изображения по высоте до размера 100пикс и пропорционально по ширине, при этом не будет добавления белых полей справа и слева пример работы."
[​IMG] 
Как подключать? В примере я покажу как подключить функции на страницах категорий на примере 1.5.6, в принципе аналогичным образом происходит подключение в других версиях и для других макетов (страница товара, модули).
Подключаем функцию Cropsize в catalog/controller/product/category.php делаем следующую замену:


Подключаем функцию Onesize с выбором в качестве основного размера высоты изображения в catalog/controller/product/category.php делаем следующую замену:


Подключаем функцию Onesize с выбором в качестве основного размера ширины изображения в catalog/controller/product/category.php делаем следующую замену:



Файлы 1.5.4.1


1 коментар: