White_S
Постоялец
- Регистрация
- 27 Май 2009
- Сообщения
- 482
- Реакции
- 102
- Автор темы
- #1
Довольно много намучился с генерацией изображений на страницах категорий, и решил написать пост о том как это делается. Идея была взята здесь Для просмотра ссылки Войди или Зарегистрируйся там , правда речь идет о страницах товара, но как выяснил в процессе, там есть функция которая не только убирает белые поля, но и которая обрежет изображение в случае несоответствия пропорций. Для версии 1.5.6 файле не подошли, пришлось немного поправить. После того как залили файлы в catalog/controller/product/category.php делаем следующую замену:
Для версии двига 1.5.6 (изображение обрезается если пропорции не соответствуют функция cropsize)
заменяем:
на
Если хотите сделать изображение без белых полей (за максимум берется высота изображения) то используете функцию onesize, в том же файле делаете замену.
на
а также
на
Если хотите чтобы изображение было создано на основе максимальной ширины изображения, то делаем так:
заменяем
на
а также
на
Если мне не изменяет память, то в версии 1.5.4.1 по аналогии, не помню точно в 1.5.6 работает это.
Так генерируются изображения стандартно
так работает функция cropsize
так работает onesize с использованием в качестве максимального размера высоты картинки
а так по ширине
В принципе, если откроете файлы из приложения, понятно что там легко завернуть в Vqmod чтобы не делать замену файлов двига, но на это мне время тратить лень.
Для версии двига 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'] = '';
Так генерируются изображения стандартно
так работает функция cropsize
так работает onesize с использованием в качестве максимального размера высоты картинки
а так по ширине
В принципе, если откроете файлы из приложения, понятно что там легко завернуть в Vqmod чтобы не делать замену файлов двига, но на это мне время тратить лень.