【问题标题】:Adding avatar to $user in Drupal 7在 Drupal 7 中将头像添加到 $user
【发布时间】:2011-03-08 15:05:46
【问题描述】:

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

很遗憾,我在网页中看到上面最后两行没有产生任何输出

我做错了什么?

谢谢! 亚历克斯

【问题讨论】:

    标签: drupal drupal-7 drupal-hooks


    【解决方案1】:

    这样的事情应该可以工作:

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

    【讨论】:

    • 谢谢! (不过,我将使用 file_managed.filename 作为用户头像,因为这不是附加字段)
    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多