「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
コメント投稿者のBlogを別窓で開くプラグイン
MyBlogListのBlogを巡回していたときに、さえらさんのBlogで「コメント投稿者リンクを別窓で開くようにする」というエントリーを見かけました。
Movable Type 3.1xまででは、コメント一覧で投稿者の名前をクリックした時には、投稿者のBlogが別ウィンドウで開くようになっていました。
しかし、3.2では同一ウィンドウで開くように変わっています。
さえらさんのBlogでは、lib/MT/Template/ContextHandler.pmのソースコードを書き換える方法が紹介されていました。
しかし、ソースコードを書き換えると、Movable Typeをバージョンアップするたびに書き換えが必要になり不便です。
そこで、同様のことをプラグインでできるようにしてみました。
1.インストール
まず、以下のページに接続して、表示されたソースをすべてコピーしてメモ帳等に貼り付け、「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を出力しなくなったのは、この廃止を意識したものではないかと思われます。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
さえら
こんにちは~。プラグインでできちゃうんですね。
うちもプラグイン使用に変えようと思います。
dotabatapapa
このページを参考にさせていただき,
カスタマイズしました。
大変助かりました。
今後ともよろしくお願いします。
Fear ウルフ
初めまして、Fear ウルフと申します。
現在Movable Typeでblogを作成して、こちらのサイトを参考にさせて頂いています。
いきなりで申し訳ないですが、質問させて下さい。
このプラグインを入れてみて動かしてみたのですが、コメント主をクリックしても参照先のページが別窓で開きませんでした。
(ソースにはtargetが追加されていない状態でした)
プラグインは、pluginsフォルダにアップロードし、Movable Typeのシステムメニューにあるプラグイン情報では認識しております。
それからテンプレート→システム→コメント・プレビュー内のMTCommentAuthorLinkにadd_target部分を追記して再構築してからコメントを発しましたが、やはりダメでした。
お忙しいかと思いますが、どうかご指摘頂けないでしょうか。お願い致します。
こちらのblog上では動作しているので、どこか私が勘違いしているのだと思うのですが・・・。
なお、Movable Typeは3.2ja2で、sqliteで動作させています。
テンプレートは小粋空間さんのを利用しております。
壱
>Fear ウルフさん
こんにちは。
ご質問の件ですが、申し訳ありませんが原因は不明です。
以下のさえらさんのエントリーを参照いただいて、lib/MT/Template/ContextHandler.pmを書き換える方法を試してみてください。
http://caetla.oops.jp/blog2/archives/2005/11/19_1045.php
Fear ウルフ
☆壱さん
お返事ありがとうございます。
>ご質問の件ですが、申し訳ありませんが原因は不明です。
そうですか不明ですか・・・。
ということはやり方自体は有っているって事ですよねぇ。
もう一度やってみて、それでもダメだったら、ご紹介されているさえらさんのエントリーを参考にしてみます。
どうもありがとうございました。m(_ _)m
Fear ウルフ
コメントプラグインの件ですが、無事に動作できました。
どうやら、エントリー・アーカイブに対しての設定をし忘れていたようでして、こちらの設定ミスでした。
ご迷惑をおかけしてしまい、申し訳ございませんでした。
今後もカスタマイズなどで参考にさせて頂きますので、がんばって下さい。
壱
>Fear ウルフさん
こんにちは。
無事動作したとのことで良かったです。
hikari
壱さんのおかげで簡単にカスタマイズが出来ました。
いつもお世話になりっぱなしで、本当にありがとうございます。
ゆう
いつもながら今回も参考にさせてもらいました。
カスタマイズ方法も簡単なので良かったです。
記事も書いたのでトラバを・・・と思ったのですが、エラー表示がでてしまいました。
重複して送信していますかね?
ヲレ
MT4.21でも動作いたしましたので報告です。
使わせていただきます。