I am trying to get an array of product image urls in Magento 1.7.0.2. Here is my current (slightly convoluted for example) code:
foreach ($_product->getMediaGalleryImages() as $_image) {
$tmp = array(
'image' => $this->helper('catalog/image')
->init($this->getProduct(), 'thumbnail', $_image->getFile())
->constrainOnly(true)
->keepAspectRatio(true)
->keepFrame(false)
->resize(800, null),
'thumb' => $this->helper('catalog/image')
->init($this->getProduct(), 'thumbnail', $_image->getFile())
->constrainOnly(true)
->keepAspectRatio(true)
->keepFrame(false)
->resize(227, null),
'label' => $this->htmlEscape($this->getImageLabel())
);
echo $tmp['image'] . '<br>';
$all_imgs[] = $tmp;
}
foreach ($all_imgs as $blah) {
echo $blah['image'] . '<br>';
echo $blah['thumb'] . '<br>';
echo $blah['label'] . '<br>';
}
I have two images, a.jpg and b.jpg. In the first foreach I am getting somefolder/a.jpg and somefolder/b.jpg. In the second foreach I am getting somefolder/b.jpg twice.
Somehow a.jpg is being replaced by b.jpg but I can't figure out why. The only thing I can think of is that something is being passed by reference rather than value but if that's the case I can't see where that is happening.