Skip to content

Commit 27f50e4

Browse files
author
joweecaquicla
committed
magento/adobe-stock-integration#1833: Add ability to disable renditions functionality to stores configuration - added conditions to renditions-related classes
1 parent 356ef14 commit 27f50e4

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

app/code/Magento/MediaGalleryRenditions/Model/Config.php

+11
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class Config
1919
{
2020
private const TABLE_CORE_CONFIG_DATA = 'core_config_data';
2121
private const XML_PATH_ENABLED = 'system/media_gallery/enabled';
22+
private const XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLED_PATH = 'system/media_gallery_renditions/enabled';
2223
private const XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH = 'system/media_gallery_renditions/width';
2324
private const XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH = 'system/media_gallery_renditions/height';
2425

@@ -54,6 +55,16 @@ public function isEnabled(): bool
5455
return $this->scopeConfig->isSetFlag(self::XML_PATH_ENABLED);
5556
}
5657

58+
/**
59+
* Check if the media gallery renditions is enabled
60+
*
61+
* @return bool
62+
*/
63+
public function isMediaGalleryRenditionsEnabled(): bool
64+
{
65+
return $this->scopeConfig->isSetFlag(self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLED_PATH);
66+
}
67+
5768
/**
5869
* Get max width
5970
*

app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public function beforeExecute(
9191
$storeId
9292
];
9393

94-
if (!$this->config->isEnabled()) {
94+
if (!$this->config->isEnabled() || !$this->config->isMediaGalleryRenditionsEnabled()) {
9595
return $arguments;
9696
}
9797

app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php

+16-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
class UpdateRenditionsOnConfigChange
1717
{
18+
private const XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH = 'system/media_gallery_renditions/enabled';
1819
private const XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH = 'system/media_gallery_renditions/width';
1920
private const XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH = 'system/media_gallery_renditions/height';
2021

@@ -41,7 +42,8 @@ public function __construct(ScheduleRenditionsUpdate $scheduleRenditionsUpdate)
4142
*/
4243
public function afterSave(Value $config, Value $result): Value
4344
{
44-
if ($this->isRenditionsValue($result) && $result->isValueChanged()) {
45+
if ($this->isMediaGalleryRenditionsEnabled($result) && $this->isRenditionsValue($result)
46+
&& $result->isValueChanged()) {
4547
$this->scheduleRenditionsUpdate->execute();
4648
}
4749

@@ -57,6 +59,18 @@ public function afterSave(Value $config, Value $result): Value
5759
private function isRenditionsValue(Value $value): bool
5860
{
5961
return $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH
60-
|| $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH;
62+
|| $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH
63+
|| $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH;
64+
}
65+
66+
/**
67+
* Determine if media gallery renditions is enabled based on configuration value
68+
*
69+
* @param Value $value
70+
* @return bool
71+
*/
72+
private function isMediaGalleryRenditionsEnabled(Value $value): bool
73+
{
74+
return $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH && $value->getValue();
6175
}
6276
}

0 commit comments

Comments
 (0)