You are here

function realname_registration_settings_validate in Realname registration 7.2

Same name and namespace in other branches
  1. 6.2 realname_registration.admin.inc \realname_registration_settings_validate()
  2. 7 realname_registration.admin.inc \realname_registration_settings_validate()
1 string reference to 'realname_registration_settings_validate'
realname_registration_settings_form in ./realname_registration.admin.inc
Form builder;

File

./realname_registration.admin.inc, line 208
Admin page callbacks for the realname_registration module.

Code

function realname_registration_settings_validate($form, &$form_state) {
  $err_pretext = t('The field name') . ', <em>';
  $err_req = '</em>, ' . t("you've provided must be required.");
  $err_unknown = '</em>, ' . t("you've provided either does not exist or is not associated with the corresponding entity.");
  $err_textfield = '</em>, ' . t("must use textfield widget.");
  $err_register = '</em>, ' . t("must be displayed on the registration form.");
  $err_profile2_req = t("You must specify a profile2 machine name for the field,") . ' <em>';

  // If we are told to use profile2 fields to store values, we need to know which profile2 type.
  if (module_exists('profile2')) {
    if ($form_state['values']['realname_registration_use_profile2_firstname_field'] && empty($form_state['values']['realname_registration_profile2_firstname_field_profile_name'])) {
      form_set_error('realname_registration_profile2_firstname_field_profile_name', $err_profile2_req . $form_state['values']['realname_registration_firstname_field'] . '</em>');
    }
    if ($form_state['values']['realname_registration_use_profile2_middlename_field'] && empty($form_state['values']['realname_registration_profile2_middlename_field_profile_name'])) {
      form_set_error('realname_registration_profile2_middlename_field_profile_name', $err_profile2_req . $form_state['values']['realname_registration_middlename_field'] . '</em>');
    }
    if ($form_state['values']['realname_registration_use_profile2_lastname_field'] && empty($form_state['values']['realname_registration_profile2_lastname_field_profile_name'])) {
      form_set_error('realname_registration_profile2_lastname_field_profile_name', $err_profile2_req . $form_state['values']['realname_registration_firstname_field'] . '</em>');
    }
  }

  // Validate the first name field.
  if (module_exists('profile2') && $form_state['values']['realname_registration_use_profile2_firstname_field']) {
    $firstname_field = field_info_field($form_state['values']['realname_registration_firstname_field']);
    $match = FALSE;
    foreach (profile2_get_types() as $type_name => $profile_type) {
      if ($profile_type->data['registration'] && is_array($firstname_field['bundles']['profile2'])) {
        foreach ($firstname_field['bundles']['profile2'] as $key => $value) {
          if ($value == $profile_type->type) {
            $match = TRUE;
          }
        }
      }
    }
    if (!$match) {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_register);
    }
  }
  if (module_exists('profile2') && $form_state['values']['realname_registration_use_profile2_firstname_field']) {
    $firstname_instance = field_info_instance('profile2', $form_state['values']['realname_registration_firstname_field'], $form_state['values']['realname_registration_profile2_firstname_field_profile_name']);
  }
  else {
    $firstname_instance = field_info_instance('user', $form_state['values']['realname_registration_firstname_field'], 'user');
  }
  if (!isset($firstname_instance)) {
    form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_unknown);
  }
  if ($firstname_instance['widget']['type'] != 'text_textfield') {
    form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_textfield);
  }
  if ($firstname_instance['required'] != 1) {
    form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_req);
  }

  // Validate the middle name field if it is used.
  if (module_exists('profile2') && $form_state['values']['realname_registration_use_profile2_middlename_field']) {
    $middlename_field = field_info_field($form_state['values']['realname_registration_middlename_field']);
    $match = FALSE;
    foreach (profile2_get_types() as $type_name => $profile_type) {
      if ($profile_type->data['registration'] && is_array($middlename_field['bundles']['profile2'])) {
        foreach ($middlename_field['bundles']['profile2'] as $key => $value) {
          if ($value == $profile_type->type) {
            $match = TRUE;
          }
        }
      }
    }
    if (!$match) {
      form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_register);
    }
  }
  if (!empty($form_state['values']['realname_registration_middlename_field'])) {
    if (module_exists('profile2') && $form_state['values']['realname_registration_use_profile2_middlename_field']) {
      $middlename_instance = field_info_instance('profile2', $form_state['values']['realname_registration_middlename_field'], $form_state['values']['realname_registration_profile2_middlename_field_profile_name']);
    }
    else {
      $middlename_instance = field_info_instance('user', $form_state['values']['realname_registration_middlename_field'], 'user');
    }
    if (!isset($middlename_instance)) {
      form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_unknown);
    }
    if ($middlename_instance['widget']['type'] != 'text_textfield') {
      form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_textfield);
    }
  }
  else {

    // If there is no middle name field provided, we can't base usernames off the middle initial.
    if ($form_state['values']['realname_registration_format'] == 2 || $form_state['values']['realname_registration_format'] == 3) {
      form_set_error('realname_registration_format', t('A valid middle name field is required for this username format.'));
    }
  }

  // Validate the last name field.
  if (module_exists('profile2') && $form_state['values']['realname_registration_use_profile2_lastname_field']) {
    $lastname_field = field_info_field($form_state['values']['realname_registration_lastname_field']);
    $match = FALSE;
    foreach (profile2_get_types() as $type_name => $profile_type) {
      if ($profile_type->data['registration'] && is_array($lastname_field['bundles']['profile2'])) {
        foreach ($lastname_field['bundles']['profile2'] as $key => $value) {
          if ($value == $profile_type->type) {
            $match = TRUE;
          }
        }
      }
    }
    if (!$match) {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_register);
    }
  }
  if (module_exists('profile2') && $form_state['values']['realname_registration_use_profile2_lastname_field']) {
    $lastname_instance = field_info_instance('profile2', $form_state['values']['realname_registration_lastname_field'], $form_state['values']['realname_registration_profile2_lastname_field_profile_name']);
  }
  else {
    $lastname_instance = field_info_instance('user', $form_state['values']['realname_registration_lastname_field'], 'user');
  }
  if (!isset($lastname_instance)) {
    form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_unknown);
  }
  if ($lastname_instance['widget']['type'] != 'text_textfield') {
    form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_textfield);
  }
  if ($lastname_instance['required'] != 1) {
    form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_req);
  }
}