diff --git a/app/code/Magento/Widget/Model/Config/Converter.php b/app/code/Magento/Widget/Model/Config/Converter.php
index 010c46da56950..40718a5a5db9c 100644
--- a/app/code/Magento/Widget/Model/Config/Converter.php
+++ b/app/code/Magento/Widget/Model/Config/Converter.php
@@ -222,7 +222,7 @@ protected function _convertDepends($source)
{
$depends = [];
foreach ($source->childNodes as $childNode) {
- if ($childNode->nodeName == '#text') {
+ if ($childNode->nodeName === '#text') {
continue;
}
if ($childNode->nodeName !== 'parameter') {
@@ -231,12 +231,23 @@ protected function _convertDepends($source)
);
}
$parameterAttributes = $childNode->attributes;
- $depends[$parameterAttributes->getNamedItem(
- 'name'
- )->nodeValue] = [
- 'value' => $parameterAttributes->getNamedItem('value')->nodeValue,
- ];
+ $dependencyName = $parameterAttributes->getNamedItem('name')->nodeValue;
+ $dependencyValue = $parameterAttributes->getNamedItem('value')->nodeValue;
+
+ if (!isset($depends[$dependencyName])) {
+ $depends[$dependencyName] = [
+ 'value' => $dependencyValue,
+ ];
+
+ continue;
+ } else if (!isset($depends[$dependencyName]['values'])) {
+ $depends[$dependencyName]['values'] = [$depends[$dependencyName]['value']];
+ unset($depends[$dependencyName]['value']);
+ }
+
+ $depends[$dependencyName]['values'][] = $dependencyValue;
}
+
return $depends;
}
diff --git a/app/code/Magento/Widget/etc/widget.xsd b/app/code/Magento/Widget/etc/widget.xsd
index caaeec8ac4b84..70c9ec8e3514f 100644
--- a/app/code/Magento/Widget/etc/widget.xsd
+++ b/app/code/Magento/Widget/etc/widget.xsd
@@ -212,8 +212,8 @@
List of parameters this parameter depends on.
-
+
-
+
diff --git a/app/code/Magento/Widget/etc/widget_file.xsd b/app/code/Magento/Widget/etc/widget_file.xsd
index 6ebf7a201212e..afdd506f3ba24 100644
--- a/app/code/Magento/Widget/etc/widget_file.xsd
+++ b/app/code/Magento/Widget/etc/widget_file.xsd
@@ -212,8 +212,8 @@
List of parameters this parameter depends on.
-
+
-
+