diff --git a/phpunit/functional/RuleRightCollectionTest.php b/phpunit/functional/RuleRightCollectionTest.php index 28a983825bd..f2719cd7d54 100644 --- a/phpunit/functional/RuleRightCollectionTest.php +++ b/phpunit/functional/RuleRightCollectionTest.php @@ -372,7 +372,7 @@ public function testExportXML(array $rule_data, ?array $itemtype_data) $xmlERuleCriteria = $xmlERule->addChild('rulecriteria'); $xmlERuleCriteria->criteria = $rule_data['criteria']['field']; $xmlERuleCriteria->condition = $rule_data['criteria']['condition']; - $xmlERuleCriteria->pattern = $itemtype ? $itemtype->getID() : $rule_data['criteria']['value']; + $xmlERuleCriteria->pattern = $itemtype ? $itemtype->fields['name'] : $rule_data['criteria']['value']; } if (isset($rule_data['action'])) { $xmlERuleCriteria = $xmlERule->addChild('ruleaction'); diff --git a/src/RuleCollection.php b/src/RuleCollection.php index 90f11715cc3..460b243d241 100644 --- a/src/RuleCollection.php +++ b/src/RuleCollection.php @@ -1075,12 +1075,20 @@ public static function getRulesXMLFile($items = []) $available_criteria = $rule->getCriterias(); $crit = $criteria['criteria']; + + foreach ($available_criteria as $key => $criterion_def) { + if (isset($criterion_def['id']) && $criterion_def['id'] == $crit) { + $crit = $key; + break; + } + } + if (self::isCriteraADropdown($available_criteria, $criteria['condition'], $crit)) { $criteria['pattern'] = Dropdown::getDropdownName( $available_criteria[$crit]['table'], $criteria['pattern'], false, - true, + false, false, '' );