You are here

function realname_registration_user_presave in Realname registration 7

Same name and namespace in other branches
  1. 7.2 realname_registration.module \realname_registration_user_presave()

Implementation of hook_user_presave().

File

./realname_registration.module, line 71
For using real names during registration/

Code

function realname_registration_user_presave(&$edit, $account, $category) {
  if (isset($edit['name'])) {
    if ($edit['name'] == 'unset_username') {
      $lastname_field = variable_get('realname_registration_lastname_field');
      $firstname_field = variable_get('realname_registration_firstname_field');
      if (variable_get('realname_registration_ucfirst') == 1) {
        $edit[$firstname_field]['und'][0]['value'] = ucfirst($edit[$firstname_field]['und'][0]['value']);
        $edit[$lastname_field]['und']['0']['value'] = ucfirst($edit[$lastname_field]['und'][0]['value']);
      }

      // Generate the username based on first name and last name fields.
      if (variable_get('realname_registration_format') == 0) {
        $username = $edit[$firstname_field]['und'][0]['value'] . " " . $edit[$lastname_field]['und'][0]['value'];
      }
      if (variable_get('realname_registration_format') == 1) {
        $first_init = drupal_substr($edit[$firstname_field]['und'][0]['value'], 0, 1);
        $lastname = $edit[$lastname_field]['und'][0]['value'];
        $username = $first_init . $lastname;
      }
      if (variable_get('realname_registration_tolower')) {
        $username = strtolower($username);
      }

      // 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;
    }
  }
}