Как отобразить все изображения продукта в списке продуктов/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) ?>"/>
2 answers
Вы можете попробовать следующий код. Вы можете указать путь с помощью помощника по каталогу
echo Mage::helper('catalog/image')->init($_product, 'image', $image['file']) ."<br>";
Из этого кода вы также можете получить путь к кэшу.
Во втором способе вы получаете правильный путь, просто вам нужно добавить путь к носителю продукта каталога, например::
$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) ?>"/>