You are here

function login_destination_admin_settings in Login Destination 5

Same name and namespace in other branches
  1. 6.2 login_destination.module \login_destination_admin_settings()
  2. 6 login_destination.module \login_destination_admin_settings()
1 string reference to 'login_destination_admin_settings'
login_destination_menu in ./login_destination.module
Implementation of hook_menu().

File

./login_destination.module, line 56
Controls which URL users will be redirected upon login.

Code

function login_destination_admin_settings() {
  $form = array();
  $form['destination'] = array(
    '#type' => 'fieldset',
    '#title' => t('URL destination settings'),
    '#description' => t('This is to specify where exactly user should be redirected upon login.'),
  );
  $form['destination']['ld_destination'] = array(
    '#type' => 'checkbox',
    '#default_value' => variable_get('ld_destination', TRUE),
    '#title' => t('Preserve destination'),
    '#description' => t("If checked, 'destination=' parameter specified in the URL will be used to perform redirection. Otherwise, redirection will be always performed according to the settings below."),
  );
  $form['destination']['ld_url_type'] = array(
    '#type' => 'radios',
    '#default_value' => variable_get('ld_url_type', LOGIN_DEST_STATIC),
    '#options' => array(
      LOGIN_DEST_STATIC => t('Static URL'),
      LOGIN_DEST_SNIPPET => t('PHP snippet (experts only)'),
    ),
  );
  $form['destination']['ld_url_destination'] = array(
    '#type' => 'textarea',
    '#default_value' => variable_get('ld_url_destination', 'user'),
    '#title' => t('URL'),
    '#rows' => 4,
    '#description' => t('<b>Static URL mode:</b> Enter a static path. Example paths are %ex1 or %ex2.', array(
      '%ex1' => 'node/add',
      '%ex2' => 'workspace',
    )) . '<br/>' . t('<b>PHP snippet mode:</b> Enter PHP code to evaluate path (<b>NO %php tags!</b>). It should return either a string value or an array(\'path\' => path to redirect, \'query\' => parameters).', array(
      '%php' => '<?php ?>',
    )),
  );
  $form['condition'] = array(
    '#type' => 'fieldset',
    '#title' => t('Redirection condition settings'),
    '#description' => t('Set the condition to determine whether redirection should happen or not.'),
  );
  $form['condition']['ld_condition_type'] = array(
    '#type' => 'radios',
    '#default_value' => variable_get('ld_condition_type', 'always'),
    '#options' => array(
      LOGIN_COND_ALWAYS => t('Always'),
      LOGIN_COND_PAGES => t('List of paths'),
      LOGIN_COND_SNIPPET => t('PHP snippet (experts only)'),
    ),
  );
  $form['condition']['ld_condition_snippet'] = array(
    '#type' => 'textarea',
    '#default_value' => variable_get('ld_condition_snippet', ''),
    '#title' => t('Redirect condition'),
    '#rows' => 4,
    '#description' => t('<b>Always:</b> Redirection happens always. Redirect condition field is ignored.') . '<br/>' . t('<b>List of paths mode:</b> Enter a list of paths, one path per one line. Redirection will happen only when logging from specified pages. Example paths are %ex1 or %ex2.', array(
      '%ex1' => 'contact',
      '%ex2' => 'user/login',
    )) . '<br/>' . t('<b>PHP snippet mode:</b> Enter PHP code to find should redirection happen or not (<b>NO %php tags!</b>). It should return boolean value.', array(
      '%php' => '<?php ?>',
    )),
  );
  return system_settings_form($form);
}