Submit handler for the HTML tag validation.
function validateTags(array $form, FormStateInterface $form_state) {
$validation_messages = array();
$field_count = 0;
foreach ($form_state
->getValues() as $field => $value) {
if (is_array($value) && isset($value['translation'])) {
if (!empty($value['translation'])) {
$tags_validated = $this
->compareHTMLTags($value['source'], $value['translation']);
if ($tags_validated) {
$validation_messages[$field] = $tags_validated;
$field_count++;
}
}
}
}
if ($field_count > 0) {
$this
->messenger()
->addError(t('HTML tag validation failed for @count field(s).', array(
'@count' => $field_count,
)));
}
else {
$this
->messenger()
->addStatus(t('Validation completed successfully.'));
}
$form_state
->set('validation_messages', $validation_messages);
$request = \Drupal::request();
$url = $this->entity
->toUrl('canonical');
if ($request->query
->has('destination')) {
$destination = $request->query
->get('destination');
$request->query
->remove('destination');
$url
->setOption('query', array(
'destination' => $destination,
));
}
$form_state
->setRedirectUrl($url);
$form_state
->setRebuild();
}