function realname_registration_user_presave in Realname registration 7.2
Same name and namespace in other branches
- 7 realname_registration.module \realname_registration_user_presave()
Implementation of hook_user_presave().
File
- ./
realname_registration.module, line 87 - For using real names during registration/
Code
function realname_registration_user_presave(&$edit, $account, $category) {
if (isset($edit['name'])) {
if ($edit['name'] == 'unset_username') {
$firstname_field = variable_get('realname_registration_firstname_field');
$middlename_field = variable_get('realname_registration_middlename_field');
$lastname_field = variable_get('realname_registration_lastname_field');
$firstname_type = variable_get('realname_registration_profile2_firstname_field_profile_name');
$middlename_type = variable_get('realname_registration_profile2_middlename_field_profile_name');
$lastname_type = variable_get('realname_registration_profile2_lastname_field_profile_name');
if (variable_get('realname_registration_ucfirst')) {
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'] = drupal_ucfirst($edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value']);
}
else {
$edit[$firstname_field][LANGUAGE_NONE][0]['value'] = drupal_ucfirst($edit[$firstname_field][LANGUAGE_NONE][0]['value']);
}
if (variable_get('realname_registration_use_profile2_middlename_field')) {
if (!empty($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'])) {
$edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'] = drupal_ucfirst($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value']);
}
}
else {
if (!empty($edit[$middlename_field][LANGUAGE_NONE][0]['value'])) {
$edit[$middlename_field][LANGUAGE_NONE][0]['value'] = drupal_ucfirst($edit[$middlename_field][LANGUAGE_NONE][0]['value']);
}
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'] = drupal_ucfirst($edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value']);
}
else {
$edit[$lastname_field][LANGUAGE_NONE]['0']['value'] = drupal_ucfirst($edit[$lastname_field][LANGUAGE_NONE][0]['value']);
}
}
// Generate the username based on first name and last name fields.
switch (variable_get('realname_registration_format')) {
case 0:
// Create username based on first name and last name (e.g., John Smith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
$username .= ' ';
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 1:
// Create username based on first initial and last name (e.g., JSmith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = drupal_substr($edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
else {
$username = drupal_substr($edit[$firstname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 2:
// Create username based on first name, middle name, and last name (e.g., John Jacob Smith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
$username .= ' ';
if (variable_get('realname_registration_use_profile2_middlename_field')) {
if (!empty($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= $edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'];
$username .= ' ';
}
}
else {
if (!empty($edit[$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= $edit[$middlename_field][LANGUAGE_NONE][0]['value'];
$username .= ' ';
}
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 3:
// Create username based on first name, middle initial, and last name (e.g., John J Smith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
$username .= ' ';
if (variable_get('realname_registration_use_profile2_middlename_field')) {
if (!empty($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= drupal_substr($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'], 0, 1);
$username .= ' ';
}
}
else {
if (!empty($edit[$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= drupal_substr($edit[$middlename_field][LANGUAGE_NONE][0]['value'], 0, 1);
$username .= ' ';
}
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 4:
// Create username based on first initial, middle initial, and last name (e.g., JJSmith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = drupal_substr($edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
else {
$username = drupal_substr($edit[$firstname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
if (variable_get('realname_registration_use_profile2_middlename_field')) {
if (!empty($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= drupal_substr($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
}
else {
if (!empty($edit[$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= drupal_substr($edit[$middlename_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 5:
// Create username based on first name and last name without spaces (e.g., JohnSmith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 6:
// Create username based on first name, middle name, and last name without spaces (e.g., JohnJacobSmith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
if (variable_get('realname_registration_use_profile2_middlename_field')) {
if (!empty($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= $edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'];
}
}
else {
if (!empty($edit[$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= $edit[$middlename_field][LANGUAGE_NONE][0]['value'];
}
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 7:
// Create username based on first name, middle initial, and last name without spaces (e.g., JohnJSmith).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
if (variable_get('realname_registration_use_profile2_middlename_field')) {
if (!empty($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= drupal_substr($edit['profile_' . $middlename_type][$middlename_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
}
else {
if (!empty($edit[$middlename_field][LANGUAGE_NONE][0]['value'])) {
$username .= drupal_substr($edit[$middlename_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 8:
// Create username based on last name and first name without spaces (e.g., SmithJohn).
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username = $edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$lastname_field][LANGUAGE_NONE][0]['value'];
}
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username .= $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username .= $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
break;
case 9:
// Create username based on first name and last initial (e.g., JohnS).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= drupal_substr($edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
else {
$username .= drupal_substr($edit[$lastname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
break;
case 10:
// Create username based on first name and last initial (e.g., John S).
if (variable_get('realname_registration_use_profile2_firstname_field')) {
$username = $edit['profile_' . $firstname_type][$firstname_field][LANGUAGE_NONE][0]['value'];
}
else {
$username = $edit[$firstname_field][LANGUAGE_NONE][0]['value'];
}
if (variable_get('realname_registration_use_profile2_lastname_field')) {
$username .= ' ' . drupal_substr($edit['profile_' . $lastname_type][$lastname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
else {
$username .= ' ' . drupal_substr($edit[$lastname_field][LANGUAGE_NONE][0]['value'], 0, 1);
}
break;
}
if (variable_get('realname_registration_tolower')) {
$username = drupal_strtolower($username);
}
// Make sure username is at least 3 characters less than the maximum
// length in the database schema to allow for adding digits in case of
// duplicates
if (drupal_strlen($username) > USERNAME_MAX_LENGTH - 3) {
$username = drupal_substr($username, 0, USERNAME_MAX_LENGTH - 3);
}
// Check if the username already exists in the database.
$result = db_query("SELECT name FROM {users} WHERE name = :username", array(
':username' => $username,
));
// While the username is taken, append a number and increment it until our username is unique.
$i = 0;
while ($result
->rowCount()) {
$result = db_query("SELECT name FROM {users} WHERE name = :username", array(
':username' => $username . ++$i,
));
if (!$result
->rowCount()) {
$username = $username . $i;
}
}
$edit['name'] = $username;
}
}
}