super_login.module in Super Login 7
Same filename and directory in other branches
Creates better login pages
File
super_login.moduleView source
<?php
/**
* @file
*
* Creates better login pages
*/
/**
* Implementation of hook_menu
*/
function super_login_menu() {
$items['admin/config/user-interface/super-login'] = array(
'title' => t('Super Login'),
'description' => t('Configure improvements to the Drupal login page.'),
'file' => 'super_login.admin.inc',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'super_login_admin_form',
),
'access arguments' => array(
'administer super login',
),
);
return $items;
}
/**
* Implementation of hook_menu_alter
* Remove tabs from login, registration and password reset pages
*/
function super_login_menu_alter(&$items) {
$items['user/register']['type'] = MENU_CALLBACK;
$items['user/login']['type'] = MENU_CALLBACK;
$items['user/password']['type'] = MENU_CALLBACK;
}
/**
* Implementation of hook_permission
*/
function super_login_permission() {
return array(
'administer super login' => array(
'title' => t('Administer super login'),
'description' => t('Perform administration tasks for the Super Login module.'),
),
);
}
/**
* Implementation of hook_form_alter(). *
*
*/
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;
}
}
function super_login_form_user_pass_alter(&$form, &$form_state, $form_id) {
if (variable_get('super_login_placeholder', 1)) {
$form['name']['#attributes']['title'] = $form['name']['#title'];
$form['name']['#attributes']['placeholder'] = $form['name']['#title'];
}
}
/**
* Custom validation for user login form
*
*/
function super_login_user_login_validate($form, &$form_state) {
if (isset($form_state['values']['name']) && $form_state['values']['name']) {
if ($name = db_query("SELECT name FROM {users} WHERE LOWER(mail) = LOWER(:name)", array(
':name' => $form_state['values']['name'],
))
->fetchField()) {
form_set_value($form['name'], $name, $form_state);
}
}
}
Functions
Name | Description |
---|---|
super_login_form_alter | Implementation of hook_form_alter(). * |
super_login_form_user_pass_alter | |
super_login_menu | Implementation of hook_menu |
super_login_menu_alter | Implementation of hook_menu_alter Remove tabs from login, registration and password reset pages |
super_login_permission | Implementation of hook_permission |
super_login_user_login_validate | Custom validation for user login form |