”メッセージ”のSubjectはどこまで?

Re: ”メッセージ”のSubjectはどこまで?

- Tatsuya Shirai の投稿
返信数: 0

 これは意外と簡単でした.

 先に挙げました,message/lib.phpのfunction message_post_message()の以下の箇所の修正だけです.

        if ($emailforced || (time() - $userto->lastaccess) > ((int)$preference->message_emailtimenosee * 60)) { // Long enough

            $message = stripslashes_safe($message);
            $tagline = get_string('emailtagline', 'message', $SITE->shortname);

//          $messagesubject = preg_replace('/\s+/', ' ', strip_tags($message)); // make sure it's all on one line
//          $messagesubject = message_shorten_message($messagesubject, 30).'...';
            $messagesubject = explode("\r\n", $message);
            $messagesubject = $messagesubject[0];
            $messagesubject = preg_replace('/\s+/', ' ', strip_tags($messagesubject)); // make sure it's all on one line
            $messagesubject = trim($messagesubject);

            $messagetext = format_text_email($message, $format).
                           "\n\n--\n".$tagline."\n"."$CFG->wwwroot/message/index.php?popup=1";

一行目が空行だったらどうしようとか,そもそも何も入力されなかった場合は?と心配したのですが杞憂でした.頭の空行(半角空白のみの行含む)は捨てられるらしく,さらに全く何も入力されなかった場合はメッセージが送信されないようです.ですので,'(No Subject)'とする必要は無しです.

 fs_moodleではさらにサービスして,[メッセージを送信する]ボタンにマウスカーソルを合わせると添付した図のようにメッセージをポップアップするようにしてヒントを出すようにしました.

#別件で電子メールのログを出力していたのですが,私が予想していたよりも多くの学生がMoodleを介してメール送信を相互に行なっていました.全く紹介していなかったのに.


 なお,メッセージ機能でテキスト入力にHTMLエディタを使用する設定にしている場合,HTMLエディタがたてに大きく場所を取るため,テキスト入力エリアの下のボタン類が画面からハミだしてしまい押せません.これは一番下のフレームのスクロールバーの表示がoffになっているためです.以下のscrolling="no"を"yes"にするとスクロールバーが表示されます.なんで"no"にしてあるのだろう???

message/discussion.phpの58行目あたり(Moodle1.9の場合)

       <frame src="user.php?id=<?php p($user->id)?>&amp;frame=user"     name="user"
              scrolling="no"  marginwidth="0" marginheight="0" frameborder="0" />
       <frame src="messages.php"  name="messages"
              scrolling="yes" marginwidth="10" marginheight="10" frameborder="0" />
       <frame src="refresh.php?id=<?php p($user->id)?>&amp;name=<?php echo urlencode(fullname($user)) ?>"  name="refresh"
              scrolling="no"  marginwidth="0" marginheight="0" frameborder="0" />
      
       <frame src="send.php?id=<?php p($user->id)?>"     name="send"
              scrolling="no"  marginwidth="2" marginheight="2" frameborder="0" />

添付 PostMessageButton.jpg