Добавление E-mail поля в форму

При создании своей формы с помощью Form API в Drupal 7 нету возможности добавить элемент типа email в отличие от Drupal 8. Для решения подобной задачи можно использовать элемент типа textfield и ему добавить функцию валидации для проверки на корректность ввода адреса электронной почты. Валидацию можно выполнить функцией ядра друпала valid_email_address().

Добавляем в форму элемент textfield и задаем ему #element_validate:


$form['email'] = array(
  '#type' => 'textfield',
  '#title' => t('Email'),
  // Задаем функцию валидации элемента
  '#element_validate' => array('mymodule_email_validate'),
);

Описываем функцию валидации:


function mumodule_email_validate($element, &$form_state, $form) {
  if (!valid_email_address($element['#value'])) {
    form_error($element, t('Please enter a valid email address.'));
  }
}