0

我创建了一个简单的模块,通过覆盖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);
}

不幸的是,我在网页中看到上面最后两行没有产生任何输出

我究竟做错了什么?

谢谢!亚历克斯

4

1 回答 1

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!  
}
于 2011-03-08T15:52:56.477 回答