protected function WebformEntityElementsValidator::validateDuplicateNames in Webform 6.x
Same name and namespace in other branches
- 8.5 src/WebformEntityElementsValidator.php \Drupal\webform\WebformEntityElementsValidator::validateDuplicateNames()
Validate elements does not contain duplicate names.
Return value
array|null If not valid, an array of error messages.
1 call to WebformEntityElementsValidator::validateDuplicateNames()
- WebformEntityElementsValidator::validate in src/
WebformEntityElementsValidator.php - Validate webform elements.
File
- src/
WebformEntityElementsValidator.php, line 319
Class
- WebformEntityElementsValidator
- Webform elements validator.
Namespace
Drupal\webformCode
protected function validateDuplicateNames() {
$duplicate_names = [];
$this
->getDuplicateNamesRecursive($this->elements, $duplicate_names);
if ($duplicate_names = array_filter($duplicate_names)) {
$messages = [];
foreach ($duplicate_names as $duplicate_name => $duplicate_count) {
$line_numbers = $this
->getLineNumbers('/^\\s*(["\']?)' . preg_quote($duplicate_name, '/') . '\\1\\s*:/');
$t_args = [
'%name' => $duplicate_name,
'@line_numbers' => WebformArrayHelper::toString($line_numbers),
];
$messages[] = $this
->formatPlural(count($line_numbers), 'Elements contain a duplicate element key %name found on line @line_numbers.', 'Elements contain a duplicate element key %name found on lines @line_numbers.', $t_args);
}
return $messages;
}
return NULL;
}