コメント投稿者のBlogを別窓で開くプラグイン

MyBlogListのBlogを巡回していたときに、さえらさんのBlogで「コメント投稿者リンクを別窓で開くようにする」というエントリーを見かけました。

Movable Type 3.1xまででは、コメント一覧で投稿者の名前をクリックした時には、投稿者のBlogが別ウィンドウで開くようになっていました。
しかし、3.2では同一ウィンドウで開くように変わっています。

さえらさんのBlogでは、lib/MT/Template/ContextHandler.pmのソースコードを書き換える方法が紹介されていました。
しかし、ソースコードを書き換えると、Movable Typeをバージョンアップするたびに書き換えが必要になり不便です。
そこで、同様のことをプラグインでできるようにしてみました。

1.インストール

まず、以下のページに接続して、表示されたソースをすべてコピーしてメモ帳等に貼り付け、「addtarget.pl」というファイル名で保存します。

addtarget.pl

そして、保存したファイルを、Movable Typeの「plugins」ディレクトリにアップロードします。

2.テンプレートの書き換え

コメント元Blogへのリンクは、「MTCommentAuthorLink」というタグで出力されます。
このタグに、「add_target="1"」のアトリビュートを追加すると、リンクのaタグに「target="_blank"」が追加され、コメント元Blogが別ウィンドウで開くようになります。

例えば、MT標準のテンプレートだと、このタグは以下のようになっています。

<$MTCommentAuthorLink default_name="Anonymous"$>

この場合だと、以下のように書き換えます。

<$MTCommentAuthorLink default_name="Anonymous" add_target="1"$>

3.TypeKeyのプロフィールページを別ウィンドウで表示する

TypeKeyでログインしてコメントされた場合、そのコメントにはTypeKeyのアイコンが表示され、それをクリックするとコメント投稿者のTypeKeyのプロフィールページが表示されます。
このページも標準では同一ウィンドウで表示されますが、別ウィンドウで開くようにすることができます。

TypeKeyのアイコンやリンクなどは「MTCommentAuthorIdentity」というタグで表示されます。
このタグでも、「add_target="1"」のアトリビュートを使うことができます。

4.余談

リンク(aタグ)のtargetの指定は、XHTML 1.0 Strict以降では廃止されることになっています。
MTCommentAuthorLinkタグでtargetを出力しなくなったのは、この廃止を意識したものではないかと思われます。

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください