自分のメールアドレスがユーザプロファイルで表示されない

自分のメールアドレスがユーザプロファイルで表示されない

- Tatsuya Shirai の投稿
返信数: 1

 バグというよりは仕様だと思いますが,疑問です.

 管理者や教師ではなく,一般のユーザがユーザプロファイルの”メール公開”の設定を”すべてのユーザに私のメールアドレスを公開します”以外に設定していた場合,ユーザプロファイル画面で自分自身のメールアドレスが表示されません.

 考え方としては,「ね? だから安心でしょう?」というメッセージなのかも知れません.
 でも,現実問題としては,

 A:「センセー,メールがボクだけ届きません」
 B:「メールアドレス,間違えているか,あるいは変更忘れじゃないの?」
 A:「どうやって確認したらいいんですか?」
 B:「画面右上のA君の名前をクリックするとユーザプロファイル画面が開くね?」
 A:「はい」
 B:「そこでプロファイルの編集っていうタブをクリックして編集画面に切り替えて」
 A:「なんか色々と表示されて気持ち悪いんですけれど...」

まぁ,最終的にはユーザプロファイルの編集を行うことになるのは同じなのですが,そういえば私のアドレスはどれを登録したんだっけ?という場合には面倒と言えば面倒です.

 自分のアドレスは常に自分で見られるようにするならば,user/view.phpの250行目あたりにあるif文の条件を緩めれば簡単に実現できます.

 // (FS_TEST): ここから修正
//
  if ($user->maildisplay == 1 or
    if ($user->id == $USER->id or
        $user->maildisplay == 1 or
// (FS_TEST): ここまで修正
       ($user->maildisplay == 2 and ($course->id != SITEID) and !isguest()) or
       has_capability('moodle/course:useremail', $coursecontext)) {

でもこれでは誰にでも見えてしまうのでは無いかと不安であるならば,Titleでツールチップ表示してあげれば良い.


 

Tatsuya Shirai への返信

Re: 自分のメールアドレスがユーザプロファイルで表示されない

- Tatsuya Shirai の投稿

Titleはダメですね.メールアドレスを無効化されている時のメッセージ表示に使われています.

しかしいま一つ意図が分からない.理由について何かご意見頂けないでしょうか.なぜ自分自身の電子メールアドレスを自分のプロファイルで簡単に確認できるようにしていないのか.


とりあえず以下のようにすれば,”メールアドレス”に現在の公開条件をツールチップ表示可能です.

user/view.phpの300行近辺

//      print_row(get_string("email").":", obfuscate_mailto($user->email, '', $user->emailstop)."$emailswitch");
// (FS_TEST): ここから追加
        switch ($user->maildisplay) {
            case 0 : $maildisplaystr = get_string('emaildisplayno');    break;
            case 1 : $maildisplaystr = get_string('emaildisplayyes');   break;
            case 2 : $maildisplaystr = get_string('emaildisplaycourse');break;
            default: $maildisplaystr = '';
        }
// (FS_TEST): ここまで追加
        print_row('<span title = "'.$maildisplaystr.'">'.get_string("email")."</span>:", obfuscate_mailto($user->email, '', $user->emailstop)."$emailswitch");