2

我正在尝试用稍后添加的其他字段替换用户个人资料页面的标题,即用户名。试图显示全名作为页面的标题。

我用以下代码编辑了page.tpl.php $title 但它不起作用。

if(arg(0)=="user") 
{
   $title=$field_user_last_name;
}
4

4 回答 4

2

安装RealName模块并转到/admin/config/people/realname更改用于用户名的模式。

我正在使用Profile2添加名字和姓氏字段以及以下模式:

[user:profile-person:field_first_name] [user:profile-person:field_last_name]

/admin/config/people/accounts/fields但是您也可以在不使用 Profile2的情况下添加字段。

于 2012-11-29T12:52:32.290 回答
2

您可以使用Entity API模块的元数据包装器和 hook_user_view() 很好地完成此功能。在模块的 .info 文件中添加对 Entity API 的依赖项,然后代码可能如下所示(假设您要将标题设置为用户的全名,并且您有名为 field_first_name 和 field_last_name 的字段):

/**
 * Implements hook_user_view().
 */
function MYMODULE_user_view($account, $view_mode, $langcode) {
  // Set the page title of the user profile page to the user's full name.
  $wrapper = entity_metadata_wrapper('user', $account);
  $first_name = $wrapper->field_first_name->value();
  $last_name = $wrapper->field_last_name->value();
  if ($first_name && $last_name) {
    drupal_set_title($first_name . ' ' . $last_name);
  }
}
于 2013-06-25T20:21:07.833 回答
2

一种更清洁的方法:

function mymodule_page_alter() {  

  global $user;  

  if(drupal_get_title() === $user->name) {  
    drupal_set_title('New value');  
  }  
}
于 2013-05-23T15:28:34.033 回答
0

我有解决方案!!!

我在我的 template.php上的preprocess_page函数上添加了以下代码

  if(isset($variables['page']['content']['system_main']['field_name'])){
      $title=$variables['page']['content']['system_main']['field_name']['#object']->field_name['und'][0]['value'];
      drupal_set_title($title);
 }
于 2012-11-30T06:50:17.647 回答