写メるんです(?)機能の構想

写メるんです(?)機能の構想

- Tatsuya Shirai の投稿
返信数: 4
依然としてOS3.0ではないiPod touch を使用しています。
なるほど、OS3.0ではコピー&ペーストが可能になったとのことですね。おめでとうございます。

さて、iPod touch以外にも、ゲーム機(PSP,Wiiなど)などもコピー&ペーストが苦手です。ですのでMoodle上で重要な情報を発見した時は、手動メール送信で「何をどうしたら良いと思うか」を送ります。

この問題を解決するために、ちょっとした簡単な機能のアイデア思い付きました。たとえばフォーラムであれば、各投稿ごとに「メール送信」のような名前のボタンを追加する。そのボタンをクリックするとフォーラム投稿の中身をテキスト形式でユーザのメールアドレスへ送信する。

イメージはできたのですが、一体この機能にどのような名前を付ければ良いか? 英語版も含め、悩んでいます。
Tatsuya Shirai への返信

Re: 写メるんです(?)機能の構想

- Tatsuya Shirai の投稿

ほぼ完成しました.

でも,その過程で少しコードのおかしなところを発見しました.支障は無いのですが...

mod/forum/lib.phpのforum_cron(),後半の方に,

                $cleanforumname = str_replace('"', "'", strip_tags(format_string($forum->name)));

                $userfrom->customheaders = array (  // Headers to make emails easier to track
                           'Precedence: Bulk',
                           'List-Id: "'.$cleanforumname.'" <moodleforum'.$forum->id.'@'.$hostname.'>',
                           'List-Help: '.$CFG->wwwroot.'/mod/forum/view.php?f='.$forum->id,
                           'Message-ID: <moodlepost'.$post->id.'@'.$hostname.'>',
                           'In-Reply-To: <moodlepost'.$post->parent.'@'.$hostname.'>',
                           'References: <moodlepost'.$post->parent.'@'.$hostname.'>',
                           'X-Course-Id: '.$course->id,
                           'X-Course-Name: '.format_string($course->fullname, true)
                );

このようなコードがあります.ここでList-IdとX-Course-Nameに用いる$forum->name, $course->fullnameが日本語です.すると,届くメールでは,

List-Id: "??????????????????????????????????????????" <moodleforum140@ほにゃらら.mech.suzuka-ct.ac.jp>

X-Course-Name: ?????????????????????????????????????????????

化けますね.バッサリと切り捨てても問題ないと思うのですが,いままで問題生じていないのでOKとも言えますし...

Tatsuya Shirai への返信

Re: 写メるんです(?)機能の構想

- Tatsuya Shirai の投稿

 本家Moodleではこのままでは使えません.get_string()はオリジナルの言語パックを参照していますし,機能のOn/Offのためにfs_function_enable()という関数を使用しています(:もし有効ならばtrueと返す関数ですので削除しても構いません).その部分だけ適当に直して頂ければ問題ありません.

 これで「私に送信」をクリックすれば,選択したフォーラム投稿の中身が電子メールでいつでも自分宛に送信可能です.あとで自分宛に届いたメールを見ながらゆっくりと返信すれば良いでしょう.

 添付したソース(send2me.php)を適当な箇所,たとえばmod/forumでも大丈夫だと思いますが,(fs_moodleではlib/fs_moodleに格納)にコピーすればOKです.あとはリンクを表示させるように,mod/forum/lib.phpのfunction forum_print_post()に,

// Commands

    $commands = array();

// (Shirai157): ”このコンテンツを電子メール送信するボタン”機能の追加 (2009/07/04)
// (Shirai157): ここから追加
    if (fs_function_enable('FS_DISABLE_SENDTHISCONTENTS2ME') and isloggedin() and !isguest()) {
        $commands[] = '<a href="'.$CFG->wwwroot.'/lib/fs_moodle/send2me.php?type=forum&amp;d='.
              $post->discussion.'&amp;postid='.$post->id.'" target="_blank">'.get_string('send2meButton','fs_moodle').'</a>';
    }
// (Shirai157): ここまで追加
    if ($istracked) {
        // SPECIAL CASE: The front page can display a news item post to non-logged in users.
        // Don't display the mark read / unread controls in this case.
        if ($CFG->forum_usermarksread and isloggedin()) {
            if ($post_read) {
                $mcmd = '&amp;mark=unread&amp;postid='.$post->id;
                $mtxt = $strmarkunread;
            } else {
                $mcmd = '&amp;mark=read&amp;postid='.$post->id;
                $mtxt = $strmarkread;
            }
            if ($displaymode == FORUM_MODE_THREADED) {
                $commands[] = '<a href="'.$CFG->wwwroot.'/mod/forum/discuss.php?d='.
                              $post->discussion.'&amp;parent='.$post->id.$mcmd.'">'.$mtxt.'</a>';
            } else {
                $commands[] = '<a href="'.$CFG->wwwroot.'/mod/forum/discuss.php?d='.
                              $post->discussion.$mcmd.'#p'.$post->id.'">'.$mtxt.'</a>';
            }
        }
    }

とリンクを追加すればOKです.なお,

// (Shirai157): ”このコンテンツを電子メール送信するボタン”機能の追加 (2009/07/04)
$string['send2meButton'] = '私に送信';
$string['sentemail2you'] = '$a 宛に電子メールでコンテンツを送信しました.';
$string['cannotsentemail2you'] = '$a 宛に電子メールでコンテンツを送信できませんでした.';
$string['sentemail2emailstop'] = '電子メールアドレスが無効に設定されているため, $a 宛にコンテンツを送信できませんでした.';

です.

Tatsuya Shirai への返信

Re: 写メるんです(?)機能の構想

- Tatsuya Shirai の投稿

 実際のイメージは以下の図の通りです.
 このリンクをクリックすると電子メールで送信されます.

あとは,Wikiと用語集に対応したいですね.

添付 Shirai157A.jpg
Tatsuya Shirai への返信

Re: 写メるんです(?)機能の構想

- Tatsuya Shirai の投稿

 fs_moodle3.16.01で,この機能がブログ,Wiki,用語集に対応しました.これらはフォーラムと異なり,題名とそのコンテンツにアクセスするためのURLのみを送信します.

 ブックマーク代わりにちょっと忘れないようにメモする感覚でメール送信するのは,意外と便利なものです.