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'] = '';
Так генерируются изображения стандартно
![798b5a95a38225530862a1b61bd6afc7.png](/proxy.php?image=http%3A%2F%2Fgyazo.com%2F798b5a95a38225530862a1b61bd6afc7.png&hash=f89569bb8d2f7d7bd196bfc3571b115d)
так работает функция cropsize
![acff36a68828daab618cb7fc69461403.png](/proxy.php?image=http%3A%2F%2Fgyazo.com%2Facff36a68828daab618cb7fc69461403.png&hash=2cff444dfe3ce428547d6a3df07591e0)
так работает onesize с использованием в качестве максимального размера высоты картинки
![619ba1eb90b2b2c351e6cbd1b517b8cb.png](/proxy.php?image=http%3A%2F%2Fgyazo.com%2F619ba1eb90b2b2c351e6cbd1b517b8cb.png&hash=faaf0367accb12d61c46e125d9028b68)
а так по ширине
![27a0b1f0af21b8b345df21f170083209.png](/proxy.php?image=http%3A%2F%2Fgyazo.com%2F27a0b1f0af21b8b345df21f170083209.png&hash=9c74b8b0a2907904edf5c7d4fffa5554)
В принципе, если откроете файлы из приложения, понятно что там легко завернуть в Vqmod чтобы не делать замену файлов двига, но на это мне время тратить лень.