You are here

function realname_registration_settings_validate in Realname registration 6.2

Same name and namespace in other branches
  1. 7.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 209
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_register = '</em>, ' . t("you've provided must be displayed on the registration form.");
  $err_req = '</em>, ' . t("you've provided must be required.");
  $err_unknown = '</em>, ' . t("you've provided either does not exist or is not a profile field.");
  $err_textfield = '</em>, ' . t('must use textfield widget.');
  $err_content_profile_req = t("You must specify a content profile machine name for the field, ") . '<em>';

  // If content_permissions module is enabled, we must ensure anonymous users can edit the fields on registration.
  if (module_exists('content_permissions') && module_exists('content_profile')) {
    realname_registration_check_content_permissions($form, $form_state);
  }

  // If we are told to use content profile fields to store values, we need to know which content profile node type.
  if ($form_state['values']['realname_registration_use_content_profile_firstname_field'] && empty($form_state['values']['realname_registration_content_profile_firstname_field_node'])) {
    form_set_error('realname_registration_content_profile_firstname_field_node', $err_content_profile_req . $form_state['values']['realname_registration_firstname_field'] . '</em>');
  }
  if ($form_state['values']['realname_registration_use_content_profile_middlename_field'] && empty($form_state['values']['realname_registration_content_profile_middlename_field_node'])) {
    form_set_error('realname_registration_content_profile_middlename_field_node', $err_content_profile_req . $form_state['values']['realname_registration_middlename_field'] . '</em>');
  }
  if ($form_state['values']['realname_registration_use_content_profile_lastname_field'] && empty($form_state['values']['realname_registration_content_profile_lastname_field_node'])) {
    form_set_error('realname_registration_content_profile_lastname_field_node', $err_content_profile_req . $form_state['values']['realname_registration_lastname_field'] . '</em>');
  }

  // Validation for the first name field.
  if (!$form_state['values']['realname_registration_use_content_profile_firstname_field']) {
    $firstname_field = db_fetch_object(db_query("SELECT type, required, register, category FROM {profile_fields} WHERE name = '%s'", check_plain($form_state['values']['realname_registration_firstname_field'])));
    if (empty($firstname_field)) {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_unknown);
    }
    if ($firstname_field->type != 'textfield') {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_textfield);
    }
    if ($firstname_field->required != 1) {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_req);
    }
    if ($firstname_field->register != 1) {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_register);
    }
    if ($firstname_field->category) {
      $form_state['values']['realname_registration_firstname_field_category'] = $firstname_field->category;
    }
  }
  else {
    $sql = "SELECT i.field_name, i.type_name, i.widget_type, c.required " . "FROM {content_node_field_instance} AS i " . "LEFT JOIN {content_node_field} AS c " . "ON i.field_name = c.field_name " . "WHERE i.field_name = '%s' " . "AND i.type_name = '%s'";
    $firstname_field = db_fetch_object(db_query($sql, $form_state['values']['realname_registration_firstname_field'], check_plain($form_state['values']['realname_registration_content_profile_firstname_field_node'])));
    if (empty($firstname_field)) {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_unknown);
    }
    if ($firstname_field->widget_type != 'text_textfield') {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_textfield);
    }
    if ($firstname_field->required != 1) {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_req);
    }
    $types = array_keys(content_profile_get_types('names', 'registration_use'));
    $match = FALSE;
    foreach ($types as $type) {
      if ($type == $firstname_field->type_name) {
        $match = TRUE;
      }
    }
    if (!$match) {
      form_set_error('realname_registration_firstname_field', $err_pretext . $form_state['values']['realname_registration_firstname_field'] . $err_register);
    }
  }

  // Validation for the middle name field.
  if (!empty($form_state['values']['realname_registration_middlename_field'])) {
    if (!$form_state['values']['realname_registration_use_content_profile_middlename_field']) {
      $middlename_field = db_fetch_object(db_query("SELECT type, required, register, category FROM {profile_fields} WHERE name = '%s'", check_plain($form_state['values']['realname_registration_middlename_field'])));
      if (empty($middlename_field)) {
        form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_unknown);
      }
      if ($middlename_field->type != 'textfield') {
        form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_textfield);
      }
      if ($middlename_field->register != 1) {
        form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_register);
      }
      if ($middlename_field->category) {
        $form_state['values']['realname_registration_middlename_field_category'] = $middlename_field->category;
      }
    }
    else {
      $sql = "SELECT i.field_name, i.type_name, i.widget_type, c.required " . "FROM {content_node_field_instance} AS i " . "LEFT JOIN {content_node_field} AS c " . "ON i.field_name = c.field_name " . "WHERE i.field_name = '%s' " . "AND i.type_name = '%s'";
      $middlename_field = db_fetch_object(db_query($sql, $form_state['values']['realname_registration_middlename_field'], check_plain($form_state['values']['realname_registration_content_profile_middlename_field_node'])));
      if (empty($middlename_field)) {
        form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_unknown);
      }
      if ($middlename_field->widget_type != 'text_textfield') {
        form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_textfield);
      }
      $types = array_keys(content_profile_get_types('names', 'registration_use'));
      $match = FALSE;
      foreach ($types as $type) {
        if ($type == $middlename_field->type_name) {
          $match = TRUE;
        }
      }
      if (!$match) {
        form_set_error('realname_registration_middlename_field', $err_pretext . $form_state['values']['realname_registration_middlename_field'] . $err_register);
      }
    }
  }

  // Validation for the last name field.
  if (!$form_state['values']['realname_registration_use_content_profile_lastname_field']) {
    $lastname_field = db_fetch_object(db_query("SELECT type, required, register, category FROM {profile_fields} WHERE name = '%s'", check_plain($form_state['values']['realname_registration_lastname_field'])));
    if (empty($lastname_field)) {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_unknown);
    }
    if ($lastname_field->required != 1) {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_req);
    }
    if ($lastname_field->type != 'textfield') {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_textfield);
    }
    if ($lastname_field->register != 1) {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_register);
    }
    if ($lastname_field->category) {
      $form_state['values']['realname_registration_lastname_field_category'] = $lastname_field->category;
    }
  }
  else {
    $sql = "SELECT i.field_name, i.type_name, i.widget_type, c.required " . "FROM {content_node_field_instance} AS i " . "LEFT JOIN {content_node_field} AS c " . "ON i.field_name = c.field_name " . "WHERE i.field_name = '%s' " . "AND i.type_name = '%s'";
    $lastname_field = db_fetch_object(db_query($sql, $form_state['values']['realname_registration_lastname_field'], check_plain($form_state['values']['realname_registration_content_profile_lastname_field_node'])));
    if (empty($lastname_field)) {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_unknown);
    }
    if ($lastname_field->required != 1) {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_req);
    }
    if ($lastname_field->widget_type != 'text_textfield') {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_textfield);
    }
    $types = array_keys(content_profile_get_types('names', 'registration_use'));
    $match = FALSE;
    foreach ($types as $type) {
      if ($type == $lastname_field->type_name) {
        $match = TRUE;
      }
    }
    if (!$match) {
      form_set_error('realname_registration_lastname_field', $err_pretext . $form_state['values']['realname_registration_lastname_field'] . $err_register);
    }
  }
}