From d6c7459b26ce2e4e24ef2bbf8547e2790c01324c Mon Sep 17 00:00:00 2001 From: Tommy Quissens Date: Thu, 5 Apr 2018 12:31:02 +0300 Subject: [PATCH 1/3] made attributes nillable so we can reset parent settings --- lib/internal/Magento/Framework/Config/etc/view.xsd | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/internal/Magento/Framework/Config/etc/view.xsd b/lib/internal/Magento/Framework/Config/etc/view.xsd index 20b6a7d4fbfd2..eb0583a58bf29 100644 --- a/lib/internal/Magento/Framework/Config/etc/view.xsd +++ b/lib/internal/Magento/Framework/Config/etc/view.xsd @@ -49,12 +49,12 @@ - - - - - - + + + + + + From f2a1c08a401a338fa93f6f35aea34a9643ae811e Mon Sep 17 00:00:00 2001 From: Tommy Quissens Date: Thu, 5 Apr 2018 13:45:28 +0300 Subject: [PATCH 2/3] parse nil values correctly --- app/code/Magento/Catalog/Model/ImageExtractor.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Model/ImageExtractor.php b/app/code/Magento/Catalog/Model/ImageExtractor.php index d2c11a3762961..4d8c95f26a72e 100644 --- a/app/code/Magento/Catalog/Model/ImageExtractor.php +++ b/app/code/Magento/Catalog/Model/ImageExtractor.php @@ -35,7 +35,11 @@ public function process(\DOMElement $mediaNode, $mediaParentTag) if ($attributeTagName === 'background') { $nodeValue = $this->processImageBackground($attribute->nodeValue); } elseif ($attributeTagName === 'width' || $attributeTagName === 'height') { - $nodeValue = intval($attribute->nodeValue); + if ((bool)$attribute->getAttribute('xsi:nil') !== true) { + $nodeValue = intval($attribute->nodeValue); + } else { + $nodeValue = null; + } } else { $nodeValue = !in_array($attribute->nodeValue, ['false', '0']); } From 240e18df3e108c5bb244ce01945f8e9415675fb4 Mon Sep 17 00:00:00 2001 From: Tommy Quissens Date: Tue, 19 Jun 2018 16:23:15 +0300 Subject: [PATCH 3/3] made more attributes nillable --- app/code/Magento/Catalog/Model/ImageExtractor.php | 14 +++++++------- lib/internal/Magento/Framework/Config/etc/view.xsd | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/code/Magento/Catalog/Model/ImageExtractor.php b/app/code/Magento/Catalog/Model/ImageExtractor.php index 4d8c95f26a72e..1c20608670672 100644 --- a/app/code/Magento/Catalog/Model/ImageExtractor.php +++ b/app/code/Magento/Catalog/Model/ImageExtractor.php @@ -32,16 +32,16 @@ public function process(\DOMElement $mediaNode, $mediaParentTag) continue; } $attributeTagName = $attribute->tagName; - if ($attributeTagName === 'background') { - $nodeValue = $this->processImageBackground($attribute->nodeValue); - } elseif ($attributeTagName === 'width' || $attributeTagName === 'height') { - if ((bool)$attribute->getAttribute('xsi:nil') !== true) { - $nodeValue = intval($attribute->nodeValue); + if ((bool)$attribute->getAttribute('xsi:nil') !== true) { + if ($attributeTagName === 'background') { + $nodeValue = $this->processImageBackground($attribute->nodeValue); + } elseif ($attributeTagName === 'width' || $attributeTagName === 'height') { + $nodeValue = intval($attribute->nodeValue); } else { - $nodeValue = null; + $nodeValue = $attribute->nodeValue; } } else { - $nodeValue = !in_array($attribute->nodeValue, ['false', '0']); + $nodeValue = null; } $result[$mediaParentTag][$moduleNameImage][Image::MEDIA_TYPE_CONFIG_NODE][$imageId][$attribute->tagName] = $nodeValue; diff --git a/lib/internal/Magento/Framework/Config/etc/view.xsd b/lib/internal/Magento/Framework/Config/etc/view.xsd index eb0583a58bf29..b908862b02147 100644 --- a/lib/internal/Magento/Framework/Config/etc/view.xsd +++ b/lib/internal/Magento/Framework/Config/etc/view.xsd @@ -55,7 +55,7 @@ - +