You are here

function views_random_seed_calculate_seed in Views random seed 6

Same name and namespace in other branches
  1. 7 views_random_seed_handler_sort_random.inc \views_random_seed_calculate_seed()

Calculate a seed.

Parameters

array $options The options for the random seed handler.:

string $view_name The name of the view.:

string $display The current display.:

string $db_type the current database type (mysql(i) - pgsql):

Return value

int $seed Seed value which is a timestamp.

1 call to views_random_seed_calculate_seed()
views_random_seed_handler_sort_random::query in ./views_random_seed_handler_sort_random.inc

File

./views_random_seed_handler_sort_random.inc, line 111

Code

function views_random_seed_calculate_seed($options, $view_name, $display, $db_type) {
  $time = time();
  $seed_name = 'views_seed_name-' . $view_name . '-' . $display;
  $seed_time = 'views_seed_time-' . $view_name . '-' . $display;
  $seed = isset($_SESSION[$seed_name]) ? $_SESSION[$seed_name] : FALSE;
  if ($options['user_seed_type'] == 'custom') {
    $seed = eval($options['custom_seed']);
    return (int) $seed;
  }

  // Create a first seed if necessary.
  if ($seed == FALSE) {
    $seed = _views_random_seed_generate_seed($options['user_seed_type'], $seed_name, $seed_time, $time, $db_type);
  }

  // Reset seed or not ?
  if ($options['reset_seed_int'] != 'never') {
    $reset_time = $options['reset_seed_int'] == 'custom' ? $options['reset_seed_custom'] : $options['reset_seed_int'];
    if ($_SESSION[$seed_time] + $reset_time < $time) {
      variable_del($seed_name);
      $seed = _views_random_seed_generate_seed($options['user_seed_type'], $seed_name, $seed_time, $time, $db_type);
    }
  }

  // Return seed.
  return $seed;
}