function biblio_form_filter_submit in Bibliography Module 7
Same name and namespace in other branches
- 5 biblio.module \biblio_form_filter_submit()
- 6.2 includes/biblio.pages.inc \biblio_form_filter_submit()
- 6 biblio.pages.inc \biblio_form_filter_submit()
- 7.2 includes/biblio.pages.inc \biblio_form_filter_submit()
_state
Parameters
$form:
1 string reference to 'biblio_form_filter_submit'
- biblio_form_filter in includes/
biblio.pages.inc
File
- includes/
biblio.pages.inc, line 1173 - Copyright (C) 2006-2011 Ron Jerome.
Code
function biblio_form_filter_submit($form, &$form_state) {
// If the search filter was set, remove it now.
if (_get_biblio_search_filter()) {
$_SESSION['biblio_filter'] = array();
}
$op = $form_state['values']['op'];
$filters = _get_biblio_filters();
switch ($op) {
case t('Filter'):
case t('Refine'):
$uri = drupal_parse_url(request_uri());
$uri['path'] = variable_get('biblio_base', 'biblio');
foreach ($filters as $filter => $options) {
if (isset($form_state['values'][$filter]) && $form_state['values'][$filter] != 'any') {
// Flatten the options array to accommodate hierarchical/nested options.
$flat_options = form_options_flatten($filters[$filter]['options']);
// Only accept valid selections offered on the dropdown, block bad input.
if (isset($flat_options[$form_state['values'][$filter]])) {
$_SESSION['biblio_filter'][] = array(
$filter => $form_state['values'][$filter],
);
$uri['query']['f'][$filter] = $form_state['values'][$filter];
}
}
}
$form_state['redirect'] = array(
$uri['path'],
$uri,
);
break;
case t('Undo'):
array_pop($_SESSION['biblio_filter']);
break;
case t('Reset'):
$_SESSION['biblio_filter'] = array();
break;
}
}