You are here

function biblio_form_filter_submit in Bibliography Module 6.2

Same name and namespace in other branches
  1. 5 biblio.module \biblio_form_filter_submit()
  2. 6 biblio.pages.inc \biblio_form_filter_submit()
  3. 7 includes/biblio.pages.inc \biblio_form_filter_submit()
  4. 7.2 includes/biblio.pages.inc \biblio_form_filter_submit()

Form submission handler for biblio_form_filter().

File

includes/biblio.pages.inc, line 1132
Functions in the biblio module related to filtering and page generation.

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'):
      if (isset($form_state['values']['filter'])) {
        $filter = $form_state['values']['filter'];

        // Flatten the options array to accommodate hierarchical/nested options.
        if (isset($filters[$filter]['options'])) {
          $flat_options = form_options_flatten($filters[$filter]['options']);
        }
        if (isset($flat_options[$form_state['values'][$filter]])) {
          $_SESSION['biblio_filter'][] = array(
            $filter,
            $form_state['values'][$filter],
          );
          $base = variable_get('biblio_base', 'biblio');
          drupal_goto($base);
        }
      }
      break;
    case t('Undo'):
      array_pop($_SESSION['biblio_filter']);
      break;
    case t('Reset'):
      $_SESSION['biblio_filter'] = array();
      break;
  }
}