本文整理汇总了PHP中Magento\Catalog\Api\Data\ProductInterface::getMediaConfig方法的典型用法代码示例。如果您正苦于以下问题:PHP ProductInterface::getMediaConfig方法的具体用法?PHP ProductInterface::getMediaConfig怎么用?PHP ProductInterface::getMediaConfig使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Catalog\Api\Data\ProductInterface
的用法示例。
在下文中一共展示了ProductInterface::getMediaConfig方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processNewMediaGalleryEntry
/**
* @param ProductInterface $product
* @param array $newEntry
* @return $this
* @throws InputException
* @throws StateException
* @throws \Magento\Framework\Exception\LocalizedException
*/
protected function processNewMediaGalleryEntry(ProductInterface $product, array $newEntry)
{
/** @var ImageContentInterface $contentDataObject */
$contentDataObject = $newEntry['content'];
/** @var \Magento\Catalog\Model\Product\Media\Config $mediaConfig */
$mediaConfig = $product->getMediaConfig();
$mediaTmpPath = $mediaConfig->getBaseTmpMediaPath();
$relativeFilePath = $this->imageProcessor->processImageContent($mediaTmpPath, $contentDataObject);
$tmpFilePath = $mediaConfig->getTmpMediaShortUrl($relativeFilePath);
/** @var \Magento\Catalog\Model\Product\Attribute\Backend\Media $galleryAttributeBackend */
$galleryAttributeBackend = $product->getGalleryAttributeBackend();
if ($galleryAttributeBackend == null) {
throw new StateException(__('Requested product does not support images.'));
}
$imageFileUri = $galleryAttributeBackend->addImage($product, $tmpFilePath, isset($newEntry['types']) ? $newEntry['types'] : [], true, isset($newEntry['disabled']) ? $newEntry['disabled'] : true);
// Update additional fields that are still empty after addImage call
$galleryAttributeBackend->updateImage($product, $imageFileUri, ['label' => $newEntry['label'], 'position' => $newEntry['position'], 'disabled' => $newEntry['disabled'], 'media_type' => $newEntry['media_type']]);
return $this;
}
示例2: processNewMediaGalleryEntry
/**
* @param ProductInterface $product
* @param array $newEntry
* @return $this
* @throws InputException
* @throws StateException
* @throws \Magento\Framework\Exception\LocalizedException
*/
protected function processNewMediaGalleryEntry(ProductInterface $product, array $newEntry)
{
/** @var ProductAttributeMediaGalleryEntryContentInterface $contentDataObject */
$contentDataObject = $newEntry['content'];
if (!$this->contentValidator->isValid($contentDataObject)) {
throw new InputException(__('The image content is not valid.'));
}
$fileContent = @base64_decode($contentDataObject->getEntryData(), true);
$fileName = $contentDataObject->getName();
$mimeType = $contentDataObject->getMimeType();
/** @var \Magento\Catalog\Model\Product\Media\Config $mediaConfig */
$mediaConfig = $product->getMediaConfig();
$mediaTmpPath = $mediaConfig->getBaseTmpMediaPath();
$mediaDirectory = $this->fileSystem->getDirectoryWrite(DirectoryList::MEDIA);
$mediaDirectory->create($mediaTmpPath);
$fileName = $fileName . '.' . $this->mimeTypeExtensionMap->getMimeTypeExtension($mimeType);
$relativeFilePath = $mediaTmpPath . DIRECTORY_SEPARATOR . $fileName;
$absoluteFilePath = $mediaDirectory->getAbsolutePath($relativeFilePath);
$mediaDirectory->writeFile($relativeFilePath, $fileContent);
/** @var \Magento\Catalog\Model\Product\Attribute\Backend\Media $galleryAttributeBackend */
$galleryAttributeBackend = $product->getGalleryAttributeBackend();
if ($galleryAttributeBackend == null) {
throw new StateException(__('Requested product does not support images.'));
}
$imageFileUri = $galleryAttributeBackend->addImage($product, $absoluteFilePath, isset($newEntry['types']) ? $newEntry['types'] : [], true, isset($newEntry['disabled']) ? $newEntry['disabled'] : true);
// Update additional fields that are still empty after addImage call
$galleryAttributeBackend->updateImage($product, $imageFileUri, ['label' => $newEntry['label'], 'position' => $newEntry['position'], 'disabled' => $newEntry['disabled']]);
return $this;
}