You are here

function quickbar_form_submit in Quickbar 7

Same name and namespace in other branches
  1. 6 quickbar.admin.inc \quickbar_form_submit()
  2. 7.2 quickbar.admin.inc \quickbar_form_submit()

Submit handler for quickbar_form()

See also

quickbar_form()

File

./quickbar.admin.inc, line 103
Handles quickbar administration

Code

function quickbar_form_submit(&$form, &$form_state) {

  // Set default variables;
  $roles = user_roles();
  $roles_machine_names = _quickbar_role_machine_names($roles);
  $weights = array();
  $menus = array();
  $machine_name_setting = $form_state['values']['advanced']['machine_names'];
  $previous_machine_name_setting = variable_get('quickbar_use_machine_names', NULL);

  // If switching between using rids and using machine names make sure all the
  // settings get transferred over.
  if (!is_null($previous_machine_name_setting) && $previous_machine_name_setting != $machine_name_setting) {
    if ($machine_name_setting) {
      $convert_from = $roles;
      $convert_to = $roles_machine_names;
    }
    else {
      $convert_from = $roles_machine_names;
      $convert_to = $roles;
    }
    foreach ($convert_from as $key => $value) {
      $new_key = array_search($value, $convert_to);
      if ($settings = variable_get('quickbar_settings_' . $key, '')) {
        variable_set('quickbar_settings_' . $new_key, $settings);
        variable_del('quickbar_settings_' . $key);
      }
      $menus[$new_key] = $form_state['values']['toolbar:' . $key]['menu'];
      $weights[$new_key] = $form_state['values']['toolbar:' . $key]['weight'];
    }
  }
  else {
    if (is_null($previous_machine_name_setting) && $machine_name_setting) {
      foreach ($roles as $key => $value) {
        $new_key = array_search($value, $roles_machine_names);
        $menus[$new_key] = $form_state['values']['toolbar:' . $key]['menu'];
        $weights[$new_key] = $form_state['values']['toolbar:' . $key]['weight'];
      }
    }
    else {
      if ($machine_name_setting) {
        $roles = $roles_machine_names;
      }
      foreach ($roles as $rid => $name) {
        $menus[$rid] = $form_state['values']['toolbar:' . $rid]['menu'];
        $weights[$rid] = $form_state['values']['toolbar:' . $rid]['weight'];
      }
    }
  }
  variable_set('quickbar_role_weights', $weights);
  variable_set('quickbar_role_menus', $menus);
  variable_set('quickbar_use_machine_names', $machine_name_setting);
  drupal_set_message(t('Your configuration has been saved.'));
}