/** * Resize product images and save results to image cache * * @param Product $product * @return $this */ public function generate(Product $product) { $galleryImages = $product->getMediaGalleryImages(); if ($galleryImages) { foreach ($galleryImages as $image) { foreach ($this->getData() as $imageData) { $this->processImageData($product, $imageData, $image->getFile()); } } } return $this; }
public function testGetMediaGalleryImages() { /** @var $model \Magento\Catalog\Model\Product */ $model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product'); $this->assertEmpty($model->getMediaGalleryImages()); $this->_model->setMediaGallery(['images' => [['file' => 'magento_image.jpg']]]); $images = $this->_model->getMediaGalleryImages(); $this->assertInstanceOf('Magento\\Framework\\Data\\Collection', $images); foreach ($images as $image) { $this->assertInstanceOf('Magento\\Framework\\DataObject', $image); $image = $image->getData(); $this->assertArrayHasKey('file', $image); $this->assertArrayHasKey('url', $image); $this->assertArrayHasKey('id', $image); $this->assertArrayHasKey('path', $image); $this->assertStringEndsWith('magento_image.jpg', $image['file']); $this->assertStringEndsWith('magento_image.jpg', $image['url']); $this->assertStringEndsWith('magento_image.jpg', $image['path']); } }
/** * {@inheritdoc} */ public function getMediaGalleryImages() { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getMediaGalleryImages'); if (!$pluginInfo) { return parent::getMediaGalleryImages(); } else { return $this->___callPlugins('getMediaGalleryImages', func_get_args(), $pluginInfo); } }
/** * Resize product images and save results to image cache * * @param Product $product * @return $this */ public function generate(Product $product) { $galleryImages = $product->getMediaGalleryImages(); if ($galleryImages) { foreach ($galleryImages as $image) { foreach ($this->getData() as $params) { $this->imageHelper->init($product, $params['type'], $image->getFile())->resize($params['width'], $params['height'])->save(); } } } return $this; }