Commit f395caed authored by Akash Jain's avatar Akash Jain Committed by Akash Jain
Browse files

Issue #2431147 by akashjain132, jenlampton: Cleanup code to save only once while saving settings

parent 76d55503
Loading
Loading
Loading
Loading
+12 −15
Changes for login_redirect.admin.inc: 12 added lines, 15 removed lines.
Original line number Diff line number Diff line
@@ -8,36 +8,33 @@
/**
 * Generates a configuration form.
 */
function login_redirect_admin_settings() {
function login_redirect_settings_form() {
  $options = array(0 => t('Disabled'), 1 => t('Enabled'));
  $form['status'] = array(
  $form['login_redirect_status'] = array(
    '#type' => 'radios',
    '#title' => t('Module Status'),
    '#default_value' => variable_get('login_redirect_status', 0),
    '#options' => $options,
    '#description' => t('Should the module be enabled?'),
  );
  $form['parameter_name'] = array(
  $form['login_redirect_parameter_name'] = array(
    '#type' => 'textfield',
    '#title' => t('Parameter Name'),
    '#default_value' => variable_get('login_redirect_parameter_name', 'destination'),
    '#description' => t('Enter user defined query parameter name same as we have q in drupal core. For example if the parameter name is set to "destination", then you would visit user/login&destination=(redirect destination).'),
    '#required' => true,
    '#element_validate' => array('element_validate_non_numeric')
  );
  $form['#submit'][] = 'login_redirect_admin_settings_submit';
  return system_settings_form($form);

  return system_settings_form($form);
}

/**
 * Process settings submission.
 * Validate parameter name.
 */
function login_redirect_admin_settings_submit($form, $form_state) {
  if (!(is_numeric($form_state['values']['parameter_name']) || empty($form_state['values']['parameter_name']))) {
    variable_set('login_redirect_parameter_name', $form_state['values']['parameter_name']);
    variable_set('login_redirect_status', $form_state['values']['status']);
  }
  else {
    drupal_set_message(t('The parameter name must consists of only alphabetical letters and cannot be left empty. The module was disabled.'), 'error');
    variable_set('login_redirect_status', 0);
    variable_set('login_redirect_parameter_name', $form_state['values']['parameter_name']);
function element_validate_non_numeric($element, &$form_state) {
  $value = $element['#value'];
  if (!ctype_alpha($value)) {
    form_error($element, t('The parameter name must consists of only alphabetical letters.'));
  }
}
+1 −1
Changes for login_redirect.module: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ function login_redirect_menu() {
    'title' => 'Login Redirect Settings',
    'description' => 'Adjust Login Redirect settings.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('login_redirect_admin_settings'),
    'page arguments' => array('login_redirect_settings_form'),
    'access arguments' => array('administer site configuration'),
    'type' => MENU_NORMAL_ITEM,
    'file' => 'login_redirect.admin.inc',