院生エンジニアのにっき

  • Change style to Blue
  • Change style to Red
  • Change style to Green
  • Change style to Pink

RSSの投稿時刻の修正   2007-10-31

以前から指摘されていたRSSの投稿日時(pubDate)を修正しました。

このブログはCakePHP1.2系で構築されているのですが、RSSの出力にはFeedCreatorを用いているのですが、そのTIME_ZONEの指定が問題でした(というかデフォルトのまま使っていました)。

最新版のver1.7.2だとクレジット表記の後に

define("TIME_ZONE","+01:00");

とあるのですが、このままだと日本時刻で本当の投稿日時の8時間後になってしまうので、

define("TIME_ZONE","+09:00 GMT");

とすることで対応できました。

ちなみにRSSで出力するためのViewは以下のようになっています。

  1. <?php
  2.     vendor("feedcreator/feedcreator.class");
  3.  
  4.     $rss = new UniversalFeedCreator();
  5.     $rss->title = $feedTitle;
  6.     $rss->description = "";
  7.     $rss->link = FULL_BASE_URL . '/' . PROJECT_NAME. '/'.USER_NAME;
  8.     $rss->syndicationURL = FULL_BASE_URL .'/'. PROJECT_NAME .'/'. USER_NAME .'/rss';
  9.     $rss->cssStyleSheet = "";
  10.  
  11.     foreach ($rssData as $data) {
  12.         $item = new FeedItem();
  13.         $item->title = $data['title'];
  14.         $item->link = FULL_BASE_URL . '/' . PROJECT_NAME .'/'. USER_NAME . $data['link'];
  15.         $item->guid = FULL_BASE_URL . '/' . PROJECT_NAME .'/'. USER_NAME . $data['link'];
  16.         $item->description = $data['desc'];
  17.         $item->date = $time->toRSS($data['created']);
  18.         $rss->addItem($item);
  19.     }
  20.  
  21.     $rss->outputFeed("RSS2.0");
  22. ?>
  • $rss->link(ルートページ)
  • $rss->syndicationURL(RSSのURL)
  • $item->link(記事のURL)
  • $item->guid(記事を一意に判別するID→記事のURLでもOK?)

は当ブログにおけるURLなので、該当のURLに置き換えてください。


コメントを書く