在Drupal 7中为$ user添加头像

我创建了一个简单的模块,通过覆盖sites / default / modules / game.module中的game_block_view()和game_block_info(),在自定义块中显示flash游戏,它运行正常。 然而,我需要通过FlashVars参数向我的区块中的Flash游戏传递用户头像以及性别和城市(我已将2个必填字段添加到注册表单)。 所以我正在尝试重载hook_user_load,因为我认为这是在从数据库启动后向$ user对象添加属性的方法(这可能发生在用户登录或更改他/她的配置文件数据时?):
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);
}
不幸的是,我看不到网页上面最后两行产生的输出 我究竟做错了什么? 谢谢! 亚历克斯     
已邀请:
全局用户对象不通过hook_user_load(),请参阅http://api.drupal.org/api/drupal/includes--session.inc/function/_drupal_session_read/7。不要问我为什么,这就是它的方式:) 使用user_load()时,将自动加载任何添加的字段,您不需要自定义代码。您只需要知道如何访问它们,这有点复杂。 这样的事情应该有效:
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!  
}
    

要回复问题请先登录注册