在Drupal 7中为$ user添加头像

时间:2011-03-08 15:05:46

标签: drupal drupal-7 drupal-hooks

我创建了一个简单的模块,通过覆盖sites/default/modules/game.module中的game_block_view()和game_block_info()来自定义块中显示flash游戏,并且它可以正常工作。

然而,我需要通过FlashVars参数将用户头像以及性别和城市(我已将2个必填字段添加到注册表单)传递到我的区块中的Flash游戏。

所以我试图重载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);
}

不幸的是,我看不到网页上面最后两行产生的输出

我做错了什么?

谢谢! 亚历

1 个答案:

答案 0 :(得分:2)

这样的事情应该有效:

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!  
}