function availability_calendars_admin_settings_submit in Availability Calendars 7.2
Same name and namespace in other branches
- 6.2 availability_calendars.admin.inc \availability_calendars_admin_settings_submit()
 
Form submit callback for the admin_settings form.
Processes the submitted form. The states are non-system settings, and are handled here. Other values are handled by the default system settings form handling.
_state
Parameters
array $form:
1 string reference to 'availability_calendars_admin_settings_submit'
- availability_calendars_admin_settings in ./
availability_calendars.admin.inc  - Retrieve form callback for the admin/config/availability-calendars/settings page.
 
File
- ./
availability_calendars.admin.inc, line 254  
Code
function availability_calendars_admin_settings_submit($form, &$form_state) {
  $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
  if ($op == t('Save configuration')) {
    // Process the state settings here and do not pass them to the default submit handler for system settings forms.
    $element = $form_state['values']['states'];
    unset($form_state['values']['states']);
    // Extract the states.
    $states = array();
    foreach ($element as $i => $state_fields) {
      // Only add non-empty labels.
      if (!empty($state_fields['label'])) {
        if (empty($state_fields['css_class'])) {
          $state_fields['css_class'] = availability_calendars_string_to_safe_id($state_fields['label']);
        }
        $states[$state_fields['css_class']] = array(
          'css_class' => $state_fields['css_class'],
          'label' => $state_fields['label'],
          'weight' => $state_fields['weight'],
          'is_available' => $state_fields['is_available'],
        );
      }
    }
    $default = $form_state['values']['defaultstatus'];
    if (!empty($element[$default]['css_class'])) {
      $form_state['values']['availability_calendars_settings_system']['defaultstatus'] = $element[$default]['css_class'];
    }
    // Finally, save the states.
    availability_calendars_update_states($states);
    // Remove all per node settings if the setting changes from yes to no.
    if ($form_state['values']['availability_calendars_settings_system_pernodeoverride'] == 0) {
      $settings = availability_calendars_get_settings();
      if ($settings->pernodeoverride) {
        availability_calendars_delete_node_settings();
      }
    }
    // Clean-up the representation of supported content types before storing as a variable.
    $form_state['values']['availability_calendars_settings_content_types'] = array_keys(array_filter($form_state['values']['availability_calendars_settings_content_types']));
  }
}