読者です 読者をやめる 読者になる 読者になる

Plone で RSS フィード付きのポータルタブコンテンツを作成する

python zope/plone

nakagami さんから Zope/Ploneアドベントカレンダー 2009 のバトンが贈られてきました。Plone サイトにブログプロダクトを追加して RSS フィードを配信するのに挑戦してみます。ポータルタブの News や Events がどのようにして作成されているのかを確認しながら真似してみました。今回はブログコンテンツを作成しましたが、この方法はブログに限った方法ではないので、他のコンテンツにも使えそうです。

私の環境は以下の通りです。Zope/Plone のインストール方法はこちらを参考にしてください。

# lsb_release -a
LSB Version:	:core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID:	CentOS
Description:	CentOS release 5.4 (Final)
Release:	5.4
Codename:	Final

# rpm -q zope plone
zope-2.10.9-1.el5
plone-3.1.6-1.el5

アドオンプロダクトのインストール

Plone には標準でブログツールが含まれていないようです。先ずは、ブログ用のアドオンプロダクトをインストールしてみます。私はどのようなプロダクトがあるのか、よく知らないので本多さんのサイトでも使用されている Scrawl をインストールしてみます。個人的には、シンプルで軽いものが好きです。

Zope にアドオンプロダクトを読み込ませるために、
所定のディレクトリに保存して再起動します
# tar zxvf Scrawl-1.3.1.tgz
# mv Scrawl /var/lib/zope/Products/
# ls /var/lib/zope/Products/
README.txt  Scrawl
# service zope restart
zope を停止中:                                             [  OK  ]
zope を起動中:                                             [  OK  ]

インストールに成功すると ZMI(Zope Management Interface) の /Control_Panel/Products で確認することができます。

Plone サイトのサイト設定からアドオンプロダクト画面へ進みます。

インストール可能なプロダクトに Scrawl が表示されるので選択してインストールします。

ホームに戻り「新規項目を追加」に「Blog エントリー」が表示されていればインストールに成功です。

アドオンプロダクトのインストールが完了しました。

ポータルタブのコンテンツ追加

次にポータルタブにブログ用のコンテンツを作成してみます。ここで Plone にはコレクションという、任意のコンテンツタイプ(ニュースやイベント、画像、ブログエントリ等)に対して、指定した条件にマッチしたものを表示する仕組みがあります。詳細は省きますが、この仕組みを使うと RSS フィードも自動生成してくれるようです。プロダクトの開発者からすると、プロダクトのコンテンツ毎に RSS フィードの配信機能を開発する必要がなくて、とても良い仕組みですね。

さて、ホームの「新規項目を追加」から「フォルダ」を選択して「Blogs」という名前で追加します。

フォルダを追加したら「Blogs」の「新規項目を追加」から「コレクション」を選択します。

タイトルを「My Blog」として保存します。


検索条件のタブを選択し、フィールド名に「項目の種類」を選択して「条件を追加」します。

「項目の種類」の値に「Blog エントリー」を選択し保存し、ソート順のフィールド名に「発行日」を選択し、「逆」にチェックして保存します。


ブログ用の RSS フィードであれば、1つのコレクションを追加しただけでも機能しますが、ここでは、さらに Events で使用されているようなコレクションの階層構造で複数の条件設定も試してみます。

「My Blog」から「コレクションを追加」を選択し「Refine Plone」という名前で、条件の継承にチェックを入れて保存します。「My Blog」で「Blog エントリー」の条件を引き継いで、サブコレクションでさらに絞り込み条件をセットすることができます。例えば、「タイトル」に「Plone」で絞り込みを行います。



これで準備は整いました。全てのコンテンツの「状態」を「非公開」から「公開」へ変更した後で「Blogs」に戻ります。そして「表示」の「デフォルトビューにするコンテンツ項目を選択...」から「My Blog」を選択して保存して完成です。


これで Events の同じ構造のコンテンツタブが作成できました。Blog エントリーを追加していくと、Blog サイト風な見た目になります。

ラージフォルダの追加

厳密には、News や Events はフォルダではなく、ラージフォルダで作成されているようです。基準がよく分かりませんが、大量のアイテムを追加する場合はフォルダよりもラージフォルダの方が効率が良いようです。デフォルトでは、ラージフォルダは「新規項目を追加」の項目には表示されません。ラージフォルダを有効にするには ZMI から /myplone/portal_types/Large Plone Folder の画面で "Implicitly addable?" をチェックして保存します。

次のバトンはさかとくさんへお贈りします。よろしくお願います〜。

リファレンス:
http://ml.plone.jp/pipermail/plone-users/2009-January/001622.html
http://www.vasudevaservice.com/plone_administration/how_to_add_a_plone_large_folder