You are here

function views_filters_populate_handler_filter::pre_query in Views filters populate 7

Same name and namespace in other branches
  1. 6 views/views_filters_populate_handler_filter.inc \views_filters_populate_handler_filter::pre_query()

Run before the view is built.

This gives all the handlers some time to set up before any handler has been fully run.

Overrides views_handler::pre_query

File

views/views_filters_populate_handler_filter.inc, line 62
Filter classes.

Class

views_filters_populate_handler_filter
Generic views handler filter to add code to manipulate the query object.

Code

function pre_query() {

  // start with default value
  $value = $this->value;

  // If eexposed, take data from input, as this hasn't reached the views
  // object yet
  if ($this->options['exposed']) {
    $input = $this->view
      ->get_exposed_input();
    $identifier = $this->options['expose']['identifier'];
    if (isset($input[$identifier])) {
      $value = $input[$identifier];
    }
  }
  foreach ($this->options['filters'] as $filter) {
    if ($filter) {

      // attempt to support different types of values over different filters
      // i.e. cck integer value is an array of min, max and value
      if (is_string($this->view->filter[$filter]->value)) {
        $this->view->filter[$filter]->value = $value;
      }
      if (is_array($this->view->filter[$filter]->value) && is_string($this->view->filter[$filter]->value['value'])) {
        $this->view->filter[$filter]->value['value'] = $value;
      }
    }
  }
}