web-dev-qa-db-ja.com

ユーザーのメールをアカウントページに表示するにはどうすればよいですか。

ユーザーアカウントページには、電子メールを除くすべてのフィールドが表示されます。私はuser-profile.tplを変更しようとし、追加しました

print $user->mail

ただし、表示されているアカウントではなく、ログインしているユーザーが表示されます。エンドユーザーは通常、管理者にとって自分のアカウントを少しだけ苛立たせているため、大きな問題ではありません。私も試しました

print render($user_profile['mail']);

しかし、それは何も表示しません。

2
Bosse

テーマのtemplate.phpに次のフックを実装できます。

/**
 * Process variables for user-profile.tpl.php.
 *
 * The $variables array contains the following arguments:
 * - $account
 *
 * @see user-profile.tpl.php
 */

function YOUR_THEME_preprocess_user_profile(&$variables) {
  $account = $variables['elements']['#account'];
  //Add mail to $user_profile variable
  $variables['user_profile']['mail'] = $account->mail;
  // Preprocess fields.
  field_attach_preprocess('user', $account, $variables['elements'], $variables);
}

そして、あなたのuser-profile.tplで使用できます:

print $user_profile['mail'];
2