You are here

function availability_calendar_admin_settings_submit in Availability Calendars 7.3

Same name and namespace in other branches
  1. 7.5 availability_calendar.admin.inc \availability_calendar_admin_settings_submit()
  2. 7.4 availability_calendar.admin.inc \availability_calendar_admin_settings_submit()

Form submit callback for the admin_settings form.

Processes the submitted form. The states are handled here.

_state

Parameters

array $form:

1 string reference to 'availability_calendar_admin_settings_submit'
availability_calendar_admin_settings in ./availability_calendar.admin.inc
Retrieve form callback for the admin/config/availability-calendar/settings page.

File

./availability_calendar.admin.inc, line 190

Code

function availability_calendar_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'] = drupal_clean_css_identifier("cal-{$state_fields['label']}");
        }
        $states[] = array(
          'sid' => !empty($state_fields['sid']) ? (int) $state_fields['sid'] : NULL,
          'css_class' => $state_fields['css_class'],
          'label' => $state_fields['label'],
          'weight' => $state_fields['weight'],
          'is_available' => $state_fields['is_available'],
        );
      }
    }

    // Finally, save the states.
    availability_calendar_update_states($states);
  }
}