You are here

function super_login_form_alter in Super Login 7

Same name and namespace in other branches
  1. 8 super_login.module \super_login_form_alter()

Implementation of hook_form_alter(). *

File

./super_login.module, line 50
Creates better login pages

Code

function super_login_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_login' || $form_id == 'user_pass' || $form_id == 'user_login_block') {

    // Global form functions
    if (variable_get('super_login_autofocus', 0)) {
      $form['name']['#attributes']['autofocus'] = 'autofocus';
    }
    unset($form['name']['#description']);
    unset($form['pass']['#description']);
    $path = drupal_get_path('module', 'super_login');
    if (variable_get('super_login_css', 1)) {
      $form['#attached']['css'][] = $path . '/css/super-login.css';
      if (variable_get('super_login_button_image', 1)) {
        $form['#attached']['css'][] = $path . '/css/super-login-buttons.css';
      }
    }
  }
  switch ($form_id) {
    case 'user_login':
      $form['#attached']['js'][] = $path . '/js/super-login.js';
      $form['title'] = array(
        '#markup' => '<p class="login-title">' . t(filter_xss(variable_get('super_login_log_in_text', 'Log In'))) . '</p>',
        '#weight' => -100,
      );

      // Bypass our forgot password overrides if the No Request New Password module is enabled
      if (!module_exists('noreqnewpass')) {
        $link = l(t(variable_get('super_login_forgot_pw_text', 'Forgot Password?')), 'user/password', array(
          'attributes' => array(
            'title' => t('Get a new password'),
          ),
        ));
        $form['reset'] = array(
          '#markup' => '<p class="forgot-password">' . $link . '</p>',
          '#weight' => 1,
        );
      }
      $form['capslock'] = array(
        '#markup' => '<div id="capslockdiv"><p style="display: none;">' . t(filter_xss(variable_get('super_login_capslock_msg', 'Caps Lock On'))) . '</p></div>',
        '#weight' => 2,
      );
      if (user_register_access()) {
        $actions_suffix = '<div class="actions-suffix">';
        $actions_suffix .= l(t(variable_get('super_login_new_account_text', 'Create new account')), 'user/register', array(
          'attributes' => array(
            'class' => 'super-login-register',
            'title' => t('Create a new user account'),
          ),
        ));
        $actions_suffix .= '</div>';
        $form['actions']['#suffix'] = $actions_suffix;
      }
      $form['name']['#title'] = t(variable_get('super_login_login_title', 'Username or e-mail address'));
      $form['name']['#size'] = 50;
      $form['pass']['#size'] = 50;

      // Set form placeholder text
      if (variable_get('super_login_placeholder', 1)) {
        $form['name']['#attributes']['title'] = $form['name']['#title'];
        $form['pass']['#attributes']['title'] = $form['pass']['#title'];
        $form['name']['#attributes']['placeholder'] = $form['name']['#title'];
        $form['pass']['#attributes']['placeholder'] = $form['pass']['#title'];
      }

      // If logintoboggan is installed and email login email is enabled then skip our own email login modification
      if (!(module_exists('logintoboggan') && variable_get('logintoboggan_login_with_email', 0))) {

        // Ensure a valid validate array to allow login with e-mail address.
        $form['#validate'] = is_array($form['#validate']) ? $form['#validate'] : array();

        // LT's validation function must run first.
        array_unshift($form['#validate'], 'super_login_user_login_validate');
      }
      if (!variable_get('super_login_autofill', 1)) {
        $form['#attributes']['autocomplete'] = 'off';
        $form['name']['#attributes']['autocomplete'] = 'off';
        $form['pass']['#attributes']['autocomplete'] = 'off';
      }
      if (!variable_get('super_login_button_image', 1)) {
        $form['actions']['submit']['#value'] = t(variable_get('super_login_submit_text', 'Log in'));
      }
      break;
    case 'user_login_block':
      $form['#attached']['js'][] = $path . '/js/super-login.js';
      $form['capslock'] = array(
        '#markup' => '<div id="capslockdiv"><p style="display: none;">' . t(filter_xss(variable_get('super_login_capslock_msg', 'Caps Lock On'))) . '</p></div>',
        '#weight' => 2,
      );
      $form['name']['#title'] = t(variable_get('super_login_login_title', 'Username or e-mail address'));

      // Set form placeholder text
      if (variable_get('super_login_placeholder', 1)) {
        $form['name']['#attributes']['title'] = $form['name']['#title'];
        $form['pass']['#attributes']['title'] = $form['pass']['#title'];
        $form['name']['#attributes']['placeholder'] = $form['name']['#title'];
        $form['pass']['#attributes']['placeholder'] = $form['pass']['#title'];
      }

      // If logintoboggan is installed and email login email is enabled then skip our own email login modification
      if (!(module_exists('logintoboggan') && variable_get('logintoboggan_login_with_email', 0))) {

        // Ensure a valid validate array to allow login with e-mail address.
        $form['#validate'] = is_array($form['#validate']) ? $form['#validate'] : array();

        // LT's validation function must run first.
        array_unshift($form['#validate'], 'super_login_user_login_validate');
      }
      if (!variable_get('super_login_autofill', 1)) {
        $form['#attributes']['autocomplete'] = 'off';
        $form['name']['#attributes']['autocomplete'] = 'off';
        $form['pass']['#attributes']['autocomplete'] = 'off';
      }
      break;
    case 'user_pass':
      $form['#attached']['js'][] = $path . '/js/super-login-pw.js';
      $form['title'] = array(
        '#markup' => '<p class="login-title">' . t(filter_xss(variable_get('super_login_password_reset_title', 'Password Reset'))) . '</p>',
        '#weight' => -100,
      );
      $link = l(t(variable_get('super_login_back_link', 'Back to login page')), 'user/login', array(
        'attributes' => array(
          'title' => variable_get('super_login_back_link', 'Go back to the login page.'),
        ),
      ));
      $form['reset'] = array(
        '#markup' => '<p class="back-to-login">' . $link . '</p>',
        '#weight' => 1,
      );
      break;
  }
}