function profile_field_form_submit

Process profile_field_form submissions.

File

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

Code

function profile_field_form_submit($form, &$form_state) {
  if (!isset($form_state['values']['options'])) {
    $form_state['values']['options'] = '';
  }
  if (!isset($form_state['values']['page'])) {
    $form_state['values']['page'] = '';
  }

  // Remove all elements that are not profile_field columns.
  $values = array_intersect_key($form_state['values'], array_flip(array(
    'type',
    'category',
    'title',
    'name',
    'explanation',
    'visibility',
    'page',
    'weight',
    'autocomplete',
    'required',
    'register',
    'options',
  )));
  if (!isset($form_state['values']['fid'])) {
    db_insert('profile_field')
      ->fields($values)
      ->execute();
    drupal_set_message(t('The field has been created.'));
    watchdog('profile', 'Profile field %field added under category %category.', array(
      '%field' => $form_state['values']['title'],
      '%category' => $form_state['values']['category'],
    ), WATCHDOG_NOTICE, l(t('view'), 'admin/config/people/profile'));
  }
  else {
    db_update('profile_field')
      ->fields($values)
      ->condition('fid', $form_state['values']['fid'])
      ->execute();
    drupal_set_message(t('The field has been updated.'));
  }
  cache_clear_all();
  menu_rebuild();
  $form_state['redirect'] = 'admin/config/people/profile';
  return;
}