--- views_handler_sort_random.inc 2010-12-12 16:28:51.000000000 +0200 +++ views_handler_sort_randomNew.inc 2010-12-12 16:29:47.000000000 +0200 @@ -6,18 +6,25 @@ */ class views_handler_sort_random extends views_handler_sort { function query() { + // the idea is to add integer argument to MySQL RAND() function, which will remain + // among all the pages for the same view, going back to the first page (no $_REQUEST['page']) + // will initialize and randomize entire view + if (!$_SESSION['views_random_sort_int'] || !$_REQUEST['page']) { + $_SESSION['views_random_sort_int'] = rand(1, 1001); + } + global $db_type; switch ($db_type) { case 'mysql': case 'mysqli': - $formula = 'RAND()'; + $formula = 'RAND('. $_SESSION['views_random_sort_int'] . ')'; break; case 'pgsql': $formula = 'RANDOM()'; break; } if (!empty($formula)) { - $this->query->add_orderby(NULL, $formula, $this->options['order'], '_' . $this->field); + $this->query->add_orderby(NULL, NULL, '', $formula); } }