You are here

function facetapi_facet_filters_form_submit in Facet API 7.2

Same name and namespace in other branches
  1. 6.3 facetapi.admin.inc \facetapi_facet_filters_form_submit()
  2. 7 facetapi.admin.inc \facetapi_facet_filters_form_submit()

Form submission handler for facetapi_facet_filters_form().

1 string reference to 'facetapi_facet_filters_form_submit'
facetapi_facet_filters_form in ./facetapi.admin.inc
Form constructor for the facet filter settings form.

File

./facetapi.admin.inc, line 1042
Admin page callbacks for the Facet API module.

Code

function facetapi_facet_filters_form_submit($form, &$form_state) {

  // Pulls variables for code readability.
  $adapter = $form['#facetapi']['adapter'];
  $realm = $form['#facetapi']['realm'];
  $facet = $form['#facetapi']['facet'];
  $settings = $form['#facetapi']['settings'];

  // Merges passed settings in with the settings object.
  $form_state_values_settings = $form_state['values']['settings'];

  // Go though all filters and if filter is enabled save its form settings.
  foreach ($form_state_values_settings['filters'] as $filter_name => $filter_settings) {
    if ($filter_settings['status'] && !empty($form_state['values'][$filter_name])) {
      $form_state_values_settings += $form_state['values'][$filter_name];
    }
  }
  $settings->settings = array_merge($settings->settings, $form_state_values_settings);

  // Saves the configuration options.
  if (FALSE !== ctools_export_crud_save('facetapi', $settings)) {
    drupal_set_message(t('The configuration options have been saved.'));
  }
  else {
    drupal_set_message(t('Error saving configuration options.'), 'error');
  }

  // Redirects back to the realm settings page if necessary.
  $clicked = $form_state['clicked_button']['#value'];
  if (t('Save and go back to realm settings') == $clicked) {
    $form_state['redirect'] = $adapter
      ->getPath($realm['name']);
  }
}