The Realname module (http://drupal.org/project/realname) allows you display someone's name instead of their login (see http://drupal.org/node/192056). Through it's settings, I can eliminate the login names that User Relationships output in most places. However, I had to alter the code to change the login name to their Realname where it says "Become 's ".

Please review the following code change and consider rolling into your code so other can benefit as well. The changes were made to user_relationships/user_relationships_ui/user_relationships_ui.theme.inc lines
16 to 47. There were 2 instances of the same change.

Previous code:
$relate_to->name
Altered code:
theme('username', $relate_to, array('plain' => TRUE))

Here's what lines 16 to 47 look like after the change:

/**
 * Create relationship link
 */
function theme_user_relationships_request_relationship_link($relate_to) {
  return l(
    t('Create a relationship with %name', array('%name' => theme('username', $relate_to, array('plain' => TRUE)))),
    "relationship/{$relate_to->uid}/request",
    array(
      'query' => drupal_get_destination(),
      'html'  => TRUE,
    )
  );
}

/**
 * Create a direct relationship link
 */
function theme_user_relationships_request_relationship_direct_link($relate_to, $relationship_type) {
  //safety, revert to  a generic link
  if (!isset($relationship_type)) {
    return theme('user_relationships_request_relationship_link', $relate_to);
  }
  return l(
    t("Become %name's %rel_name", array('%name' => theme('username', $relate_to, array('plain' => TRUE)), '%rel_name' => ur_tt("user_relationships:rtid:$relationship_type->rtid:name", $relationship_type->name), '%rel_plural_name' => ur_tt("user_relationships:rtid:$relationship_type->rtid:plural_name", $relationship_type->plural_name))),
    "relationship/{$relate_to->uid}/request/{$relationship_type->rtid}",
    array(
      'query' => drupal_get_destination(),
      'html'  => TRUE,
      'attributes' => array('class' => 'user_relationships_popup_link'),
    )
  );
}

Comments

3dloco’s picture

Thanks Benlotter! This worked of me, +1 for adding this feature ;)

Jakob Stoeck’s picture

I'd like to see this change committed like the op wrote or like this:

strip_tags(theme('username', $relate_to)) instead of the real name-specific part.

That way if a user doesn't have the realname module nothing changes for him. But if he implements theme_username in his template.php and rolls his own username solution without changing the theme_username signature this works like on the rest of the site. And it works with the realname plugin, too.

imDhaval’s picture

Version: 6.x-1.0-rc5 » 6.x-1.x-dev

love to sub +1

YK85’s picture

+1 subscribing

bwinett’s picture

+1

Liliplanet’s picture

fabulous thank you! works perfect ..

capellic’s picture

I had to add a couple of tokens to handle the themed username per @Jacob Stoeck's suggestion in #2 above for notification emails:

I've pasted the whole function below- it's in user_relationships/user_relationships_mailer/user_relationships_mailer.inc.

/**
 * Replacements for mail messages
 * @param relationship relationship object for which emails are being sent
 */
function user_relationship_mailer_replacements(&$relationship) {
  $requester = isset($relationship->requester) ? $relationship->requester : NULL;
  $requestee = isset($relationship->requestee) ? $relationship->requestee : NULL;
  //load relationship type, if necessary
  if (!isset($relationship->relationship_type)) {
    $relationship->relationship_type = user_relationships_type_load($relationship->rtid);
  }
  $replacements = array(
    '@site'                     => variable_get('site_name', 'Drupal'),
    '@site_url'                 => $GLOBALS['base_url'],

    '@requester_name'           => isset($requester->name) ? $requester->name : '',
		/** HACK ON 10/13/2011 TO ADD TOKEN **/
    '@requester_themename'      => isset($requester->name) ? strip_tags(theme('username', $requester)) : '',
    /** END HACK **/
    '@requester_link'           => isset($requester->uid) ? theme('user_relationships_user_link', $requester->uid) : '',
    '@requester_uid'            => isset($requester->uid) ? $requester->uid : '',
    '@requester_list_link'      => isset($requester->uid) ? url("user/{$requester->uid}/relationships/list", array('absolute' => TRUE)) : '',
    '@requester_pending_link'   => isset($requester->uid) ? url("user/{$requester->uid}/relationships/requests", array('absolute' => TRUE)) : '',

    '@requestee_name'           => isset($requestee->name) ? $requestee->name : '',
		/** HACK ON 10/13/2011 TO ADD TOKEN **/
    '@requestee_nametheme'      => isset($requestee->name) ? strip_tags(theme('username', $requestee)) : '',
    /** END HACK **/    
    '@requestee_link'           => isset($requestee->uid) ? theme('user_relationships_user_link', $requestee->uid) : '',
    '@requestee_uid'            => isset($requestee->uid) ? $requestee->uid : '',
    '@requestee_list_link'      => isset($requestee->uid) ? url("user/{$requestee->uid}/relationships/list", array('absolute' => TRUE)) : '',
    '@requestee_pending_link'   => isset($requestee->uid) ? url("user/{$requestee->uid}/relationships/requests", array('absolute' => TRUE)) : '',

    '@relationship_name'        => $relationship->relationship_type->name,
    '@relationship_plural_name' => $relationship->relationship_type->plural_name,
  
    '@elaboration'              => isset($relationship->elaboration) ? $relationship->elaboration : '',
  );
  
  // #443326 Integration with realname module
  if (module_exists('realname')) {
    $replacements['@requester_realname'] = $requester->realname;
    $replacements['@requestee_realname'] = $requestee->realname;
  }

  //'remove' action needs a few more variables for the template
  if (isset($relationship->deleted_by)) {
    $deleted_by = $relationship->deleted_by;
    $replacements['@deleted_by_name'] = $deleted_by->name;
    $replacements['@deleted_by_link'] = url("user/{$deleted_by->uid}", array('absolute' => TRUE));
    $replacements['@deleted_by_uid']  = $deleted_by->uid;
  }

  return $replacements;
}
mrf’s picture

Issue tags: +6.x-1.1

Tagging for a closer look.

mrf’s picture

Status: Active » Needs review
serg.remote’s picture

Suggestion in #2 works fine for me. I've also changed $requestee->name to strip_tags(theme('username', $requestee)) in user_relationships_ui.forms.inc lines 147-149.

btown’s picture

+1