拙著「株はタイミングで儲けなさい」が発売されました。
過去20年間の株価データを元にバックテストを行い、どのようなタイミングで株を買うのが良いかを解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
MT-Notifier 3.4.1のインストールと日本語化
コメントへ返信したときに、コメントしてくれた人に対して通知メールを送るプラグインとして、「MT-Notifier」がよく使われています。
先日、PhotoPierreさんから、MT-Notifierがバージョンアップして3.4.1になったことを教えていただきました。
ただ、MT-Notifierをそのままで使うと、通知メールのメッセージが英語になり、日本語部分が文字化けします。
前バージョンのMT-Notifier 3.2.7の日本語化手順は、こちらのエントリーで解説しています。
しかし、MT-Notifier 3.4.1では中身が変わっていて、3.2.7とは違う手順で日本語化する必要がありました。
そこで、インストールも含めて、MT-Notifier 3.4.1の日本語化手順を解説します。
1.MT-Notifier 3.4.1のインストール
MT-Notifier 3.4.1は、以下からダウンロードすることができます。ページの右上の方に、ダウンロードのリンクがあります。
ダウンロードしたファイルは、Zip形式になっています。
ファイルを解凍すると、「php」と「plugins」の2つのフォルダができます。
「plugins」フォルダの中身を、ディレクトリ構造を保ったまま、Movable Typeの「plugins」フォルダにアップロードします(Movable Typeの「plugins」ディレクトリの中に、「Notifier」ディレクトリができるようにアップロードする)。
アップロードが終わったら、MTのディレクトリ/plugins/Notifier/mt-notifier.cgiのパーミッションを書き換え、実行可能に設定します。
2.初期化
MT-Notifierを新規にインストールする場合は、Movable Typeにログインした状態で、以下のURLにアクセスします。
http://Movable Typeのインストール先/plugins/Notifier/mt-notifier.cgi?__mode=loader
「Your system is installed and ready to use!」と表示されれば、初期化は完了です。
また、旧バージョン(2.x.x)から設定を受け継ぐ場合は、以下のURLにアクセスします。
http://Movable Typeのインストール先/plugins/Notifier/mt-notifier.cgi?__mode=import&from=n2x
なお、MT-Notifierの前バージョン(3.2.7)からバージョンアップする場合は、上記の作業は行いません。
3.送信元メールアドレスの設定
Movable Typeにログインし、「システム・メニュー」の「プラグイン」を開いて、プラグイン一覧を表示します。
その中に「MT-Notifier」が表示されますので、「設定を表示」のリンクをクリックします。
「Address to use when sending notifications and no other addresses are available:」という欄がありますので、通知メールの送信元メールアドレス(通常はご自分のメールアドレス)を入力し、「変更を保存」ボタンをクリックします。
4.コメント送信フォームの書き換え
次に、コメント送信フォームに「このコメントに返信があったらメールで通知する」というチェックボックスを追加します。
エントリーアーカイブテンプレートを開き、「<textarea・・・>~<t/extarea>」の部分を検索します。
そして、その直後に以下のタグを追加します。
<br /><label for="subscribe"><input type="checkbox" name="subscribe"> このコメントに返信があったらメールで通知する</label>
5.notifier.pmの書き換え
MTのディレクトリ/plugins/Notifier/lib/Notifier.pmを開き、651行目~654行目を書き換えます。
ファイルの書き換えが終わったら、元のファイルに上書きでアップロードします。
書き換え前後の内容は以下の通りです。
書き換え前
my $mgr = MT::ConfigMgr->instance; my $xfer = $mgr->MailTransfer; if ($xfer eq 'sendmail') { return MT::Mail->_send_mt_sendmail($hdrs, $body, $mgr);
書き換え後
my $mgr = MT::ConfigMgr->instance; my $xfer = $mgr->MailTransfer; my $enc = $mgr->PublishCharset || 'utf-8'; my $mail_enc = $mgr->MailEncoding || 'iso-8859-1'; require MT::I18N; $body = MT::I18N::encode_text($body,$enc,$mail_enc); $hdrs->{Subject} = MT::I18N::encode_text($hdrs->{Subject}, $enc, $mail_enc); $hdrs->{'Content-Type'} = qq(text/plain; charset="$mail_enc"); $hdrs->{'Content-Transfer-Encoding'} = (lc $mail_enc ne 'utf-?8') ? '7bit' : '8bit'; $hdrs->{'MIME-Version'} = "1.0"; if ($xfer eq 'sendmail') { return MT::Mail->_send_mt_sendmail($hdrs, $body, $mgr);
6.通知メールの日本語化
Movable Typeのディレクトリ/plugins/Notifier/tmpl/emailディレクトリに、「comfirmation.tmpl」「confirmation-subject.tmpl」「notification.tmpl」「notification-subject.tmpl」の4つのファイルがあります。
これらをそれぞれ以下のように変えて、アップロードしなおします。
その際には文字コードをMovable Typeのものに合わせてください(通常はutf-8)。
・confirmation.tmpl
'<TMPL_VAR NAME=BLOG_NAME>' で、「コメントへの返信をメールで通知」のチェックがオンにされたので、確認のメッセージをお送りしています。 以下のエントリーで、「コメントへの返信をメールで通知」のチェックがオンにされました。 <TMPL_VAR NAME=RECORD_NAME> コメントへの返信をメールで受信したい場合は、以下のリンクをクリックしてください。 <TMPL_VAR NAME=NOTIFIER_LINK>?c=<TMPL_VAR NAME=RECORD_CIPHER> エントリーの内容を確認する場合は、以下のリンクをクリックしてください。 <TMPL_VAR NAME=RECORD_LINK> もし、「コメントへの返信をメールで通知」のチェックをオンにした覚えがない場合は、このメールは無視してください。
・confirmation-subject.tmpl
[<TMPL_VAR NAME=BLOG_NAME>]「<TMPL_VAR NAME=RECORD_NAME>」<TMPL_IF NAME=NOTIFIER_RUNNING>へのコメントの返事の通知を受け付けました<TMPL_ELSE>へのコメントの返事の通知確認</TMPL_IF>
・notification.tmpl
<TMPL_IF NAME=NOTIFIER_ENTRY><TMPL_IF NAME=ENTRY_EXCERPT>エントリーの概要: </TMPL_IF></TMPL_IF><TMPL_IF NAME=NOTIFIER_COMMENT><TMPL_VAR NAME=COMMENT_BODY></TMPL_IF> <TMPL_IF NAME=NOTIFIER_ENTRY><TMPL_IF NAME=ENTRY_EXCERPT><TMPL_VAR NAME=ENTRY_EXCERPT></TMPL_IF></TMPL_IF><TMPL_IF NAME=NOTIFIER_COMMENT><TMPL_IF NAME=COMMENT_NAME><MT_TRANS phrase="Author:"> <TMPL_VAR NAME=COMMENT_NAME><br /></TMPL_IF><TMPL_IF NAME=COMMENT_URL><MT_TRANS phrase="Website:"> <TMPL_VAR NAME=COMMENT_URL></TMPL_IF></TMPL_IF> エントリーの内容を見る: <TMPL_VAR NAME=ENTRY_LINK> このコメントへの返信の通知を停止する: <TMPL_VAR NAME=NOTIFIER_LINK>?c=<TMPL_VAR NAME=RECORD_CIPHER>&u=1 このサイトからの通知をすべて停止する: <TMPL_VAR NAME=NOTIFIER_LINK>?c=<TMPL_VAR NAME=RECORD_CIPHER>&o=1
・notification-subject.tmpl
[<TMPL_VAR NAME=BLOG_NAME>] <TMPL_IF NAME=NOTIFIER_ENTRY><MT_TRANS phrase="New Entry from"> <TMPL_VAR NAME=ENTRY_AUTHOR>: <TMPL_VAR NAME=ENTRY_TITLE ESCAPE=HTML><TMPL_ELSE>「<TMPL_VAR NAME=ENTRY_TITLE ESCAPE=HTML>」に<TMPL_VAR NAME=COMMENT_AUTHOR>からコメントがありました</TMPL_IF>
7.動作の確認
ここまでの時点で、MT-Notifierが動作する状態になります。
自分でコメントを書き、メールアドレスの欄には自分のメールアドレスを入力して、「このコメントに返信があったらメールで通知する」のチェックをオンにして投稿します。
しばらくすると、MT-Notifierから確認のメールが届きます。
その中に、「コメントへの返信をメールで受信したい場合は、以下のリンクをクリックしてください。」という部分があり、URLが表示されていますので、そのURLのページを開きます。
次に、コメントに返信を書きます。その際、メールアドレスの欄には、最初のコメントは違うメールアドレスを入力します。
このコメントを投稿すると、自分あてに通知メールが送られます。
8.コメントプレビューページでもMT-Notifierを使えるようにする
コメントプレビューページにも、「このコメントに返信があったらメールで通知する」のチェックを入れて、MT-Notifierを動作させることができます。
その方法は、「MT-Notifier 3.2.7をコメント・プレビューページでも使えるようにする」のエントリーを参照してください。
9.問題点
コメントを受信すると、コメント先のエントリーなど、いくつかのページが再構築されます。
ただ、MT-Notifierを入れると、テンプレートの内容によっては、再構築に失敗して500エラーが出ることがあります。
Movable Type 3.2では再構築時のメモリ消費量が増えているようですが、それが関係しているのではないかと思います。
コメントすると毎回500エラーになるようであれば、MT-Nofitierを当面はずしておくしかなさそうです。
ちなみに、当方ではPerl版ダイナミックパブリッシングを活用するなどし、コメントを受信してもテンプレートを一切再構築しないようにして、上記の問題を回避しています。