function 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 1142

Class

view
An object to contain all of the data to generate a 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());
            }
        }
    }
}