Same name and namespace in other branches
  1. 6.x-3.x includes/view.inc \view::_build()

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 1128
views_objects Objects that represent a View or part of a view

Class

view

Code

public 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_input, $rc);
          if (!$rc) {
            continue;
          }
        }
        $handlers[$id]
          ->set_relationship();
        $handlers[$id]
          ->query($this->display_handler
          ->use_group_by());
      }
    }
  }
}