function view::_build

3.x view.inc view::_build($key)
2.x view.inc view::_build($key)

Internal method to build an individual set of handlers.

Parameters

string $key: The type of handlers (filter etc.) which should be iterated over to build the relationship and query information.

1 call to view::_build()
view::build in includes/view.inc
Build the query for the view.

File

includes/view.inc, line 1079
Provides the view object type and associated methods.

Class

view
An object to contain all of the data to generate a view, plus the member functions to build the view query, execute the query and render the output.

Code

function _build($key) {
  $handlers = &$this->$key;
  foreach ($handlers as $id => $data) {

    if (!empty($handlers[$id]) && is_object($handlers[$id])) {
      $multiple_exposed_input = array(0 => NULL);
      if ($handlers[$id]->multiple_exposed_input()) {
        $multiple_exposed_input = $handlers[$id]->group_multiple_exposed_input($this->exposed_data);
      }
      foreach ($multiple_exposed_input as $group_id) {
        // Give this handler access to the exposed filter input.
        if (!empty($this->exposed_data)) {
          $converted = FALSE;
          if ($handlers[$id]->is_a_group()) {
            $converted = $handlers[$id]->convert_exposed_input($this->exposed_data, $group_id);
            $handlers[$id]->store_group_input($this->exposed_data, $converted);
            if (!$converted) {
              continue;
            }
          }
          $rc = $handlers[$id]->accept_exposed_input($this->exposed_data);
          $handlers[$id]->store_exposed_input($this->exposed_data, $rc);
          if (!$rc) {
            continue;
          }
        }
        $handlers[$id]->set_relationship();
        $handlers[$id]->query($this->display_handler->use_group_by());
      }
    }
  }
}