You are here

function facetapi_multiselect_form_submit in Facetapi Multiselect 7

Submit handler for facetapi_multiselect_form().

File

./facetapi_multiselect.module, line 138
Displays search facets as a multiselect widget.

Code

function facetapi_multiselect_form_submit($form, &$form_state) {

  // Remove all the select element's #options from the current list of facets,
  // and add back only the ones that were submitted with the form.
  $exclude = array(
    'q',
    'page',
  );
  $query = drupal_get_query_parameters(NULL, $exclude);
  $original_f = isset($query['f']) ? $query['f'] : array();
  $query['f'] = array_diff($original_f, facetapi_multiple_get_options($form['facets']['#options']));
  foreach ($form_state['values']['facets'] as $facet) {
    if ($facet) {
      $query['f'][] = $facet;
    }
  }
  $query['f'] = array_values($query['f']);

  // Redirect to the new URL, with the new set of active facets.
  $form_state['redirect'] = array(
    current_path(),
    array(
      'query' => $query,
    ),
  );
}