Created
April 10, 2020 16:18
-
-
Save tdgroot/7b98c44ce2585fa12496b16085d754ce to your computer and use it in GitHub Desktop.
Add size to Magento_CatalogGraphQl MediaGallery Url field
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- etc/schema.orig.graphqls 2020-01-10 06:20:38.000000000 +0100 | |
+++ etc/schema.graphqls 2020-04-10 18:07:05.630098596 +0200 | |
@@ -197,7 +197,7 @@ | |
} | |
interface MediaGalleryInterface @doc(description: "Contains basic information about a product image or video.") @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\MediaGalleryTypeResolver") { | |
- url: String @doc(description: "The URL of the product image or video.") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\MediaGallery\\Url") | |
+ url(width: Int, height: Int): String @doc(description: "The URL of the product image or video.") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\MediaGallery\\Url") | |
label: String @doc(description: "The label of the product image or video.") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\MediaGallery\\Label") | |
} | |
--- Model/Resolver/Product/MediaGallery/Url.orig.php 2020-01-10 06:20:38.000000000 +0100 | |
+++ Model/Resolver/Product/MediaGallery/Url.php 2020-04-10 18:06:55.281998491 +0200 | |
@@ -14,6 +14,7 @@ | |
use Magento\Framework\GraphQl\Config\Element\Field; | |
use Magento\Framework\GraphQl\Query\ResolverInterface; | |
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo; | |
+use Magento\Framework\View\ConfigInterface; | |
/** | |
* Returns media url | |
@@ -63,7 +64,7 @@ | |
$product = $value['model']; | |
if (isset($value['image_type'])) { | |
$imagePath = $product->getData($value['image_type']); | |
- return $this->getImageUrl($value['image_type'], $imagePath); | |
+ return $this->getImageUrl($value['image_type'], $imagePath, $args); | |
} | |
if (isset($value['file'])) { | |
$image = $this->productImageFactory->create(); | |
@@ -79,13 +80,16 @@ | |
* | |
* @param string $imageType | |
* @param string|null $imagePath | |
+ * @param array $imageArgs | |
* @return string | |
* @throws \Exception | |
*/ | |
- private function getImageUrl(string $imageType, ?string $imagePath): string | |
+ private function getImageUrl(string $imageType, ?string $imagePath, array $imageArgs): string | |
{ | |
$image = $this->productImageFactory->create(); | |
$image->setDestinationSubdir($imageType) | |
+ ->setWidth($imageArgs['width'] ?? null) | |
+ ->setHeight($imageArgs['height'] ?? null) | |
->setBaseFile($imagePath); | |
if ($image->isBaseFilePlaceholder()) { |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment