function views_random_seed_handler_sort_random::query in Views random seed 7
Same name and namespace in other branches
- 6 views_random_seed_handler_sort_random.inc \views_random_seed_handler_sort_random::query()
Called to add the sort to a query.
Overrides views_handler_sort::query
File
- ./
views_random_seed_handler_sort_random.inc, line 80 - Views random seed order class.
Class
- views_random_seed_handler_sort_random
- Handle a random sort with seed.
Code
function query() {
$db_type = db_driver();
$seed = views_random_seed_calculate_seed($this->options, $this->view->name, $this->view->current_display, $db_type);
switch ($db_type) {
case 'mysql':
case 'mysqli':
$formula = 'RAND(' . $seed . ')';
break;
case 'pgsql':
// For PgSQL we'll run an extra query with a integer between
// 0 and 1 which will be used by the RANDOM() function.
db_query('select setseed(' . $seed . ')');
db_query("select random()");
$formula = 'RANDOM()';
break;
}
if (!empty($formula)) {
$this->query
->add_orderby(NULL, $formula, $this->options['order'], '_' . $this->field);
}
}