From 356ef14274e11d1d9040714bb747d29fca6e466e Mon Sep 17 00:00:00 2001 From: joweecaquicla Date: Tue, 15 Sep 2020 23:28:31 +0800 Subject: [PATCH 1/7] magento/adobe-stock-integration#1833: Add ability to disable renditions functionality to stores configuration - added enable disable renditions to stores configuration --- .../MediaGalleryRenditions/etc/adminhtml/system.xml | 8 ++++++-- app/code/Magento/MediaGalleryRenditions/etc/config.xml | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/MediaGalleryRenditions/etc/adminhtml/system.xml b/app/code/Magento/MediaGalleryRenditions/etc/adminhtml/system.xml index 64f338d53a283..3f9a3d1a8e4e1 100644 --- a/app/code/Magento/MediaGalleryRenditions/etc/adminhtml/system.xml +++ b/app/code/Magento/MediaGalleryRenditions/etc/adminhtml/system.xml @@ -10,11 +10,15 @@
- + + + Magento\Config\Model\Config\Source\Yesno + + validate-zero-or-greater validate-digits - + validate-zero-or-greater validate-digits diff --git a/app/code/Magento/MediaGalleryRenditions/etc/config.xml b/app/code/Magento/MediaGalleryRenditions/etc/config.xml index 58c5aa1f11fd2..6b4f2351b8b10 100644 --- a/app/code/Magento/MediaGalleryRenditions/etc/config.xml +++ b/app/code/Magento/MediaGalleryRenditions/etc/config.xml @@ -9,6 +9,7 @@ + 1 1000 1000 From 27f50e4ceb258065c5aa232afc54766cab2f84e6 Mon Sep 17 00:00:00 2001 From: joweecaquicla Date: Wed, 16 Sep 2020 16:20:34 +0800 Subject: [PATCH 2/7] magento/adobe-stock-integration#1833: Add ability to disable renditions functionality to stores configuration - added conditions to renditions-related classes --- .../MediaGalleryRenditions/Model/Config.php | 11 +++++++++++ .../Plugin/SetRenditionPath.php | 2 +- .../Plugin/UpdateRenditionsOnConfigChange.php | 18 ++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/MediaGalleryRenditions/Model/Config.php b/app/code/Magento/MediaGalleryRenditions/Model/Config.php index d1a48904d1f13..a0e6c85a55069 100644 --- a/app/code/Magento/MediaGalleryRenditions/Model/Config.php +++ b/app/code/Magento/MediaGalleryRenditions/Model/Config.php @@ -19,6 +19,7 @@ class Config { private const TABLE_CORE_CONFIG_DATA = 'core_config_data'; private const XML_PATH_ENABLED = 'system/media_gallery/enabled'; + private const XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLED_PATH = 'system/media_gallery_renditions/enabled'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH = 'system/media_gallery_renditions/width'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH = 'system/media_gallery_renditions/height'; @@ -54,6 +55,16 @@ public function isEnabled(): bool return $this->scopeConfig->isSetFlag(self::XML_PATH_ENABLED); } + /** + * Check if the media gallery renditions is enabled + * + * @return bool + */ + public function isMediaGalleryRenditionsEnabled(): bool + { + return $this->scopeConfig->isSetFlag(self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLED_PATH); + } + /** * Get max width * diff --git a/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php b/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php index ec2012c528ef1..730b9549ace06 100644 --- a/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php +++ b/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php @@ -91,7 +91,7 @@ public function beforeExecute( $storeId ]; - if (!$this->config->isEnabled()) { + if (!$this->config->isEnabled() || !$this->config->isMediaGalleryRenditionsEnabled()) { return $arguments; } diff --git a/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php b/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php index 9cf969c16782f..2b7645473535a 100644 --- a/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php +++ b/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php @@ -15,6 +15,7 @@ */ class UpdateRenditionsOnConfigChange { + private const XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH = 'system/media_gallery_renditions/enabled'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH = 'system/media_gallery_renditions/width'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH = 'system/media_gallery_renditions/height'; @@ -41,7 +42,8 @@ public function __construct(ScheduleRenditionsUpdate $scheduleRenditionsUpdate) */ public function afterSave(Value $config, Value $result): Value { - if ($this->isRenditionsValue($result) && $result->isValueChanged()) { + if ($this->isMediaGalleryRenditionsEnabled($result) && $this->isRenditionsValue($result) + && $result->isValueChanged()) { $this->scheduleRenditionsUpdate->execute(); } @@ -57,6 +59,18 @@ public function afterSave(Value $config, Value $result): Value private function isRenditionsValue(Value $value): bool { return $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH - || $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH; + || $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH + || $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH; + } + + /** + * Determine if media gallery renditions is enabled based on configuration value + * + * @param Value $value + * @return bool + */ + private function isMediaGalleryRenditionsEnabled(Value $value): bool + { + return $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH && $value->getValue(); } } From 1de7ccb35f262b76eaae5db698923418022596aa Mon Sep 17 00:00:00 2001 From: joweecaquicla Date: Wed, 16 Sep 2020 22:11:20 +0800 Subject: [PATCH 3/7] magento/adobe-stock-integration#1833: Add ability to disable renditions functionality to stores configuration - modifications based on request changes --- .../Magento/MediaGalleryRenditions/Model/Config.php | 11 ----------- .../Plugin/SetRenditionPath.php | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/app/code/Magento/MediaGalleryRenditions/Model/Config.php b/app/code/Magento/MediaGalleryRenditions/Model/Config.php index a0e6c85a55069..d1a48904d1f13 100644 --- a/app/code/Magento/MediaGalleryRenditions/Model/Config.php +++ b/app/code/Magento/MediaGalleryRenditions/Model/Config.php @@ -19,7 +19,6 @@ class Config { private const TABLE_CORE_CONFIG_DATA = 'core_config_data'; private const XML_PATH_ENABLED = 'system/media_gallery/enabled'; - private const XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLED_PATH = 'system/media_gallery_renditions/enabled'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH = 'system/media_gallery_renditions/width'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH = 'system/media_gallery_renditions/height'; @@ -55,16 +54,6 @@ public function isEnabled(): bool return $this->scopeConfig->isSetFlag(self::XML_PATH_ENABLED); } - /** - * Check if the media gallery renditions is enabled - * - * @return bool - */ - public function isMediaGalleryRenditionsEnabled(): bool - { - return $this->scopeConfig->isSetFlag(self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLED_PATH); - } - /** * Get max width * diff --git a/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php b/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php index 730b9549ace06..ec2012c528ef1 100644 --- a/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php +++ b/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php @@ -91,7 +91,7 @@ public function beforeExecute( $storeId ]; - if (!$this->config->isEnabled() || !$this->config->isMediaGalleryRenditionsEnabled()) { + if (!$this->config->isEnabled()) { return $arguments; } From 4e20d29466ed2d4eb9612d5012596dc79f1e6532 Mon Sep 17 00:00:00 2001 From: joweecaquicla Date: Wed, 16 Sep 2020 23:49:08 +0800 Subject: [PATCH 4/7] magento/adobe-stock-integration#1833: Add ability to disable renditions functionality to stores configuration - additional action group and modifications on media gallery test suites --- ...ediaGalleryRenditionsEnableActionGroup.xml | 24 +++++++++++++++++++ .../Test/Mftf/Data/AdobeStockConfigData.xml | 8 +++++++ .../Mftf/Section/AdminConfigSystemSection.xml | 2 ++ .../Suite/MediaGalleryUiDisabledSuite.xml | 11 +++++++++ .../Test/Mftf/Suite/MediaGalleryUiSuite.xml | 1 + 5 files changed, 46 insertions(+) create mode 100644 app/code/Magento/MediaGalleryUi/Test/Mftf/ActionGroup/AdminMediaGalleryRenditionsEnableActionGroup.xml diff --git a/app/code/Magento/MediaGalleryUi/Test/Mftf/ActionGroup/AdminMediaGalleryRenditionsEnableActionGroup.xml b/app/code/Magento/MediaGalleryUi/Test/Mftf/ActionGroup/AdminMediaGalleryRenditionsEnableActionGroup.xml new file mode 100644 index 0000000000000..b64247a708242 --- /dev/null +++ b/app/code/Magento/MediaGalleryUi/Test/Mftf/ActionGroup/AdminMediaGalleryRenditionsEnableActionGroup.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/code/Magento/MediaGalleryUi/Test/Mftf/Data/AdobeStockConfigData.xml b/app/code/Magento/MediaGalleryUi/Test/Mftf/Data/AdobeStockConfigData.xml index e8f394a006104..9ac743f2f9983 100644 --- a/app/code/Magento/MediaGalleryUi/Test/Mftf/Data/AdobeStockConfigData.xml +++ b/app/code/Magento/MediaGalleryUi/Test/Mftf/Data/AdobeStockConfigData.xml @@ -15,4 +15,12 @@ system/media_gallery/enabled 0 + + system/media_gallery_renditions/enabled + 1 + + + system/media_gallery_renditions/enabled + 0 + diff --git a/app/code/Magento/MediaGalleryUi/Test/Mftf/Section/AdminConfigSystemSection.xml b/app/code/Magento/MediaGalleryUi/Test/Mftf/Section/AdminConfigSystemSection.xml index b7900f6664c62..f3ab74470e4e4 100644 --- a/app/code/Magento/MediaGalleryUi/Test/Mftf/Section/AdminConfigSystemSection.xml +++ b/app/code/Magento/MediaGalleryUi/Test/Mftf/Section/AdminConfigSystemSection.xml @@ -11,6 +11,8 @@
+ +
diff --git a/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiDisabledSuite.xml b/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiDisabledSuite.xml index 727fbde3f17b6..d5f2abe965575 100644 --- a/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiDisabledSuite.xml +++ b/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiDisabledSuite.xml @@ -9,6 +9,17 @@ + + + + + + + + + + + diff --git a/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiSuite.xml b/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiSuite.xml index 4749fc4a885b0..e81dc807d0f48 100644 --- a/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiSuite.xml +++ b/app/code/Magento/MediaGalleryUi/Test/Mftf/Suite/MediaGalleryUiSuite.xml @@ -15,6 +15,7 @@ + From 746ee90c22a28b4d1aad6a41a8ced0855246d560 Mon Sep 17 00:00:00 2001 From: Sergii Ivashchenko Date: Wed, 16 Sep 2020 19:22:05 +0300 Subject: [PATCH 5/7] magento/magento2#30057: Corrected UpdateRenditionsOnConfigChange plugin logic --- .../Plugin/UpdateRenditionsOnConfigChange.php | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php b/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php index 2b7645473535a..6fcb37398f3ad 100644 --- a/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php +++ b/app/code/Magento/MediaGalleryRenditions/Plugin/UpdateRenditionsOnConfigChange.php @@ -8,6 +8,7 @@ namespace Magento\MediaGalleryRenditions\Plugin; use Magento\Framework\App\Config\Value; +use Magento\MediaGalleryRenditions\Model\Config; use Magento\MediaGalleryRenditions\Model\Queue\ScheduleRenditionsUpdate; /** @@ -25,10 +26,17 @@ class UpdateRenditionsOnConfigChange private $scheduleRenditionsUpdate; /** + * @var Config + */ + private $config; + + /** + * @param Config $config * @param ScheduleRenditionsUpdate $scheduleRenditionsUpdate */ - public function __construct(ScheduleRenditionsUpdate $scheduleRenditionsUpdate) + public function __construct(Config $config, ScheduleRenditionsUpdate $scheduleRenditionsUpdate) { + $this->config = $config; $this->scheduleRenditionsUpdate = $scheduleRenditionsUpdate; } @@ -42,8 +50,13 @@ public function __construct(ScheduleRenditionsUpdate $scheduleRenditionsUpdate) */ public function afterSave(Value $config, Value $result): Value { - if ($this->isMediaGalleryRenditionsEnabled($result) && $this->isRenditionsValue($result) - && $result->isValueChanged()) { + if ($this->isRenditionsEnabled($result)) { + $this->scheduleRenditionsUpdate->execute(); + + return $result; + } + + if ($this->config->isEnabled() && $this->isRenditionsValue($result) && $result->isValueChanged()) { $this->scheduleRenditionsUpdate->execute(); } @@ -59,8 +72,7 @@ public function afterSave(Value $config, Value $result): Value private function isRenditionsValue(Value $value): bool { return $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH - || $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH - || $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH; + || $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH; } /** @@ -69,8 +81,10 @@ private function isRenditionsValue(Value $value): bool * @param Value $value * @return bool */ - private function isMediaGalleryRenditionsEnabled(Value $value): bool + private function isRenditionsEnabled(Value $value): bool { - return $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH && $value->getValue(); + return $value->getPath() === self::XML_PATH_MEDIA_GALLERY_RENDITIONS_ENABLE_PATH + && $value->isValueChanged() + && $value->getValue(); } } From 24cec36efcd1afb3f4262f4c54c7450ab2f6edfe Mon Sep 17 00:00:00 2001 From: joweecaquicla Date: Thu, 17 Sep 2020 19:15:06 +0800 Subject: [PATCH 6/7] magento/adobe-stock-integration#1833: Add ability to disable renditions functionality to stores configuration - modified Config.php --- app/code/Magento/MediaGalleryRenditions/Model/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/MediaGalleryRenditions/Model/Config.php b/app/code/Magento/MediaGalleryRenditions/Model/Config.php index d1a48904d1f13..1e4d609f9d61d 100644 --- a/app/code/Magento/MediaGalleryRenditions/Model/Config.php +++ b/app/code/Magento/MediaGalleryRenditions/Model/Config.php @@ -18,7 +18,7 @@ class Config { private const TABLE_CORE_CONFIG_DATA = 'core_config_data'; - private const XML_PATH_ENABLED = 'system/media_gallery/enabled'; + private const XML_PATH_ENABLED = 'system/media_gallery_renditions/enabled'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH = 'system/media_gallery_renditions/width'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH = 'system/media_gallery_renditions/height'; From 27730462760017cc931b141cd2fa97b2d3e54ee0 Mon Sep 17 00:00:00 2001 From: Sergii Ivashchenko Date: Thu, 17 Sep 2020 17:21:21 +0300 Subject: [PATCH 7/7] magento/magento2#30057: Disabled renditions for old media gallery --- .../Magento/MediaGalleryRenditions/Model/Config.php | 11 +++++++++++ .../Plugin/SetRenditionPath.php | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/MediaGalleryRenditions/Model/Config.php b/app/code/Magento/MediaGalleryRenditions/Model/Config.php index 1e4d609f9d61d..6622ef36dffd7 100644 --- a/app/code/Magento/MediaGalleryRenditions/Model/Config.php +++ b/app/code/Magento/MediaGalleryRenditions/Model/Config.php @@ -18,6 +18,7 @@ class Config { private const TABLE_CORE_CONFIG_DATA = 'core_config_data'; + private const XML_PATH_MEDIA_GALLERY_ENABLED = 'system/media_gallery/enabled'; private const XML_PATH_ENABLED = 'system/media_gallery_renditions/enabled'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_WIDTH_PATH = 'system/media_gallery_renditions/width'; private const XML_PATH_MEDIA_GALLERY_RENDITIONS_HEIGHT_PATH = 'system/media_gallery_renditions/height'; @@ -49,6 +50,16 @@ public function __construct( * * @return bool */ + public function isMediaGalleryEnabled(): bool + { + return $this->scopeConfig->isSetFlag(self::XML_PATH_MEDIA_GALLERY_ENABLED); + } + + /** + * Should the renditions be inserted in the content instead of original image + * + * @return bool + */ public function isEnabled(): bool { return $this->scopeConfig->isSetFlag(self::XML_PATH_ENABLED); diff --git a/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php b/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php index ec2012c528ef1..2fc49950463ea 100644 --- a/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php +++ b/app/code/Magento/MediaGalleryRenditions/Plugin/SetRenditionPath.php @@ -91,7 +91,7 @@ public function beforeExecute( $storeId ]; - if (!$this->config->isEnabled()) { + if (!$this->config->isEnabled() || !$this->config->isMediaGalleryEnabled()) { return $arguments; }