function PetPreviewForm::pet_validate_recipients in Previewable email templates 8
Same name and namespace in other branches
- 8.4 src/Form/PetPreviewForm.php \Drupal\pet\Form\PetPreviewForm::pet_validate_recipients()
Validate existence of a non-empty recipient list free of email errors.
1 call to PetPreviewForm::pet_validate_recipients()
- PetPreviewForm::validateForm in src/
Form/ PetPreviewForm.php - Form validation handler.
File
- src/
Form/ PetPreviewForm.php, line 316
Class
Namespace
Drupal\pet\FormCode
function pet_validate_recipients(FormStateInterface $form_state, &$recipients) {
$errors = [];
$recipients = [];
if ($form_state
->getValue('recipient_callback')) {
// Get recipients from callback
$mails = pet_callback_recipients($form_state);
if (!is_array($mails)) {
$errors[] = t('There is no recipient callback defined for this template or it is not returning an array.');
return $errors;
}
}
else {
// Get recipients from form field
$mails = pet_parse_mails($form_state
->getValue('recipients'));
}
// Validate and build recipient array with uid on the fly
foreach ($mails as $mail) {
if (!\Drupal::service('email.validator')
->isValid($mail)) {
$errors[] = t('Invalid email address found: %mail.', [
'%mail' => $mail,
]);
}
else {
$recipients[] = [
'mail' => $mail,
'uid' => pet_lookup_uid($mail),
];
}
}
// Check for no recipients
if (empty($errors) && count($recipients) < 1) {
$errors[] = t('There are no recipients for this email.');
}
return $errors;
}