Movable Type 備忘録

 

 RSSパーサで気になるサイトをチェック!

RSSリーダって知ってますか!?
気になるサイトのRSSのURLをRSSリーダに登録しておくことで、そのサイトの更新がすぐ分かるので、結構重宝しています。

今回はRSSリーダを使用せず、自分のサイト内に気になるサイトの最新記事一覧を表示するカスタマイズやってみました。

カスタマイズ方法

気になるサイトの最新記事一覧を表示させるには、mt-rssfeedmt-listプラグインをインストールすることで、複数のサイトの最新記事一覧を表示させることができます。

今回参考にさせていただいたサイトは湯ブログ様です。

mt-rssfeedプラグインの入手はこちらから▼
http://bizcaz.com/archives/shoco/mt/plugins/mt-rssfeed.pl
mt-listプラグインの入手はこちらから▼
http://bizcaz.com/archives/shoco/mt/plugins/mt-list.pl
mt-jcodeプラグインの入手はこちらから▼
http://bizcaz.com/archives/shoco/mt/plugins/mt-jcode.pl
LP.pmの入手はこちらから▼
http://bizcaz.com/archives/shoco/mt/extlib/XML/RSS/LP.pm

mt-rssfeed、mt-list、mt-jcode および LP.pm は、配布を終了しているようなので、わたしのサイトから右クリックでダウンロードしてください。

まず、上記URLからダウンロードした mt-rssfeedプラグインに、RSSフィードを保存する場所を指定します。
mt-rssfeed.pl をテキストエディタで開いて、以下のように変更します。

ここではRSSフィードの保存場所を index.html と同じ場所に rssfeed というディレクトリを作って、そこに保存するものとして説明します。

15行目
変更前
my $RSSFEED_DATA_DIR = "/home/blog/cgi-bin/rssfeed/";
変更後
my $RSSFEED_DATA_DIR = "/home/www/●●●/rssfeed/";

最後は必ず「/」で終わるようにしてください。

次に、同じファイルの286行目を変更します。
こちらは湯ブログさんの方で変更済なようで、特にわたしたちは何もする必要はありませんが、一応明記しておきますね。

286行目
変更前
return MT->VERSION<strong><</strong>'2.50'?_decode_xml_fallback($value):decode_xml($value);
変更後
return MT->VERSION <strong>lt</strong> '2.50'?_decode_xml_fallback($value):decode_xml($value);

今度は上記URLからダウンロードした mt-jcode プラグインを修正します。

この修正は、自分のサイトの文字コードが UTF-8 でないなら変更する必要はないようです。

文字コードが分からない人は、ブラウザで自分のサイトを開いて、右クリックで「ソースの表示」を選択して、ページのソースから charset というキーワードを探して確認してください。
mt-jcode.pl をテキストエディタで開いて以下のように修正します。

変更前
my $from = Jcode::getcode($str) || 'utf8';
変更後
my $from = 'utf8';

修正が終わったら、各ファイルをサーバにアップロードします。
mt-feed.plmt-list.plmt-jcode.plプラグインは、mt/plugins/ディレクトリの中にアップロードします。

PL.pmmt/extlib/XML/ の中に RSS というディレクトリを新規作成して、その中にアップロードしてください。

次に、RSSフィードを表示させるテンプレートを作成します。
MovableType(ムーバブルタイプ)の管理画面から表示させるブログを選択して、画面左の「テンプレート」をクリックします。

そして画面上部にある「テンプレートを新規作成」というリンクをクリックしてください。
入力する内容は以下の通りです。

テンプレート名:
Rss Feed
出力ファイル名:
rssfeed.php
このテンプレートにリンクするファイル:
未記入でいいです。
テンプレートの内容:以下のコードをコピペしてください。
<MTList name="feeds">
http://www3.asahi.com/rss/index.rdf
http://hotwired.goo.ne.jp/news/index.rdf
</MTList>

<MTList name="feeds">
http://www3.asahi.com/rss/index.rdf
http://hotwired.goo.ne.jp/news/index.rdf
</MTList>

<MTListLoop name="feeds">
<MTRSSFeed>
<h3><$MTRSSFeedTitle
jcode="utf8"$></h3>
<ul><MTRSSFeedItems
lastn="5">
<li><a href="<$MTRSSFeedItemLink
jcode="utf8"$>"><$MTRSSFeedItemTitle
jcode="utf8"$></a></li>
</MTRSSFeedItems></ul>
</MTRSSFeed>
</MTListLoop>

緑の字の部分に気になるサイトのRSSのURLを追加します。

表示が文字化けしてしまった場合は、青い字の部分を削除してみてください。

わたしのサイトでは削除することで正しく表示されました。
赤い字には、1つのサイトで表示する最新記事数を指定します。

一通り入力したら、保存して再構築します。

最後に、トップページなどに上記で作成したテンプレートを読み込むよう修正します。
PHP化を行っている人は、以下のコードを表示させたい場所に追加してください。

<?php include('<$MTBlogArchiveURL$>rssfeed.php'); ?>

PHP化を行っていない人は、代わりに以下のコードを追加します。

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

追加ができたら、保存して再構築します。

以上で、気になるサイトの最新記事一覧を表示することができました。
ですが、このままではホットな最新記事を表示させることができません。 上記テンプレートが再構築されない限り、ずっと同じ最新記事一覧が表示されてしまいます。

そこで、自動的に再構築してみましょう。
自動的に再構築させるにはこちらのMovableTypeを自動的に再構築するで紹介しています。
参考にしてください。

 Trackback Pings(2)

from satowe-blog

MovableType備忘録: RSSパーサで気になるサイトをチェック! ドリコ...

from 青色日記 RGV250ガンマとF650GSに乗るちびっこの日常

同じmt.cgiで動くブログではなく、 全く他のサイトの更新情報を表示する方法 参考サイト: 湯ブログさま MovableType Memoさ...

 Comments(4)

#1: Posted by oscar Author Profile Page [RES]

こんばんは、oscarです。
未だにDakinyさんと本の件で打ち合わせ中です。
Dakinyさんがmt-rssfeedを紹介したがっていたので、bzbellさんの記事を取り上げるつもりでしたが、リンク切れ(404)の様です。
これらのプラグインって、まだお持ちになってますか?

#2: Posted by bzbell Author Profile Page [RES]

>>1 oscar さん

こんにちわ^^

> 未だにDakinyさんと本の件で打ち合わせ中です。
そうなんですか、大変ですががんばってくださいうぅ~ん
最近は記事の投稿などされてたので落ち着いたのかと思ってました。

> これらのプラグインって、まだお持ちになってますか?
ありますよバイバイ

#3: Posted by oscar Author Profile Page [RES]

こんにちは。
早速ありがとうございます。甘えついでにLP.pmもお願いして良いですか?

>最近は記事の投稿などされてたので落ち着いたのかと思ってました。
ええ、ひと段落している所ですよ。溜まっていたネタを放出中です。

#4: Posted by bzbell Author Profile Page [RES]

>>3 oscar さん

こんにちわ^^

先ほど oscar さん宅にお送りしましたのでご確認くださいもじもじ

 Post a Comment

コメント用フィード