If set to remember exposed input in the session, store it there.

This function is similar to store_exposed_input but modified to work properly when the filter is a group.

File

handlers/views_handler_filter.inc, line 1340
Definitions of views_handler_filter and views_handler_filter_broken.

Class

views_handler_filter
Base class for filters.

Code

public function store_group_input($input, $status) {
  if (!$this
    ->is_a_group() || empty($this->options['group_info']['identifier'])) {
    return TRUE;
  }
  if (empty($this->options['group_info']['remember'])) {
    return;
  }

  // Figure out which display id is responsible for the filters, so we know
  // where to look for session stored values.
  $display_id = $this->view->display_handler
    ->is_defaulted('filters') ? 'default' : $this->view->current_display;

  // False means that we got a setting that means to recuse ourselves, so we
  // should erase whatever happened to be there.
  if ($status === FALSE && isset($_SESSION['views'][$this->view->name][$display_id])) {
    $session =& $_SESSION['views'][$this->view->name][$display_id];
    if (isset($session[$this->options['group_info']['identifier']])) {
      unset($session[$this->options['group_info']['identifier']]);
    }
  }
  if ($status !== FALSE) {
    if (!isset($_SESSION['views'][$this->view->name][$display_id])) {
      $_SESSION['views'][$this->view->name][$display_id] = array();
    }
    $session =& $_SESSION['views'][$this->view->name][$display_id];
    $session[$this->options['group_info']['identifier']] = $input[$this->options['group_info']['identifier']];
  }
}