You are here

function views_random_seed_handler_sort_random::options_form in Views random seed 7

Same name and namespace in other branches
  1. 6 views_random_seed_handler_sort_random.inc \views_random_seed_handler_sort_random::options_form()

Basic options for all sort criteria

Overrides views_handler_sort::options_form

File

./views_random_seed_handler_sort_random.inc, line 25
Views random seed order class.

Class

views_random_seed_handler_sort_random
Handle a random sort with seed.

Code

function options_form(&$form, &$form_state) {
  parent::options_form($form, $form_state);
  $form['order']['#access'] = FALSE;

  // User seed type.
  $form['user_seed_type'] = array(
    '#type' => 'radios',
    '#title' => t('User seed type'),
    '#options' => array(
      'same_per_user' => t('Use the same seed for every user'),
      'diff_per_user' => t('Use a different seed per user'),
      'custom' => t('Use custom PHP code'),
    ),
    '#default_value' => isset($this->options['user_seed_type']) ? $this->options['user_seed_type'] : 'same_per_user',
  );

  // User seed type.
  $form['reset_seed_int'] = array(
    '#type' => 'radios',
    '#title' => t('Reset seed'),
    '#options' => array(
      'never' => t('Never'),
      'custom' => t('Custom'),
      '3600' => t('Every hour'),
      '28800' => t('Every day'),
    ),
    '#default_value' => isset($this->options['reset_seed_int']) ? $this->options['reset_seed_int'] : '3600',
  );
  $form['reset_seed_custom'] = array(
    '#type' => 'textfield',
    '#size' => 10,
    '#title' => t('Custom reset seed'),
    '#required' => TRUE,
    '#default_value' => isset($this->options['reset_seed_custom']) ? $this->options['reset_seed_custom'] : '300',
    '#description' => t('Define your own custom reset time, must be a number and is in seconds. Choose custom in the options above.'),
  );

  // Custom seed textarea.
  $form['custom_seed'] = array(
    '#type' => 'textarea',
    '#title' => t('Custom PHP code'),
    '#description' => t('PHP code, must return a string. Do not include <?php and ?> tags, this is passed through <code>eval()</code>.'),
    '#default_value' => isset($this->options['custom_seed']) ? $this->options['custom_seed'] : NULL,
  );

  // Caching strategy info.
  $form['cache_strategy'] = array(
    '#type' => 'item',
    '#title' => t('Cache exclude'),
    '#description' => t('If you enable page caching, anonymous users might get duplicate items depending on their seed and which pages are allready cached by Drupal. If you wish to exclude paths from getting cached for anonymous users, install <a href="!url" target="_blank">Cache exclude</a>.', array(
      '!url' => 'http://drupal.org/project/cacheexclude',
    )),
  );
}