Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как сделать высоту изображения товара 100%?


Recommended Posts

Добрый день. Помню уже задавал этот вопрос год назад, но тогда советовали только модуль какой то дорогой по фото компрессии. Сейчас хочу как то обойти и попробовать задать параметр  отображения по другому. Есть карточка товара: http://bravoekb.ru/index.php?route=product/product&path=42_45&product_id=46 ей в настройках шаблона (модули - темы - размер большого изображения товара) задано квадратное отображение 518 на 518 рх. Но у меня картинки товара не квадратные как видно на скрине. Зачем система оставляет вверху и внизу серое пространство?

Можно ли как то задать в шаблоне ширину те самые 518, а высоту 100%? Пусть себе под каждую картинку подстраивается автоматически по высоте.

Screenshot_13.jpg

Змінено користувачем DarkEinstein
орфографические ошибки
Надіслати
Поділитися на інших сайтах


5 минут назад, DarkEinstein сказал:

Добрый день. Помню уже задавал этот вопрос год назад, но тогда советовали только модуль какой то дорогой по фото компрессии. Сейчас хочу как то обойти и попробовать задать параметр  отображения по другому. Есть карточка товара: http://bravoekb.ru/index.php?route=product/product&path=42_45&product_id=46 ей в настройках шаблона (модули - темы - размер большого изображения товара) задано квадратное отображение 518 на 518 рх. Но у меня картинки товара не квадратные как видно на скрине. Зачем система оставляет вверху и внизу серое пространство?

Можно ли как то задать в шаблоне ширину те самые 518, а высоту 100%? Пусть себе под каждую картинку подстраивается автоматически по высоте.

Screenshot_13.jpg

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

Надіслати
Поділитися на інших сайтах


Убрать ресайз в изображениях. 

$this->model_tool_image->resize.......

заменить на 

'image/' . $result['image'],

 

Надіслати
Поділитися на інших сайтах

по идее можно, в библиотеке движка для ресайза есть 3-ий параметр для масштабирования
но вам нужно как-то передавать в модель для ресайза, какие фото нужно масштабировать, а какие нет
вот, что получается при масштабировании по высоте
https://prnt.sc/sgnam1

public function resize($width = 0, $height = 0, $default = '') {
		if (!$this->width || !$this->height) {
			return;
		}

		$xpos = 0;
		$ypos = 0;
		$scale = 1;

		$scale_w = $width / $this->width;
		$scale_h = $height / $this->height;

		if ($default == 'w') {
			$scale = $scale_w;
		} elseif ($default == 'h') {
			$scale = $scale_h;
		} else {
			$scale = min($scale_w, $scale_h);
		}

 

Надіслати
Поділитися на інших сайтах


33 минуты назад, Tom сказал:

Убрать ресайз в изображениях. 


$this->model_tool_image->resize.......

заменить на 


'image/' . $result['image'],

 

А где это искать? Хотел бы попробовать

31 минуту назад, thentru сказал:

по идее можно, в библиотеке движка для ресайза есть 3-ий параметр для масштабирования
но вам нужно как-то передавать в модель для ресайза, какие фото нужно масштабировать, а какие нет
вот, что получается при масштабировании по высоте
https://prnt.sc/sgnam1


public function resize($width = 0, $height = 0, $default = '') {
		if (!$this->width || !$this->height) {
			return;
		}

		$xpos = 0;
		$ypos = 0;
		$scale = 1;

		$scale_w = $width / $this->width;
		$scale_h = $height / $this->height;

		if ($default == 'w') {
			$scale = $scale_w;
		} elseif ($default == 'h') {
			$scale = $scale_h;
		} else {
			$scale = min($scale_w, $scale_h);
		}

 

 

Так не красиво, теперь оно по горизонтали обрезает...

Надіслати
Поділитися на інших сайтах


18 минут назад, Tom сказал:

catalog/controller/product/product.php

Там от 284 по 414-ю линию есть такие записи 7 штук

$this->model_tool_image->resize

. Их все пробовать менять?

 

Не знаю как спойлер здесь сделать:( 

	if ($product_info['image']) {
				$data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get($this->config->get('config_theme') . '_image_popup_width'), $this->config->get($this->config->get('config_theme') . '_image_popup_height'));
			} else {
				$data['popup'] = '';
			}

			if ($product_info['image']) {
				$data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get($this->config->get('config_theme') . '_image_thumb_width'), $this->config->get($this->config->get('config_theme') . '_image_thumb_height'));
			} else {
				$data['thumb'] = '';
			}

			$data['images'] = array();

			$results = $this->model_catalog_product->getProductImages($this->request->get['product_id']);

			foreach ($results as $result) {
				$data['images'][] = array(
					'popup' => $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_popup_width'), $this->config->get($this->config->get('config_theme') . '_image_popup_height')),
					'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_additional_width'), $this->config->get($this->config->get('config_theme') . '_image_additional_height'))
				);
			}

			if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
				$data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
			} else {
				$data['price'] = false;
			}

			if ((float)$product_info['special']) {
				$data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
			} else {
				$data['special'] = false;
			}

			if ($this->config->get('config_tax')) {
				$data['tax'] = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price'], $this->session->data['currency']);
			} else {
				$data['tax'] = false;
			}

			$discounts = $this->model_catalog_product->getProductDiscounts($this->request->get['product_id']);

			$data['discounts'] = array();

			foreach ($discounts as $discount) {
				$data['discounts'][] = array(
					'quantity' => $discount['quantity'],
					'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency'])
				);
			}

			$data['options'] = array();

			foreach ($this->model_catalog_product->getProductOptions($this->request->get['product_id']) as $option) {
				$product_option_value_data = array();

				foreach ($option['product_option_value'] as $option_value) {
					if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) {
						if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) {
							$price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']);
						} else {
							$price = false;
						}

						$product_option_value_data[] = array(
							'product_option_value_id' => $option_value['product_option_value_id'],
							'option_value_id'         => $option_value['option_value_id'],
							'name'                    => $option_value['name'],
							'image'                   => $this->model_tool_image->resize($option_value['image'], 50, 50),
							'price'                   => $price,
							'price_prefix'            => $option_value['price_prefix']
						);
					}
				}

				$data['options'][] = array(
					'product_option_id'    => $option['product_option_id'],
					'product_option_value' => $product_option_value_data,
					'option_id'            => $option['option_id'],
					'name'                 => $option['name'],
					'type'                 => $option['type'],
					'value'                => $option['value'],
					'required'             => $option['required']
				);
			}

			if ($product_info['minimum']) {
				$data['minimum'] = $product_info['minimum'];
			} else {
				$data['minimum'] = 1;
			}

			$data['review_status'] = $this->config->get('config_review_status');

			if ($this->config->get('config_review_guest') || $this->customer->isLogged()) {
				$data['review_guest'] = true;
			} else {
				$data['review_guest'] = false;
			}

			if ($this->customer->isLogged()) {
				$data['customer_name'] = $this->customer->getFirstName() . ' ' . $this->customer->getLastName();
			} else {
				$data['customer_name'] = '';
			}

			$data['reviews'] = sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']);
			$data['rating'] = (int)$product_info['rating'];

			// Captcha
			if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('review', (array)$this->config->get('config_captcha_page'))) {
				$data['captcha'] = $this->load->controller('extension/captcha/' . $this->config->get('config_captcha'));
			} else {
				$data['captcha'] = '';
			}

			$data['share'] = $this->url->link('product/product', 'product_id=' . (int)$this->request->get['product_id']);

			$data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);

			$data['products'] = array();

			$results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);

			foreach ($results as $result) {
				if ($result['image']) {
					$image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_related_width'), $this->config->get($this->config->get('config_theme') . '_image_related_height'));
				} else {
					$image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_related_width'), $this->config->get($this->config->get('config_theme') . '_image_related_height'));
				}

 

Змінено користувачем DarkEinstein
Надіслати
Поділитися на інших сайтах


52 минуты назад, DarkEinstein сказал:

Их все пробовать менять?

Речь же о изображении товара $data['thumb'] =...

Надіслати
Поділитися на інших сайтах

58 минут назад, DarkEinstein сказал:

понял, но не помогло

Это от невнимательности.

 

$data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get($this->config->get('config_theme') . '_image_thumb_width'), $this->config->get($this->config->get('config_theme') . '_image_thumb_height'));

----------->

$data['thumb'] = 'image/' . $product_info['image'];

 

Надіслати
Поділитися на інших сайтах

В 14.05.2020 в 18:05, Tom сказал:

Это от невнимательности.

 


$data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get($this->config->get('config_theme') . '_image_thumb_width'), $this->config->get($this->config->get('config_theme') . '_image_thumb_height'));

----------->


$data['thumb'] = 'image/' . $product_info['image'];

 

 

Так как на скрине? Тоже не проходит

Screenshot_22.jpg

Надіслати
Поділитися на інших сайтах


Если кому понадобится подобное. Помогла тех поддержка шаблона

в стили:

#productZoom, .product-gallery .image-thumb li a { background: #ffffff !important; }

Змінено користувачем DarkEinstein
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.