Movable Type 備忘録
Movable Type のコメント投稿をフィードで配信
- Next Page: Movable Type のログイン画面をカスタマイズ
- Prev Page: Movable Type のコメントを Ajax で投稿する2
こんばんわ^^
今回はちょっと野暮用でサクっとご紹介しちゃいます (; ̄∇ ̄A
タイトルにもあるように、コメント用の Atom フィードをわたしのサイトでも出力するようにしましたのでそのコードのご紹介です。
設置の仕方
以下の手順で設置します。
[2008.05.03]
ご紹介したコード中に配布してるテンプレート用のコードが一部入ってたので修正しました。
コメント用フィードテンプレート作成
以下のコードがコメント用フィードのテンプレートになります。<$MTHTTPContentType type="application/atom+xml"$><?xml version="1.0" encoding="<$MTPublishCharset$>"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title><$MTBlogName remove_html="1" encode_xml="1"$>へのコメント</title> <link rel="alternate" type="text/html" href="<$MTBlogURL encode_xml="1"$>" /> <link rel="self" type="application/atom+xml" href="<$MTLink template="フィード(コメント)"$>" /> <id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTTemplateCreatedOn format="%Y-%m-%d"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id> <MTIfNonEmpty tag="MTBlogDescription"><subtitle><$MTBlogDescription remove_html="1" encode_xml="1"$></subtitle></MTIfNonEmpty> <generator uri="http://www.sixapart.com/movabletype/"><$MTProductName version="1"$></generator> <MTEntries recently_commented_on="20"> <MTComments lastn="5" sort_order="descend"> <entry> <title type="html"><$MTCommentAuthor$> が'<$MTEntryTitle remove_html="1" encode_xml="1"$>'にコメントしました。</title> <published><$MTCommentDate format_name="rfc822"$></published> <updated><$MTCommentDate format_name="rfc822"$></updated> <id><$MTEntryAtomID$></id> <link type="text/html" rel="alternate" href="<$MTEntryLink$>#c<$MTCommentID$>"/> <author> <name><$MTCommentAuthor$></name> <uri><mt:ignore><$MTCommentEmail$></mt:ignore></uri> </author> <content type="html"> <div class="content"> <p style="float:right;"><img src="<$MTStaticWebPath$>images/status_icons/success.gif" alt="公開" width="9" height="9" /><a href="<$MTEntryLink$>">公開</a></p> <p> <b>ブログ:</b> <a href="<$MTBlogURL$>"><$MTBlogName remove_html="1" encode_xml="1"$></a><br /> <b>ブログ記事:</b> <a href="<$MTEntryLink$>"><$MTEntryTitle remove_html="1" encode_xml="1"$></a><br /> <b>コメント投稿者:</b> <$MTCommentAuthor$><br /> <b>メール:</b> <mt:ignore><$MTCommentEmail$></mt:ignore><br /> <b>URL:</b><$MTCommentURL$> <br /> </p> <p> </div> <$MTCommentBody remove_html="1" encode_xml="1"$> <hr /> </content> </entry> </MTComments> </MTEntries> </feed>表示確認
テンプレートをコピーしたら再構築して、ブラウザからでも RSS リーダーからでもいいですので、表示確認してください。
各自のブログのインデックステンプレートを新規作成して、上記コードをコピー & ペーストしてください。
そして、テンプレート名称は各自のお好みで構いません。たとえば、「フィード(コメント)」なんて名前にしておきます。
その際、赤字で記したコメント用フィードのテンプレート名称も合わせて変更してください。
また、出力ファイル名称にはこれもお好みで構いません。他のフィード(RSS2.0 など)と同じ場所が良いのではないでしょうか ( ̄∇ ̄)b
以上です。
コメント投稿の状況をフィードで配信するので便利かと思うのココロ。
一応 livedoor Reader、Google Reader で確認済みです。
サクっと作ったものなので、不手際などありましたらご指摘頂けると嬉しいですの (●´∀`●)
そそ、配布してるテンプレートには既に組込み済みです。
Trackback Pings(1)
- from
笑むなAikoの『お玉杓子は飲み物です』
RSSフィードのコメントRSS出力のご紹介を以前しましたが、Movable Type 備忘録 様で新しいタイプが公開されました。...
Comments(7)
-
#2: Posted by bzbell
[RES]
>>1 Aik☆ さん
こんにちわ^^
> $MTCommentBody あたりをいじったのですが、いじるとフィードが取得できなくなってしまうんです(__;)。
えっ!? remove_html を削除すれば問題なさそうですけどね。
試しにわたしのサイトのコメント・フィードをやってみました。
ご確認ください
-
#3: Posted by Aik☆
[RES]
えっと、最初よくソースを見ないで貼り付けた時に、
<link rel="self" type="application/atom+xml" href="<$MTLink template="feeds/comment"$>" />
で再構築エラーが出たのでこの行を削除したのですが、関係あるんでしょうか。remove_html を削除して直接URLにアクセスすると
要素内容内ではリテラル文字 ']]>' が許可されません。
リソース 'http://surak.private.coocan.jp/aiko/comments.xml' の実行エラーです。という表示が出てフィードが出力されないのです。
なんか初歩的な処で躓いているような気が…。ちなみにウチは atom の出力はしていないです。
-
#4: Posted by bzbell
[RES]
>>3 Aik☆ さん
> <link rel="self" type="application/atom+xml" href="<$MTLink template="feeds/comment"$>" />で再構築エラーが出たのでこの行を削除したのですが、関係あるんでしょうか。
あちゃ

すいません。
remove_html の件とは関係ないですが、MTLink の template モディファイアには テンプレート名称を指定してください。
たとえば、'フィード(コメント)' といったかんじで。わたしのサイトのコメント用フィードには識別子(feeds/comment)がついてるのですが、通常新規で作成した場合には識別子は付加されないんです。
それはさておき、たぶん投稿されたコメントの内容がまずいかもしれないですね

remove_html を削除したバージョンのフィードを新規作成して、その URL を教えてもらえますか。確認してみます。
-
#5: Posted by
Aik☆
[RES]
>>4 bzbell さん
bzbell さん、お忙しいところ申し訳ありません。
私のほうもテンプレート名と出力ファイル名がごっちゃになっていました。
教えて頂いた通りで再構築エラーは出ませんが…。やっぱエラーになるようです。http://surak.private.coocan.jp/aiko/Commenttest.rss
いちをIE6で確認しました。
-
#6: Posted by Aik☆
[RES]
>>4 bzbell さん
お世話様でしたm(__)m。
アドバイスいただいたように、直接次を書き換えましたら
エラー無く表示されるようになりました^_^;。<$MTCommentBody remove_html="1" encode_xml="1"$>
↓
<![CDATA[<$MTCommentBody$>]]>
ちなみに < はそのまま書かないとダメなんですね。
最初、他に合わせて
&lt;![CDATA[<$MTCommentBody$>]]&gt;
としたら今度は中途半端にいくつかのコメントが出力され
途中からエラーになりました(O.O;)(o。o;)。
-
#7: Posted by bzbell
[RES]
>>6 Aik☆ さん
> お世話様でしたm(__)m。
いいえぇ、どぉいたしまして

でもね、何で Aiko さんのフィードだとダメなのかその後調べてみたら、どぅやらコメントの最初の段落には <p> タグが付加されてなくって、次の段落から <p> タグが付加されてます。
だから encode_xml モディファイアで CDATA が付加されず、おしりの ]]> だけが付加されたように思います。まぁ、どちらにしても直接埋め込むことで問題解決できて何よりです


コメントテンプレート、使わせていただいてますσ(^^)。
早速質問なのですが、デフォルトでは remove_html="1" で<br /> (HTML)が全て取り除かれひとつの段落になっていますよね。
ブログコメントと同じ整形(改行)でフィードを取得するには何処をいじればよいのでしょうか?。
$MTCommentBody あたりをいじったのですが、いじるとフィードが取得できなくなってしまうんです(__;)。