Same name and namespace in other branches
  1. 4.7.x includes/theme.inc \theme_username()
  2. 5.x includes/theme.inc \theme_username()
  3. 7.x includes/theme.inc \theme_username()

Format a username.

Parameters

$object: The user object to format, usually returned from user_load().

Return value

A string containing an HTML link to the user's page if the passed object suggests that this is a site user. Otherwise, only the username is returned.

Related topics

25 theme calls to theme_username()
chameleon_comment in themes/chameleon/chameleon.theme
chameleon_node in themes/chameleon/chameleon.theme
comment_admin_overview in modules/comment/comment.admin.inc
Form builder; Builds the comment overview form for the admin.
contact_mail_user in modules/contact/contact.pages.inc
dblog_event in modules/dblog/dblog.admin.inc
Menu callback; displays details about a log message.

... See full list

File

includes/theme.inc, line 1676
The theme system, which controls the output of Drupal.

Code

function theme_username($object) {
  if ($object->uid && $object->name) {

    // Shorten the name when it is too long or it will break many tables.
    if (drupal_strlen($object->name) > 20) {
      $name = drupal_substr($object->name, 0, 15) . '...';
    }
    else {
      $name = $object->name;
    }
    if (user_access('access user profiles')) {
      $output = l($name, 'user/' . $object->uid, array(
        'attributes' => array(
          'title' => t('View user profile.'),
        ),
      ));
    }
    else {
      $output = check_plain($name);
    }
  }
  else {
    if ($object->name) {

      // Sometimes modules display content composed by people who are
      // not registered members of the site (e.g. mailing list or news
      // aggregator modules). This clause enables modules to display
      // the true author of the content.
      if (!empty($object->homepage)) {
        $output = l($object->name, $object->homepage, array(
          'attributes' => array(
            'rel' => 'nofollow',
          ),
        ));
      }
      else {
        $output = check_plain($object->name);
      }
      $output .= ' (' . t('not verified') . ')';
    }
    else {
      $output = check_plain(variable_get('anonymous', t('Anonymous')));
    }
  }
  return $output;
}