You are here

function realname_registration_set_username in Realname registration 6.2

Build the username based on form values submitted by the user.

Construct the usernames name adhering on the pre-defined formats set in Realname registrations administrative settings.

Parameters

&$edit: The array of form values submitted by the user.

1 call to realname_registration_set_username()
realname_registration_user in ./realname_registration.module
Implementation of hook_user().

File

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

Code

function realname_registration_set_username(&$edit) {
  $c = realname_registration_load_settings();

  // Generate the username based on first name and last name fields.
  switch ($c->username_format) {
    case 0:

      /*
       * Create username based on first name and last name (e.g., John Smith).
       */
      if (!$c->fname->use_content_profile) {
        $username = $edit[$c->fname->field];
      }
      else {
        $username = $edit[$c->fname->field][0]['value'];
      }
      $username .= ' ';
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
    case 1:

      /*
       * Create username based on first initial and last name (e.g., JSmith).
       */
      if (!$c->fname->use_content_profile) {
        $username = drupal_substr($edit[$c->fname->field], 0, 1);
      }
      else {
        $username = drupal_substr($edit[$c->fname->field][0]['value'], 0, 1);
      }
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
    case 2:

      /*
       * Create username based on first name, middle name, and last name
       * (e.g., John Jacob Smith).
       */
      if (!$c->fname->use_content_profile) {
        $username = $edit[$c->fname->field];
      }
      else {
        $username = $edit[$c->fname->field][0]['value'];
      }
      $username .= ' ';
      if (!$c->mname->use_content_profile) {
        if (!empty($edit[$c->mname->field])) {
          $username .= $edit[$c->mname->field];
          $username .= ' ';
        }
      }
      else {
        if (!empty($edit[$c->mname->field][0]['value'])) {
          $username .= $edit[$c->mname->field][0]['value'];
          $username .= ' ';
        }
      }
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
    case 3:

      /*
       * Create username based on first name, middle initial, and last name
       * (e.g., John J Smith).
       */
      if (!$c->fname->use_content_profile) {
        $username = $edit[$c->fname->field];
      }
      else {
        $username = $edit[$c->fname->field][0]['value'];
      }
      $username .= ' ';
      if (!$c->mname->use_content_profile) {
        if (!empty($edit[$c->mname->field])) {
          $username .= drupal_substr($edit[$c->mname->field], 0, 1);
          $username .= ' ';
        }
      }
      else {
        if (!empty($edit[$c->mname->field][0]['value'])) {
          $username .= drupal_substr($edit[$c->mname->field][0]['value'], 0, 1);
          $username .= ' ';
        }
      }
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
    case 4:

      /*
       * Create username based on first initial, middle initial, and last
       * name (e.g., JJSmith).
       */
      if (!$c->fname->use_content_profile) {
        $username = drupal_substr($edit[$c->fname->field], 0, 1);
      }
      else {
        $username = drupal_substr($edit[$c->fname->field][0]['value'], 0, 1);
      }
      if (!$c->mname->use_content_profile) {
        if (!empty($edit[$c->mname->field])) {
          $username .= drupal_substr($edit[$c->mname->field], 0, 1);
        }
      }
      else {
        if (!empty($edit[$c->mname->field][0]['value'])) {
          $username .= drupal_substr($edit[$c->mname->field][0]['value'], 0, 1);
        }
      }
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
    case 5:

      /*
       * Create username based on first name and last name without spaces
       * (e.g., JohnSmith).
       */
      if (!$c->fname->use_content_profile) {
        $username = $edit[$c->fname->field];
      }
      else {
        $username = $edit[$c->fname->field][0]['value'];
      }
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
    case 6:

      /*
       * Create username based on first name, middle name, and last name
       * without spaces (e.g., JohnJacobSmith).
       */
      if (!$c->fname->use_content_profile) {
        $username = $edit[$c->fname->field];
      }
      else {
        $username = $edit[$c->fname->field][0]['value'];
      }
      if (!$c->mname->use_content_profile) {
        if (!empty($edit[$c->mname->field])) {
          $username .= $edit[$c->mname->field];
        }
      }
      else {
        if (!empty($edit[$c->mname->field][0]['value'])) {
          $username .= $edit[$c->mname->field][0]['value'];
        }
      }
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
    case 7:

      /*
       * Create username based on first name, middle initial, and last name
       * (e.g., John J Smith).
       */
      if (!$c->fname->use_content_profile) {
        $username = $edit[$c->fname->field];
      }
      else {
        $username = $edit[$c->fname->field][0]['value'];
      }
      $username .= ' ';
      if (!$c->mname->use_content_profile) {
        if (!empty($edit[$c->mname->field])) {
          $username .= drupal_substr($edit[$c->mname->field], 0, 1);
          $username .= ' ';
        }
      }
      else {
        if (!empty($edit[$c->mname->field][0]['value'])) {
          $username .= drupal_substr($edit[$c->mname->field][0]['value'], 0, 1);
          $username .= ' ';
        }
      }
      if (!$c->lname->use_content_profile) {
        $username .= $edit[$c->lname->field];
      }
      else {
        $username .= $edit[$c->lname->field][0]['value'];
      }
      break;
  }

  // Check if we should force the username to lowercase characters.
  if ($c->username_tolower) {
    $username = drupal_strtolower($username);
  }

  /*
   * Check if the username already exists in the database.
   * Otherwise append and increment a number on the end of the string.
   */
  $original_username = $username;
  while (db_result(db_query("SELECT COUNT(*) FROM {users} WHERE name = '%s';", $username))) {
    $username = $original_username . ++$i;
  }
  $edit['name'] = $username;
}