login_emailusername.module in Login Email or Username 7
Same filename and directory in other branches
Allows users to login with their username or email address in the same input box.
File
login_emailusername.moduleView source
<?php
/**
* @file
* Allows users to login with their username or email address in the same input box.
*/
/**
* Implements hook_form_FORM_ID_alter().
*
* Alters the main user login form.
*/
function login_emailusername_form_user_login_alter(&$form, &$form_state, $form_id) {
$form['name']['#title'] = t('Username or email address');
$form['name']['#description'] = t('Enter your username or email address.');
$form['name']['#element_validate'][] = 'login_emailusername_user_login_validate';
}
/**
* Implements hook_form_FORM_ID_alter().
*
* Alters the user login block form.
*/
function login_emailusername_form_user_login_block_alter(&$form, &$form_state, $form_id) {
$form['name']['#title'] = t('Username or email');
$form['name']['#element_validate'][] = 'login_emailusername_user_login_validate';
}
/**
* Form element validation handler for the user login form.
*
* Allows users to authenticate by username OR email.
*/
function login_emailusername_user_login_validate($form, &$form_state) {
$name_input = $form_state['values']['name'];
// Try loading by email.
if ($user = user_load_by_mail($name_input)) {
// Set the username for further validation.
$form_state['values']['name'] = $user->name;
return TRUE;
}
// Try loading by username.
if ($user = user_load_by_name($name_input)) {
return TRUE;
}
return FALSE;
}
Functions
Name![]() |
Description |
---|---|
login_emailusername_form_user_login_alter | Implements hook_form_FORM_ID_alter(). |
login_emailusername_form_user_login_block_alter | Implements hook_form_FORM_ID_alter(). |
login_emailusername_user_login_validate | Form element validation handler for the user login form. |