0
votes

I've created a simple module for displaying a flash game in a custom block by overwriting game_block_view() and game_block_info() in the sites/default/modules/game.module and it works ok.

I need however to pass user avatar and also gender and city (I've added the 2 mandatory fields to the registration form) through the FlashVars-parameter to the flash game in my block.

So I'm trying to overload the hook_user_load, because I suppose that this is the method where you add properties to the $user object after it has been initiated from the database (this probably happens when the user logins or alters his/her profile data?):

function game_user_load($users) {
  global $user;
  $uid = $user->uid;

  $result = db_query('select filename from {file_managed} where uid=:uid', array(':uid' => array($uid)));
  $avatar = $result->fetchField();
  $users[$uid]->avatar = $avatar;

  drupal_set_message("<pre>$uid: $avatar</pre>\n");
  print_r($users);
}

Unfortunately I see no output produced by the last 2 lines above in the web page

What am I doing wrong?

Thank you! Alex

1

1 Answers

2
votes

Something like this should work:

global $user;

// $account is now a fully loaded user object.
$account = user_load($user->uid);

// Your field name is probably 'field_avatar'.  
if ($avatar = field_get_items('user', $account, 'field_avatar')) {  
  dpm($avatar); // only works with devel.module, strongly suggested!  
}