You are here

7 钩子hook_username_alter

admin 的头像
Submitted by admin on 星期四, 2015-06-25 09:40

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

    最后,让我们在这个模块中,再增加一个需求,那就是为用户增加一个真实姓名,当显示用户名字时,我们使用真实姓名来代替默认的username。

    我们导航到admin/config/people/accounts,点击“管理字段”,进入页面,我们添加新的字段“真实姓名”。

图片1.png 

    接着点击保存按钮,在接下来的两个表单中,我们不做任何修改,直接保存即可。在Drupal7中,尽可能的使用字段的形式来扩充用户对象,而不是使用已经废弃的profile模块。Drupal7核心自带的profile模块仅仅是用来升级Drupal6,除此以外,再无别的用处,这个模块将在Drupal8中从核心中移出去。

 

    完成这一准备工作以后,让我们向module文件中添加以下代码:

/**

 * 实现钩子hook_username_alter().

 */

function class_teacher_username_alter(&$name, $account){

//debug($account);

$user = user_load($account->uid);

  // 使用用户的真实姓名来代替默认的username.

  if (isset($user->field_real_name['und'][0]['value'])) {

    $name = $user->field_real_name['und'][0]['value'];

  }

 

}

 

    这样当我们访问我们的个人主页时,username就被替换为了现在的真实姓名,如图所示:

图片2.png 

    现在,对于钩子函数hook_username_alter(),我们就能够更好的理解它的用途了。


Drupal版本: