You are here

function profile_field_form_validate in Drupal 6

Same name and namespace in other branches
  1. 4 modules/profile.module \profile_field_form_validate()
  2. 5 modules/profile/profile.module \profile_field_form_validate()
  3. 7 modules/profile/profile.admin.inc \profile_field_form_validate()

Validate profile_field_form submissions.

File

modules/profile/profile.admin.inc, line 290
Administrative page callbacks for the profile module.

Code

function profile_field_form_validate($form, &$form_state) {

  // Validate the 'field name':
  if (preg_match('/[^a-zA-Z0-9_-]/', $form_state['values']['name'])) {
    form_set_error('name', t('The specified form name contains one or more illegal characters. Spaces or any other special characters except dash (-) and underscore (_) are not allowed.'));
  }
  if (in_array($form_state['values']['name'], user_fields())) {
    form_set_error('name', t('The specified form name is reserved for use by Drupal.'));
  }

  // Validate the category:
  if (!$form_state['values']['category']) {
    form_set_error('category', t('You must enter a category.'));
  }
  if (strtolower($form_state['values']['category']) == 'account') {
    form_set_error('category', t('The specified category name is reserved for use by Drupal.'));
  }
  $args1 = array(
    $form_state['values']['title'],
    $form_state['values']['category'],
  );
  $args2 = array(
    $form_state['values']['name'],
  );
  $query_suffix = '';
  if (isset($form_state['values']['fid'])) {
    $args1[] = $args2[] = $form_state['values']['fid'];
    $query_suffix = ' AND fid != %d';
  }
  if (db_result(db_query("SELECT fid FROM {profile_fields} WHERE title = '%s' AND category = '%s'" . $query_suffix, $args1))) {
    form_set_error('title', t('The specified title is already in use.'));
  }
  if (db_result(db_query("SELECT fid FROM {profile_fields} WHERE name = '%s'" . $query_suffix, $args2))) {
    form_set_error('name', t('The specified name is already in use.'));
  }
  if ($form_state['values']['visibility'] == PROFILE_HIDDEN) {
    if ($form_state['values']['required']) {
      form_set_error('required', t('A hidden field cannot be required.'));
    }
    if ($form_state['values']['register']) {
      form_set_error('register', t('A hidden field cannot be set to visible on the user registration form.'));
    }
  }
}