Проблема в получением ресайз картинок

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Danila_Master
  • Группа: Пользователь
  • Сообщений: 29
  • Регистрация: 04.04.2011

13.04.2011 14:07

Хочу сделать, чтобы в катлаге товара при наведении на товар менялась картинка.
Я решил, что картинка на которую нужно менять будет иметь порядок 1000.
//получаем исходную картинку
$_outImage = $this->helper('catalog/image')->init($_product, 'small_image')->resize(144,216);
$_product->load('media_gallery');
$_overImage = null;
//получаем картинки из галлереи товара
foreach ($_product->getMediaGalleryImages() as $_image) {
   if($_image->getPosition() == 1000){//нужная нам картинка
      $_overImage = $this->helper('catalog/image')->init($_product, 'small_image_hover', $_image->getFile())->resize(144,216);
   }
}

После я вставляю картинку:
<img
 src="<?php echo $_outImage;?>"
 <?php if ($_overImage):?>
  onmouseover="changeOverImg(this,'<?php echo $_overImage;?>')"
  onmouseout="changeOutImg(this,'<?php echo $_outImage;?>')"
 <?php endif ?>
 width="144" height="216" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"
/>

Но $_overImage и $_outImage имеют одно и тоже значение.
Как получить разные?

#2 Danila_Master
  • Группа: Пользователь
  • Сообщений: 29
  • Регистрация: 04.04.2011

13.04.2011 14:19

Проблема вероятно с тем, что я переопределяю свойсвтво объекта. Вероятно нужно либо копию объекта создать или прямо ссылку на файл получить.
Подскажите, как правильно делать?

#3 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

13.04.2011 20:46

А есть ли у вашего товара атрибут small_image_hover?

#4 Danila_Master
  • Группа: Пользователь
  • Сообщений: 29
  • Регистрация: 04.04.2011

15.04.2011 08:40

Нет такого аттрибута. То есть сначала нужно создать для товара small_image_hover по аналогии с уже имеющимися small_image и др. и тогда все будет работать? Дмитрий не дадите ссылочку, где можно почитать как это сделать?

#5 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

15.04.2011 15:49

Разумеется, второй параметр метода Mage_Catalog_Helper_Image::init () - не для красного слова, а имя реального атрибута.
В качестве примера просто посмотрите исходный код Magento: как вышеупомянутого метода, так и отображение галереи картинок на карточке товара.

Поделиться темой: