function views_json_query_plugin_query_json::build in Views JSON Query 7
Builds the necessary info to execute the query.
Overrides views_plugin_query::build
File
- ./
views_json_query_plugin_query_json.inc, line 34 - Query plugin for views_json_query.
Class
- views_json_query_plugin_query_json
- @file Query plugin for views_json_query.
Code
function build(&$view) {
$view
->init_pager();
// Let the pager modify the query to add limits.
$this->pager
->query();
// Build the JSON file URL.
$json_file = $this->options['json_file'];
if (!empty($view->build_info['substitutions'])) {
$json_file = strtr($json_file, $view->build_info['substitutions']);
}
$parsed = parse_url($json_file);
$query_string = drupal_get_query_array(isset($parsed['query']) ? $parsed['query'] : array());
// Add query string parameters from filters.
if (isset($this->query_string)) {
foreach ($this->query_string as $k => $v) {
$query_string[$k] = $v;
}
}
// Add pagination query string argument.
if ($this->options['enable_pagination_query_parameters']) {
if (isset($view->query->offset)) {
$query_string[$this->options['pagination_offset_query_parameter']] = $view->query->offset;
}
if (isset($view->query->limit)) {
$query_string[$this->options['pagination_limit_query_parameter']] = $view->query->limit;
}
}
// Rebuild the JSON file URL.
$view->query->options['json_file'] = "{$parsed['scheme']}://{$parsed['host']}{$parsed['path']}?" . drupal_http_build_query($query_string);
$view->build_info['query'] = $this
->query();
$view->build_info['query_args'] = array();
}