Same name and namespace in other branches
  1. 4.7.x modules/system.module \system_settings_form_submit()
  2. 6.x modules/system/system.module \system_settings_form_submit()
  3. 7.x modules/system/system.module \system_settings_form_submit()

Execute the system_settings_form.

If you want node type configure style handling of your checkboxes, add an array_filter value to your form.

File

modules/system/system.module, line 1112
Configuration system that lets administrators modify the workings of the site.

Code

function system_settings_form_submit($form_id, $form_values) {
  $op = isset($form_values['op']) ? $form_values['op'] : '';

  // Exclude unnecessary elements.
  unset($form_values['submit'], $form_values['reset'], $form_values['form_id'], $form_values['op'], $form_values['form_token']);
  foreach ($form_values as $key => $value) {
    if ($op == t('Reset to defaults')) {
      variable_del($key);
    }
    else {
      if (is_array($value) && isset($form_values['array_filter'])) {
        $value = array_keys(array_filter($value));
      }
      variable_set($key, $value);
    }
  }
  if ($op == t('Reset to defaults')) {
    drupal_set_message(t('The configuration options have been reset to their default values.'));
  }
  else {
    drupal_set_message(t('The configuration options have been saved.'));
  }
  menu_rebuild();
}