Как отобразить все изображения продукта в списке продуктов/list.phtml


Я хочу показать все изображения продуктов на странице списка продуктов (файл list.phtml).

Для этого я сделал следующее в list.phtml

var_dump($_product->getMediaGalleryImages());

Но он возвращается с NULL.

Другой способ, который я нашел, заключается в следующем

$mediaApi = Mage::getModel('catalog/product_attribute_media_api');
$mediaItems = $mediaApi->items($_product->getId());
foreach ($mediaItems as $image) {
    echo $image['file'] ."<br>";
}

Но это возвращает меня на полпути, как /p/a/pawo.jpg.

Итак, есть ли лучший способ получить все изображения товаров (галерею) в списке товаров страница??

ПРИМЕЧАНИЕ: Мне также нужно изменить размер изображения, как мы делаем следующим образом.

 <img id="product-image-<?php echo $_product->getId(); ?>" src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->constrainOnly(TRUE)->keepAspectRatio(FALSE)->keepFrame(FALSE)->resize($_imgSize,$_imgSize); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"/>
Author: sv3n, 2016-10-05

2 answers

Вы можете попробовать следующий код. Вы можете указать путь с помощью помощника по каталогу

echo Mage::helper('catalog/image')->init($_product, 'image', $image['file']) ."<br>";

Из этого кода вы также можете получить путь к кэшу.

 2
Author: Technocracker, 2016-10-05 10:40:54

Во втором способе вы получаете правильный путь, просто вам нужно добавить путь к носителю продукта каталога, например::

$mediaPath = Mage::getBaseUrl('media').'catalog/product'

Правильное решение:

$mediaApi = Mage::getModel('catalog/product_attribute_media_api');
$mediaItems = $mediaApi->items($_product->getId());
foreach ($mediaItems as $image) {
   echo $mediaPath.$image['file'] ."<br>";
}

В первом методе вы должны сначала загрузить продукт, например:

$product = Mage::getModel('catalog/product')->load($_product->getId());
var_dump($product->getMediaGalleryImages());

Для изменения размера используйте:

<img id="product-image-<?php echo $_product->getId(); ?>" src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image',$image['file'])->constrainOnly(TRUE)->keepAspectRatio(FALSE)->keepFrame(FALSE)->resize($_imgSize,$_imgSize); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"/>
 2
Author: Ashish Jagnani, 2016-10-05 10:52:46