base_table = $base_table; $this->base_field = $base_field; $this->unpack_options($this->options, $options); } /** * Generate a query and a countquery from all of the information supplied * to the object. * * @param $get_count * Provide a countquery if this is true, otherwise provide a normal query. */ function query($get_count = FALSE) { } /** * Let modules modify the query just prior to finalizing it. */ function alter(&$view) { } /** * Builds the necessary info to execute the query. */ function build(&$view) { } /** * Executes the query and fills the associated view object with according * values. * * Values to set: $view->result, $view->total_rows, $view->execute_time, * $view->pager['current_page']. */ function execute(&$view) { } /** * Add a signature to the query, if such a thing is feasible. * * This signature is something that can be used when perusing query logs to * discern where particular queries might be coming from. */ function add_signature(&$view) { } /** * Get aggregation info for group by queries. * * If NULL, aggregation is not allowed. */ function get_aggregation_info() { } /** * Add settings for the ui. */ function options_form(&$form, &$form_state) { } function options_validate(&$form, &$form_state) { } function options_submit(&$form, &$form_state) { } function summary_title() { return t('Settings'); } /** * Set a LIMIT on the query, specifying a maximum number of results. */ function set_limit($limit) { $this->limit = $limit; } /** * Set an OFFSET on the query, specifying a number of results to skip */ function set_offset($offset) { $this->offset = $offset; } /** * Render the pager, if necessary. */ function render_pager($exposed_input) { if (!empty($this->pager) && $this->pager->use_pager()) { return $this->pager->render($exposed_input); } return ''; } /** * Create a new grouping for the WHERE or HAVING clause. * * @param $type * Either 'AND' or 'OR'. All items within this group will be added * to the WHERE clause with this logical operator. * @param $group * An ID to use for this group. If unspecified, an ID will be generated. * @param $where * 'where' or 'having'. * * @return $group * The group ID generated. */ function set_where_group($type = 'AND', $group = NULL, $where = 'where') { // Set an alias. $groups = &$this->$where; if (!isset($group)) { $group = empty($groups) ? 1 : max(array_keys($groups)) + 1; } // Create an empty group if (empty($groups[$group])) { $groups[$group] = array('clauses' => array(), 'args' => array()); } $groups[$group]['type'] = strtoupper($type); return $group; } /** * Control how all WHERE and HAVING groups are put together. * * @param $type * Either 'AND' or 'OR' */ function set_group_operator($type = 'AND') { $this->group_operator = strtoupper($type); } /** * Return info to base the uniqueness of the result on. * * @return $cache_info * A string or array with query unique data or FALSE to deactivate caching */ function get_cache_info() { return FALSE; } /** * Return preview info. * * @return $rows * An array of strings with info to be shown in the preview. */ function get_preview_info() { return array(array('' . t('Query') . '', t('No info'))); } }