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 чтобы не делать замену файлов двига, но на это мне время тратить лень.
 
				 
 
		 
 
		 
 
		