更新情報をRSSで提供
各種blogやニュースサイトと同じように、ploneサイトの更新情報をRSSで提供する方法を説明します。
目次
RSS配信コンテンツを作成[create]
RSSは色々と規格が存在するようで、今回は RSS 1.0 と RSS 2.0 に対応するようにします。
スキンの作成[skin]
- 最初に以下の2つのソースコードをダウンロードします。
- 次にzopeの管理画面を開き、
portal_skin/customフォルダにアクセスします。
- Page Templateアイテムを追加します。
- ダウンロードしたファイルを指定して、'Add and Edit'ボタンをクリックしてPage Templateアイテムを作成します。
- すると以下のようにエラーメッセージが表示されますが、これは
Content-Typeがtext/xmlではなくtext/htmlとなっているためです。 (画像の右上をチェックしてください。)
Content-Typeをtext/xmlに変更して保存すると、以下のようにエラーメッセージが表示されなくなります。
- 上記の処理を繰り返し
index.rdf,index.xmlという2つのアイテムを作成します。
フォーマットを確認[check]
作成した2つのファイルが配信する内容が、フォーマット的に正しいかを Feed Validator を使用してチェックします。
下記のURLを使ってチェックして、フォーマットに問題がないことを確認しました。
- http://feedvalidator.org/check.cgi?url=http://takanory.net/index.rdf
- http://feedvalidator.org/check.cgi?url=http://takanory.net/index.xml
ソースの変更[modify]
配信対象となるのは、最近公開(published)したアイテムを新しい順に15件としています。 件数や対象とするアイテムの種類を限定したい場合は、両方のソースの下記のアイテムを検索する部分を書き換えてください。:
<tal:search tal:define="results python:here.portal_catalog.searchResults(
sort_on='modified',
sort_order='reverse',
review_state='published')[:15]">
まずは、検索部分について説明します。
- 対象となる件数を変更する場合は
[:15]の部分の数字を変更します。 - 対象とするアイテムの種類を限定する場合は、
portal_typeという条件を追加します。 例えば、文書とフォルダのみを対象とする場合は以下のように変更します。:review_state='published', portal_type=['Document','Folder'])[:15]">
headerを変更[header]
次に、RSS情報へのリンクをHTMLのヘッダに入れるために、ploneのヘッダを定義している部分を変更します。
- zope管理画面を開き
portal_skins/plone_templatesにアクセスします。
headerを選択してCustomizeボタンをクリックして、編集用にcustomフォルダにコピーします。
- コピーした
headerに以下のようにRSS情報へのリンクを追加します。変更前:
<!-- Basic crude style for Netscape4.x - This can be removed if you don't want the special NS4 look - it will still work, just be plain text instead. Column layout for Netscape4.x included --> <link rel="Stylesheet" type="text/css" href="" tal:attributes="href string:$portal_url/ploneNS4.css" />変更後:
<link rel="alternate" type="application/rss+xml" title="RSS 1.0" href="" tal:attributes="href string:$portal_url/index.rdf" /> <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="" tal:attributes="href string:$portal_url/index.xml" /> <!-- Basic crude style for Netscape4.x - This can be removed if you don't want the special NS4 look - it will still work, just be plain text instead. Column layout for Netscape4.x included --> <link rel="Stylesheet" type="text/css" href="" tal:attributes="href string:$portal_url/ploneNS4.css" /> - 変更後に plone サイトの任意のページを表示し、ヘッダにリンク情報が表示されていることを確認します。
また、
Firefox
で表示すると、ライブブックマークに追加するための表示が出るようになります。