public static function WebformTokenManager::validateElement in Webform 6.x
Same name and namespace in other branches
- 8.5 src/WebformTokenManager.php \Drupal\webform\WebformTokenManager::validateElement()
Validates an element's tokens.
Note: Element is not being based by reference since the #value is being altered.
File
- src/
WebformTokenManager.php, line 339
Class
- WebformTokenManager
- Defines a class to manage token replacement.
Namespace
Drupal\webformCode
public static function validateElement($element, FormStateInterface $form_state, &$complete_form) {
$value = isset($element['#value']) ? $element['#value'] : $element['#default_value'];
if (!mb_strlen($value)) {
return $element;
}
// Remove all suffixes which are not valid.
$pattern = '/\\[((?:webform|current-user)[^]]+)((?::' . implode('|:', static::$suffixes) . ')+)\\]/';
while (preg_match($pattern, $value)) {
$value = preg_replace($pattern, '[\\1]', $value);
}
// Convert all token field deltas to 0 to prevent unexpected
// token validation errors.
$value = preg_replace('/:\\d+:/', ':0:', $value);
$element['#value'] = $value;
token_element_validate($element, $form_state);
}