プログラマーになりたい。

プログラミングや写真や本や読書会のことや、日常のこと。

Kinowiki の RSS プラグインに、無理矢理 RSS 2.0 を吐かせる

Google Webmaster Tools からサイトマップを登録することができますが、登録できるのは身近なところでは RSS 2.0 か Atom 0.3。

そこでRSS 2.0が欲しかったんですが、ところがKinoWikiのpluginフォルダには RSS10 (RSS 1.0 のみ対応)しかない。というわけで自作しました。うまく検索すれば似たようなプラグイン(or もっとましなやつ)をつくった人はいそうですが、どうも、うまく検索できなかったみたいなんで…。

とはいえPHPコードはRSS10プラグインからいただきました。フォルダごとコピペして、ファイル名(とファイル名をハードコーディングしてある部分と)とテンプレートを変更しただけ。なのでdescription(普通は本文かその抜粋を入れる)が空です。ひどいですね、ええ。ちなみに使用法は (当然ながら)RSS10とほとんど同じ。

RSS 2.0 の仕様はhttp://hail2u.net/documents/rss20notes.htmlを参考にしました、が、適当に当てはめ直しただけですのであっちのURLとこっちのURLを取り違えてる!みたいな可能性もあります。テンプレートはだいぶちがくなるので、それだけは以下に示しておきます。

<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>{$sitename}</title>
    <link>{$baseurl}</link>
    <description>{$sitename} RecentChanges</description>
    <language>ja</language>
    <pubDate>{$list[0].timestamp
     | date_format:"%Y-%m-%dT%H:%M:%S+09:00"}</pubDate>
    <lastBuildDate>{$list[0].timestamp
     | date_format:"%Y-%m-%dT%H:%M:%S+09:00"}</lastBuildDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>

  {foreach from=$list key=key item=item}
    <item>
      <title>{$list[$key].pagename}</title>
      <link>{$list[$key].url}</link>
      <description></description>
      <pubDate>{$list[$key].timestamp
       | date_format:"%Y-%m-%dT%H:%M:%S+09:00"}</pubDate>
      <guid>{$list[$key].url}</guid>
    </item>
  {/foreach}
  </channel>
</rss>

つづく。

Creative Commons License ©2007-2016 IIDA Munenori.