RSS Aggregator改造版
- 2007年4月 8日(日) 16:38 JST
- 投稿者: mystral-kk
- 表示回数 6,296
SaYさんが作成したRSS AggregatorがGeeklog-1.4.1では動作しないというレポートがGeeklog.jpの掲示板に複数,寄せられていた。関心があったので,ハックしたものがこれ。オリジナル版との違いは,
- Geeklog-1.4.0, 1.4.1のどちらでも動作する。
- lib-common.phpを改造する必要はなくなった。必要な関数は皆phpblock_rssaggregator.phpに含まれている。
- タイムスタンプは,RSS2.0で使われているRFC822フォーマットだけでなく,Atom1.0などでも使われているISO.8601.1988フォーマットにも対応。
- フィードデータを表示するHTMLコードを指定可。
- 記事が更新された時刻を表示可。
- 簡単なキャッシュ機能を実装。
- フィードデータに含まれるURLをサニタイズ。RSSインジェクションをある程度防げる。実装の際には,XSS Cheat Sheetを参考にした。
ただ,問題点もあり,設置するサイトによっては文字化けしてしまう。PHP4を使うと文字化けするようなのだが,理由はまだわからない。Geeklog.jpに設置した場合がそうなのだが,phpblock_rssaggregator.phpの254行目を
$feed = $factory->reader( $rdfurl, $_CONF['default_charset'] );
から,
$feed = $factory->reader( $rdfurl, '' );
に変えると正常に動作することから,XMLパーサ関数に関連する不具合のようだ。この問題を解決すれば,使い勝手のよいものになりそう。Geeklog.jpの左ブロックに,RSS Aggregatorのデモを表示しているので,よろしければどうぞ。
タグ:rss rss_aggregator