You are here

public function views_handler_filter_numeric::accept_exposed_input in Views (for Drupal 7) 7.3

Same name and namespace in other branches
  1. 6.3 handlers/views_handler_filter_numeric.inc \views_handler_filter_numeric::accept_exposed_input()
  2. 6.2 handlers/views_handler_filter_numeric.inc \views_handler_filter_numeric::accept_exposed_input()

Do some minor translation of the exposed input.

Overrides views_handler_filter::accept_exposed_input

1 call to views_handler_filter_numeric::accept_exposed_input()
views_handler_filter_date::accept_exposed_input in handlers/views_handler_filter_date.inc
Do some minor translation of the exposed input.
1 method overrides views_handler_filter_numeric::accept_exposed_input()
views_handler_filter_date::accept_exposed_input in handlers/views_handler_filter_date.inc
Do some minor translation of the exposed input.

File

handlers/views_handler_filter_numeric.inc, line 368
Definition of views_handler_filter_numeric.

Class

views_handler_filter_numeric
Simple filter to handle greater than/less than filters

Code

public function accept_exposed_input($input) {
  if (empty($this->options['exposed'])) {
    return TRUE;
  }

  // Rewrite the input value so that it's in the correct format so that the
  // parent gets the right data.
  if (!empty($this->options['expose']['identifier'])) {
    $value =& $input[$this->options['expose']['identifier']];
    if (!is_array($value)) {
      $value = array(
        'value' => $value,
      );
    }
    if (!empty($this->options['expose']['use_operator']) && !empty($this->options['expose']['operator_id']) && isset($input[$this->options['expose']['operator_id']])) {
      if ($input[$this->options['expose']['operator_id']] === 'empty' || $input[$this->options['expose']['operator_id']] === 'not empty') {

        // Parent method will expect a boolean value. We don't ask for a value
        // so we'll force "Yes".
        $value['value'] = 1;
      }
    }
  }
  $rc = parent::accept_exposed_input($input);
  if (empty($this->options['expose']['required'])) {

    // We have to do some of our own checking for non-required filters.
    $info = $this
      ->operators();
    if (!empty($info[$this->operator]['values'])) {
      switch ($info[$this->operator]['values']) {
        case 1:
          if ($value['value'] === '') {
            return FALSE;
          }
          break;
        case 2:
          if ($value['min'] === '' && $value['max'] === '') {
            return FALSE;
          }
          break;
      }
    }
  }
  return $rc;
}