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,
),
);
}