public function testGetMediaAttributeValues() { $this->setupMediaAttributes(); $this->model->setData('image', 'imageValue'); $this->model->setData('small_image', 'smallImageValue'); $expectedMediaAttributeValues = ['image' => 'imageValue', 'small_image' => 'smallImageValue']; $this->assertEquals($expectedMediaAttributeValues, $this->model->getMediaAttributeValues()); }
public function testGetMediaAttributeValues() { $this->mediaConfig->expects($this->once())->method('getMediaAttributeCodes')->willReturn(['image', 'small_image']); $this->model->setData('image', 'imageValue'); $this->model->setData('small_image', 'smallImageValue'); $expectedMediaAttributeValues = ['image' => 'imageValue', 'small_image' => 'smallImageValue']; $this->assertEquals($expectedMediaAttributeValues, $this->model->getMediaAttributeValues()); }
/** * @param Product $product * @param array $rowData * @return ProductAttributeMediaGalleryEntryInterface $entry */ public function convertTo(Product $product, array $rowData) { $image = $rowData; $productImages = $product->getMediaAttributeValues(); if (!isset($image['types'])) { $image['types'] = array_keys($productImages, $image['file']); } $entry = $this->mediaGalleryEntryFactory->create(); $this->dataObjectHelper->populateWithArray($entry, $image, '\\Magento\\Catalog\\Api\\Data\\ProductAttributeMediaGalleryEntryInterface'); if (isset($image['value_id'])) { $entry->setId($image['value_id']); } return $entry; }
/** * {@inheritdoc} */ public function getMediaAttributeValues() { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getMediaAttributeValues'); if (!$pluginInfo) { return parent::getMediaAttributeValues(); } else { return $this->___callPlugins('getMediaAttributeValues', func_get_args(), $pluginInfo); } }
/** * Method getting full media gallery for current Product * Array structure: [ * ['image'] => 'http://url/pub/media/catalog/product/2/0/blabla.jpg', * ['mediaGallery'] => [ * galleryImageId1 => simpleProductImage1.jpg, * galleryImageId2 => simpleProductImage2.jpg, * ..., * ] * ] * @param ModelProduct $product * @return array */ public function getProductMediaGallery(ModelProduct $product) { if (!in_array($product->getData('image'), [null, self::EMPTY_IMAGE_VALUE], true)) { $baseImage = $product->getData('image'); } else { $productMediaAttributes = array_filter($product->getMediaAttributeValues(), function ($value) { return $value !== self::EMPTY_IMAGE_VALUE && $value !== null; }); foreach ($productMediaAttributes as $attributeCode => $value) { if ($attributeCode !== 'swatch_image') { $baseImage = (string) $value; break; } } } if (empty($baseImage)) { return []; } $resultGallery = $this->getAllSizeImages($product, $baseImage); $resultGallery['gallery'] = $this->getGalleryImages($product); return $resultGallery; }
/** * @param Product $product * @param Store $store * @return string|null */ protected function buildImageUrl(Product $product, Store $store) { $primary = $this->_dataHelper->getProductImageVersion($store); $secondary = 'image'; // The "base" image. $media = $product->getMediaAttributeValues(); $image = isset($media[$primary]) ? $media[$primary] : (isset($media[$secondary]) ? $media[$secondary] : null); if (empty($image)) { return null; } return $product->getMediaConfig()->getMediaUrl($image); }