You are here

function ulogin_settings_form_validate in uLogin (advanced version) 7

Form validation handler for the ulogin admin settings form.

File

./ulogin.admin.inc, line 315
Administration pages functions for uLogin module.

Code

function ulogin_settings_form_validate($form, &$form_state) {
  $values =& $form_state['values'];
  $providers = _ulogin_providers_list();
  $fields = _ulogin_fields_list();

  // Process 'main' checkboxes and remove them.
  $providers_main_values = array();
  foreach (array_keys($providers) as $provider_id) {
    $providers_main_values[$provider_id] = $values['ulogin_provider_' . $provider_id . '_main'] ? $provider_id : '';
    unset($values['ulogin_provider_' . $provider_id . '_main']);
  }

  // Remove weights so they are not saved as variables.
  $providers_weights = array();
  foreach (array_keys($providers) as $provider_id) {
    $providers_weights[$provider_id] = $values['ulogin_provider_' . $provider_id . '_weight'];
    unset($values['ulogin_provider_' . $provider_id . '_weight']);
  }
  asort($providers_weights);
  $providers_enabled_values = $values['ulogin_providers'];
  unset($values['ulogin_providers']);
  $values['ulogin_providers_enabled'] = array();
  $values['ulogin_providers_main'] = array();
  foreach (array_keys($providers_weights) as $provider_id) {
    $values['ulogin_providers_enabled'][$provider_id] = $providers_enabled_values[$provider_id];
    $values['ulogin_providers_main'][$provider_id] = $providers_main_values[$provider_id];
  }

  // Process 'required' checkboxes and remove them.
  $fields_required_values = array();
  foreach (array_keys($fields) as $field_id) {
    $fields_required_values[$field_id] = $values['ulogin_field_' . $field_id . '_required'] ? $field_id : '';
    unset($values['ulogin_field_' . $field_id . '_required']);
  }
  $fields_enabled_values = $values['ulogin_fields'];
  unset($values['ulogin_fields']);
  $values['ulogin_fields_required'] = $fields_required_values;
  $values['ulogin_fields_optional'] = array_diff_assoc($fields_enabled_values, $fields_required_values);
}