Top > MovableType > mt-rssfeed.pl & mt-list.pl

トップページの右側に他サイトの RSS を取り込んで表示させてみました。
RSS を提供しているサイトの一覧は、http://rss-jp.net/rss_list.html で紹介されています。

■ mt-rssfeed.pl の入手

mt-rssfeed.tar.gz (v1.04)
http://www.mplode.com/tima/files/mt-plugins/#mt-rssfeed

■ mt-list.pl の入手

mt-list.tar.gz (v0.21)
http://www.mplode.com/tima/files/mt-plugins/#mt-list

■ 日本語の文字化け対策と rssfeed のインストール参考ページ

euc-jp.enc
http://blog.bulknews.net/mt/archives/000006.html

mt-jcode.pl
http://blog.bulknews.net/mt/archives/000007.html

■ LP.pm モジュール追加

mt-rssfeed.tar.gz の中に含まれる LP.pm を $MT/extlib/XML/RSS 以下にコピーする。($MT は、MovableType を設置したディレクトリ)
RSS というディレクトリがない場合は作成して下さい。

■ XML::Parser の Encodings 追加

$MT/extlib/XML/Parser/Encodings 以下に euc-jp.enc を置く。

■ mt-rssfeed.pl の設定

my $RSSFEED_DATA_DIR = "/usr/home/yourname/rssfeed/";

RSS のキャッシュを保存するためのディレクトリを作成して指定します。ディレクトリのパーミッションは、CGI が書き込める 777 などにする必要があります。

■ プラグインの追加

$MT/plugins 以下に次のファイルをコピーする。

mt-rssfeed.pl
mt-list.pl
mt-jcode.pl

■ テンプレートの編集

トップページに表示させたいので Main Index に以下を追加しました。

<MTList name="feeds">
http://slashdot.jp/slashdot.rdf
http://japan.cnet.com/rss/index.rdf
http://www.hotwired.co.jp/news/index.rdf
http://pcweb.mycom.co.jp/haishin/rss/index.rdf
http://www.atmarkit.co.jp/rss/rss2dc.xml
</MTList>
 
<MTListLoop name="feeds">
<MTRSSFeed>
<div class="sidetitle">
<a href="<$MTRSSFeedLink$>" target="_blank"><$MTRSSFeedTitle jcode="euc"$></a>
</div>
 
<div class="side">
<MTRSSFeedItemsExist>
<MTRSSFeedItems lastn="10">
<a href="<$MTRSSFeedItemLink$>" target="_blank">
<MTRSSFeedItemTitleExists><$MTRSSFeedItemTitle jcode="euc"$></MTRSSFeedItemTitleExists>
</a><br />
</MTRSSFeedItems>
</MTRSSFeedItemsExist>
<MTRSSFeedTitleExists>> <$MTRSSFeedCacheDate format="%B %e, %Y %H:%M"$></MTRSSFeedTitleExists>
<br />
</div>
</MTRSSFeed>
</MTListLoop>

さらに詳しい説明は、

% perldoc mt-rssfeed.pl
% perldoc mt-list.pl

で表示されます。

これで Main Index をビルドすれば他サイトの RSS が取り込まれて表示されるようになります。以下は、もうちょっと便利に使う方法。

■ テンプレートの分割

トップページ(Main Index)などに上記のタグを追加すると、書込みするたびに RSS を取得しに行くので重くなってしまいます。

そこで、上記の記述を別のテンプレートに保存して Main Index のテンプレートに

<$MTInclude file="(出力ファイル名)"$>

を書いて取り込むと便利です。

新しい Index Template は、管理室の「Template の編集」で作成します。

今回は

◯Template の名前: RSS List
◯出力ファイル名: rss_list.html
◯「Index Template を Rebuild するときに自動的にこの Template を Rebuild する」のチェックを入れない。

で作りました。そして、取り込みたい所に

<$MTInclude file="rss_list.html"$>

を記述しておきます。

rss_list.html の更新は、mt-rssfeed.tar.gz の中に含まれる mt-rebuild.pl を $MT 以下に置いて cron で定期的に実行すると良いでしょう。

例えば以下のような感じです。

0 */1 * * * /path/to/mt-rebuild.pl -mode=index -blog_id=1 -template="RSS List" && \
/path/to/mt-rebuild.pl -mode=index -blog_id=1 -template="Main Index"

/path/to/ の部分は、mt-rebuild.pl があるディレクトリ($MT)までのパスを記述します。

-blog_id= で指定する番号は、MovableType の管理室にアクセスした時にブラウザに表示される URL を見ると分かります。 例えば

mt.cgi?__mode=view&_type=entry&id=14&blog_id=1

などになっていれば、blog_id が 1 なので -blog_id=1 を指定します。

余談ですが、ついでに各ページに表示するヘッダーとフッター部分も別のテンプレートに分けて

<$MTInclude file="header.html"$>
<$MTInclude file="footer.html"$>

で取り込むことにしました。

■ SSI を活用する(2003/11/24 追記)

cron で Main Index (index.html) をリビルドするのは無駄なので、トップページだけ SSI を使って rss_list.html を動的に読み込んで表示することにしました。そうすれば cron で rss_list.html を更新するだけで済みます。

トップページを SSI (index.shtml) で表示するための .htaccess の設定例

Options +IncludesNoExec
AddType "text/html;" .shtml
AddHandler server-parsed .shtml
DirectoryIndex index.html index.shtml

Main Index の出力ファイル名を index.html から index.shtml に変更して
テンプレート(Main Index) に記述していた

<$MTInclude file="rss_list.html"$>

<!--#include file="rss_list.html"-->

に変更します。

cron の設定は

0 */1 * * * /path/to/mt-rebuild.pl -mode=index -blog_id=1 -template="RSS List"

のみに変更しました。

2004/06/03 追記
サイトを増しすぎて右側がやけに長くなってしまった。少し整理。

TrackBack(13)
TrackBack URL for this entry: http://www.asmate.net/mt/mt-tb.cgi/10
mt-rebuild.plの自動実行
Excerpt: Quoted from@smate.NET: mt-rssfeed.pl & mt-list.pl rss_list.html の更新は、mt-rssfeed.tar.gz の中に含まれる mt-rebuild.pl を $MT 以下に置いて cron で定期的に実行すると良いでしょう。...
Weblog: Nakayama Weblog
Tracked: January 10, 2004 09:48 PM
Movable Typeをcron jobで定期的且つ自動的にRebuildする方法。
Excerpt: 当サイトではRSS Feedプラグインをlinkに使ってYahoo!からニュースを取得しており、定期的にそれを更新する必要がある。また、weblogではカレンダーの部分で今日の日付を異なる色で表示したり、countdownプラグインを利用してカウントダウンをしているので、最低一日1回は...
Weblog: weblog
Tracked: February 5, 2004 03:02 AM
RSS feedをBlog上に表示
Excerpt: Goodpic: RSS feedをBlog上に表示するためのPlug-in @smate.NET: mt-rssfeed.pl & mt-list.pl φ(._.) メモメモ...
Weblog: Blog@ZeroDimension
Tracked: February 11, 2004 01:14 PM
mt-rssfeed
Excerpt: 指定したRSSを表示してくれるMTプラグイン。 前から試してみたかったので、とりあえず理由もなくつけてみる。 インターネットウォッチのRSSをBulknewsからいただき、表示。 下記のサイトを参考させていただきました。 http://blog.bulknews.net/mt/archives/000006.html h...
Weblog: blog.nisk.info
Tracked: February 14, 2004 01:18 PM
子ども会ニュースに、Yahooのニュースを表示しよう
Excerpt: 子ども会ニュースに、Yahooのニュースを表示しよう ってんで、 MyRSS.jp と @smate.NET: mt-rssfeed.pl & mt-list.pl を参考に作成。...
Weblog: はぢめ雑記張
Tracked: February 20, 2004 05:02 PM
日本で配布されているRSSファイル一覧
Excerpt: rss-jp.net 日本で配布されているRSS(RDF Site Summary)ファイルの一覧が見られる。 これだけあると壮観。 2ちゃんねるのスレッドRSSも独自に生成しているみたい。ぼくは2ちゃんには興味ないけど。 このサイトの右上に mt-rssfeedというmovable typeのプラグインでヤ...
Weblog: [nyolog] ニョログ
Tracked: February 29, 2004 06:08 AM
他サイトのRSS Feedを取り込もう!!
Excerpt: Top PageにNewsを表示したい!というリクエストに答えるべくmt-rssfeedのインストールを行いました。と言っても @smate.NET: mt-rssfeed.pl & mt-list.plにあるとおりにやっって終わりでしたが。。。 ただ、我が家はTop PageがPHPなのでSSIではなくてPHPで取り込んでます...
Weblog: Kishi-chan.net Blog
Tracked: July 3, 2004 09:35 AM
ニュースヘッドラインの表示
Excerpt: mt-rssfeed.plを拾ってきます。 mt-rssfeed.tar.gz ...
Weblog: DEAR GREEN FIELD
Tracked: July 14, 2004 03:23 AM
mt-rssfeed
Excerpt: @smate.NET: mt-rssfeed.pl & mt-list.pl @smate.NETさんを参考にmt-rssfeedをインストール.参照したサイトの内容が詳しいのでインストール方法は省略.eucでもないのでそのあたりも省略....
Weblog: LAPISLAZULI HILL Underground Lab Dairy Log
Tracked: October 1, 2004 02:46 PM
RSSFeedプラグイン
Excerpt: 両方のblogにお互いの最新記事リストを表示したかったので、RSSとやらを利用す...
Weblog: procedure Assiriya;
Tracked: October 17, 2004 09:58 PM
cronが使えなくてもRSSfeedを自動化
Excerpt: MTにRSSを取得、表示できるプラグインがありますが、cronが使えない場合は使えないというか、手動でリビルドまたはコメント、トラックバックがあった時に更新みたいな。 コメント、トラバが多いブログではcronが使えなくてもそれなりに使えるのですが、ここみたいに寂しげ...
Weblog: e-Groover,log
Tracked: October 25, 2004 04:02 PM
rssfeedを使ってニュースのヘッドラインを表示
Excerpt: 各ニュースサイトなどで提供されているRSSフィードを使って、サイドメニューにニュ...
Weblog: 55Link.com
Tracked: January 7, 2005 04:30 PM
外部RSSの出力
Excerpt: MovableTypeの文字コード自体がEUCで、かなり文字化けしはまりました。...
Weblog: ひよっこプログラマーの日記
Tracked: January 19, 2005 08:48 PM
Comments (0)
コメントする









名前、アドレスを登録しますか?







Since 2003.6.19, Yutaka@smate.NET <yutaka@asmate.net>. Powered by MT 2.64