/** * Internal method to build an individual set of handlers. * * @todo Some filter needs this function, even it is internal. * * @param string $key * The type of handlers (filter etc.) which should be iterated over to * build the relationship and query information. */ 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]->multipleExposedInput()) { $multiple_exposed_input = $handlers[$id]->groupMultipleExposedInput($this->exposed_data); } foreach ($multiple_exposed_input as $group_id) { // Give this handler access to the exposed filter input. if (!empty($this->exposed_data)) { if ($handlers[$id]->isAGroup()) { $converted = $handlers[$id]->convertExposedInput($this->exposed_data, $group_id); $handlers[$id]->storeGroupInput($this->exposed_data, $converted); if (!$converted) { continue; } } $rc = $handlers[$id]->acceptExposedInput($this->exposed_data); $handlers[$id]->storeExposedInput($this->exposed_data, $rc); if (!$rc) { continue; } } $handlers[$id]->setRelationship(); $handlers[$id]->query($this->display_handler->useGroupBy()); } } } }