Movable Type 備忘録
FeedEx プラグイン
- Prev Page: dTree テンプレット
- Next Page: FeedburnerWidget プラグイン
おはよございます^^
Movable Type で RSS リーダー作ってみるでご紹介しました自作 RSS リーダーですが、FeedEx プラグインを作成することでわたしなりの機能を達成できたのでそのプラグインをご紹介します。
最初、デフォルトの MTFeed を日時、記事概要を取得できるようにカスタマイズしようとしたのですが、調べてる内に MTFeed というのは有償版ってのもあるらしく、有償版で投稿日時、記事概要が使えるようになってるみたいなんです。
そんな MTFeed をカスタマイズしてしまうとまずいのでは・・・ということで、プラグインを別途作ることで対応してみました。
FeedEx プラグインのカンタンな説明
一応 RSS1.0、RSS2.0、ATOM0.3、ATOM1.0 に対応してます。
また、FeedEx プラグインをインストールすると以下のタグが追加されます。
MTFeedEx ブロックタグ
MTFeedEx に uri モディファイアでフィード URL を指定することで、各フィード情報を読み出すことができます。
MTFeedExTitle ファンクションタグ
フィード URL で指定したサイトタイトルを取得します。MTFeedEx ブロックタグ内で使用します。
MTFeedExLink ファンクションタグ
フィード URL で指定したサイト URL を取得します。MTFeedEx ブロックタグ内で使用します。
MTFeedExEntries ブロックタグ
フィード内のアイテム情報( 記事情報 )を取得するためのブロックタグです。MTFeedEx ブロックタグ内で使用します。
MTFeedExEntryTitle ファンクションタグ
アイテム情報( 記事情報 )の中のタイトル( 記事タイトル )を取得します。MTFeedExEntries ブロックタグ内で使用します。
MTFeedExEntryLink ファンクションタグ
アイテム情報( 記事情報 )の中の URL ( 記事の URL )を取得します。MTFeedExEntries ブロックタグ内で使用します。
MTFeedExEntryDate ファンクションタグ
アイテム情報( 記事情報 )の中の投稿日時を取得します。MTFeedExEntries ブロックタグ内で使用します。
MTFeedExEntryDescription ファンクションタグ
アイテム情報( 記事情報 )の中の記事概要を取得します。MTFeedExEntries ブロックタグ内で使用します。
ダウンロード
以下のページから最新版をダウンロードできます。
使い方
上記ページから FeedEx プラグインをダウンロードして頂き、いつものように mt/plugins/ フォルダ内に FeedEx/ フォルダを丸ごとアップロードします。
使い方はデフォルトの MTFeed と同様です。
Movable Type で RSS リーダー作ってみるでご紹介してるコードは MTFeedEx プラグインでは以下のようになります。
サンプル
<?phpfunction print_new($date,$days=1){$result = date("YmdHis", mktime(date("H"),date("i"),date("s"),date("m") ,date("d") - $days, date("Y")));if ($date >= $result) print '<img src="<$MTBlogURL$>mt_memo/css/new.gif">';}?><mt:SetVar name="feed[0]" value="http://feeds.feedburner.com/ogawa"><mt:SetVar name="feed[1]" value="http://feeds.feedburner.jp/koikikukan"><mt:SetVar name="feed[2]" value="http://www.h-fj.com/blog/atom.php"><mt:SetVar name="feed[3]" value="http://feeds.feedburner.jp/oraora"><mt:SetVar name="feed[4]" value="http://www.dakiny.com/index.xml"><mt:SetVar name="feed[5]" value="http://blog.aklaswad.com/atom.xml"><mt:SetVarBlock name="cnt"><mt:GetVar name="feed" function="count" value="1" op="-"></mt:SetVarBlock><mt:For var="i" from="0" to="$cnt"><mt:SetVarBlock name="uri"><mt:GetVar name="feed[$i]"></mt:SetVarBlock><dl class="mt_reader"><MTFeedEx uri="$uri"><dt><a href="<$MTFeedExLink$>"><$MTFeedExTitle$></a></dt><dd><ul><MTFeedExEntries lastn="3"><li><a href="<$MTFeedExEntryLink$>" style="display:block;"><$MTFeedExEntryTitle$> <?php print_new(<$MTFeedExEntryDate format="%Y%m%d%H%M%S"$>); ?></a><$MTFeedExEntryDate format_name="rfc822"$></li></MTFeedExEntries></ul></dd></MTFeedEx></dl></mt:For>
青字の部分は記事の投稿日時をチェックして、NEW マークを表示する為の PHP コードになります。
ブログの PHP 化を行ってる人はそのまま使用できますが、PHP 化されてない人はエラーしてしまいますのでご注意ください。
赤字の部分では、MTFeed が MTFeedEx に変更になった部分です。
以上です。
Trackback Pings(1)
- from
小さな世界
Movable Typeは動的なファイル生成、静的ファイル生成ともに扱うことが可...
Comments(11)
-
#2: Posted by
からKeiへの返信
@ September 6, 2008
[REPLY]

>>1 Kei さん
こんにちわ^^
どうやら後から付け足した config.yaml 内の doc_link の記述が間違ってたみたい

すいません。ありがとございます
-
#3: Posted by
Kei
@ September 14, 2008
[REPLY]

こんばんわぁ

FeedExプラグイン挑戦中です^^
プラグインの方でのエラーではないと思うのですが。
PureKeiで設置を試みたところ再構築でエラー発生してしまって設置できまぬ
なぜだかわからずで><まずは、こちらのコード(そのままコピペ)でやってみたのですが
エラー内容
Invalid feed source: http://feeds.feedburner.jp/koikikukan at /mt/plugins/FeedEx/lib/FeedEx/Plugin.pm line 42
と、再構築画面で出ました。
数日前に設置試みた時は「http://feeds.feedburner.jp/koikikukan」の部分が「http://blog.aklaswad.com/atom.xml」だったりでアーカイブテンプレート、モジュールテンプレートと作成してみたのですが駄目でした
設置テンプレートと設定に何か問題あるのでしょうかね^^;
-
#4: Posted by
からKeiへの返信
@ September 14, 2008
[REPLY]

>>3 Kei さん
こんばんわ^^
はい。実はわたしのところでも小粋空間さんのフィード読込むと同様の現象がでます。
断言はできないのですが CORESERVER のサイトだと再現するような気がしてます。またはフィード元さんで弾いてる!?上記サーバを使ってるサイトさんのフィードを読込むとなぜか Perl ライブラリ内でエラーしてるようで、エラーするならそれでもいいんだけど、有無を言わさずそのエラーメッセージが表示されちゃいまして困ってるんです

ちょっと前までは問題なく表示できたんですけどねぇ・・・突然のことで問題点を洗い出してるところです。ご迷惑をおかけします
-
#5: Posted by
からbzbellへの返信
@ September 14, 2008
[REPLY]

>>4 bzbell さん
そうでしたかぁ
小粋空間さんのフィールドで「http://feedproxy.google.com/koikikukan」の方へ変更して
ウェブページ作成でやってみたらエラーはでませんでしたけども。
これではエラーの解決にはなりませんものね><
元の「http://www.koikikukan.com/atom.xml」ですと同じくエラーでましたので
難しいですね><
-
#6: Posted by
からKeiへの返信
@ September 14, 2008
[REPLY]

>>5 Kei さん
> 小粋空間さんのフィールドで「http://feedproxy.google.com/koikikukan」の方へ変更して
> ウェブページ作成でやってみたらエラーはでませんでしたけども。
ホントだ
う~ん・・・原因がよく分からないなぁ。吐き出されるフィードの内容に問題があるのかしら
-
#7: Posted by
からbzbellへの返信
@ September 14, 2008
[REPLY]

>>6 bzbell さん
小粋空間さんのRSSと言うアイコンは「http://www.koikikukan.com/atom.xml」でリンクが貼られていて、飛ぶと「http://feeds.feedburner.jp/koikikukan」にリダイレクト?になってるっぽいんです。あと。。違う問題なのですが
ウェブページでリーダーページ作成したのですが
メタタグでNewアイコンの呼び出し?なりますよね
そのタグの後に、「 '..." /> 」 がくっついちゃうのです。
ソースで見ると
<meta name="description" content="= $result) print 'mt_memo/css/new.gif">'..." />
となってます
ページで見ると1番上に '..." /> が表示されまして。。
これはどうしたらよいのでしょうか><作成したウェブページです http://ke-i-s.net/reader.php
-
#8: Posted by
からKeiへの返信
@ September 14, 2008
[REPLY]

>>7 Kei さん
> ・・・飛ぶと「http://feeds.feedburner.jp/koikikukan」にリダイレクト?になってるっぽいんです。
あぅ!? リダイレクト!?
そこら辺と何か関係してるのかもしれませんね。
仮にそれが原因だったとした場合、リダイレクト先のフィードを読込ませる必要がありそうですね。ウェブページの件ですが、ウェブページの description メタタグには、記事内容の概要を表示するようにしてるんです。
なので、わたしのサイトではフィードページなど、文章がないページに関して「ウェブページ」アーカイブテンプレートを以下のように記述してます。<mt:Ignore>ここでページタイトル名称と取得します</mt:Ignore> <mt:SetVarBlock name="page_title"><$MTPageTitle encode_html="1"$></mt:SetVarBlock> <mt:Ignore>ページタイトルが「リンク集」だった場合、ブログの概要を表示するよう分岐させてます それ以外はウェブページ内の記事概要を表示させます</mt:Ignore> <mt:If name="page_title" eq="リンク集"> <mt:SetVarBlock name="page_description"><$MTBlogDescription$></mt:SetVarBlock> <mt:Else> <mt:SetVarBlock name="page_description"><$MTPageExcerpt remove_html="1" convert_breaks="0"$></mt:SetVarBlock> </mt:If>
上記はほんの一例ですが、このようなかんじで条件分岐させてます。
よく分からないようでしたら、メールフォームにて Kei さんとこの「ウェブページ」アーカイブテンプレートを添付して、弾きたいページタイトル名称を明記して頂ければ対応します
-
#9: Posted by
からbzbellへの返信
@ September 14, 2008
[REPLY]

>>8 bzbell さん
にょ・・・
ウェブページ新規作成(記事と同じく)ではなくて。。テンプレートアーカイブの方での操作ですか!?
まったく脳みそがついてきておりませぬ
メール送ってみます><
-
#11: Posted by
からbzbellへの返信
@ September 14, 2008
[REPLY]

>>10 bzbell さん
ありがとうございました^^
入れ替えて再構築しましたら直りました
お手数おかけしてすみませんでした



こんにちはぁ^^
早々ダウンロードして設置したかったのですが。。。
プラグインデレクトリにFeedExフォルダ入れるとエラーきました^^;
内容です
Got an error: Error reading /mt/plugins/FeedEx/config.yaml: YAML::Tiny does not support multi-line quoted scalars at /mt/extlib/YAML/Tiny.pm line 159.