Plone 雑記帳

2005/05/21 作成
2007/09/29 更新

 以下の記述は、Plone 2.0.x をベースに書いているので、記述のほとんどが現在では正しくないと思います。参考のために残しておきますが、内容の正当性についてはよく検討してください。(2007/09/29)

Ploneについて気づいたことを取り留めなく書いてみる。人に読んでもらうことを考えてないので、意味不明な点があるかも。

カスタマイズについては Plone カスタマイズメモ 参照。

Group User Folder とファイルの共有について

内部的には、Group名に相当するユーザーを作っている。
Groupに参加させたい Userに Group の権限を与える(どうやって?)ことにより、
Groupに User が属するという概念を実現している。

Ploneの共有タブでのファイルの共有は、その Group(という内部的にはユーザー)や
純粋な意味のユーザーに Proxy Roleで、所有者(Owner)権限を与えることによって行っている。
$portal_url/acl_users/Users/acl_users/manage_main でできるけど)

Group の数だけ Role を作成しなくても良いので便利。
 

Group Workspace

Ploneでは、Groupを作った時に、(Groupを作った Manager が Owner となって)$portal_url/groups/[グループ名] というフォルダができる(portal_groups で設定の変更ができる)。

そのフォルダは、対応するグループが所有者として共有(Ownerの Local Role を付加)されているので、デフォルトでグループのメンバーがコンテンツを共有できる。

(問題点)
グループ Foo に所属する Alice が $portal_url/groups/Foo にドキュメントを作成した後に、Aliceが異動で グループ Foo を外されても、引き続きドキュメントの所有者は Aliceなので、編集や Workflowの移動ができてしまう。

コンテンツに Local Roleを割り当てるのではなく、所有者自体を変更する方法はないかの?
 

Portal Member Area

Member が最初にログインすると、$portal_url/Members/[ユーザー名] というフォルダ
ができるが、メンバー名のフォルダを作るかどうかと、「Members」 というフォルダ名
は portal_membershipで変更できる。

 

Zope の Role とPlone の Role のマッピング

他の acl_users で割り振られているユーザーの Role と Ploneでの Role (Member,Reviewer,...)のマッピングが、portal_membershipできる。

 

Ploneでの Roleの設定について

ユーザーに直接 Roleを与えるのではなく、ユーザーをグループに所属させて、
グループに Roleを設定するようになっている。

 

カレンダーに表示する種別

デフォルトでは、Event だけだけど、portal_calender の Configureタブで設定できる


個人設定を自分で変えられないようにする

ZMI のセキュリティタブで Set own properties の Authenticated のチェックを OFF。
ただし、これだと自分のパスワードまで変えられなくなってしまう。
Set own password のチェックを OFFにすると、パスワードだけが変えられなくなる。
 

Free Plone Skins

バランスの取れた配色の skinを一から作るのは作るのは大変なので、これをベースにカスタマイズすると良いかも。
お金を出せば、この会社でオーダーできるらしい(http://skins.quintagroup.com/gallery)。
 

ControllerとValidator

Plone では、フォーム変数の値チェックができる Controller Page Template オブジェクトと
Controller Python Script オブジェクトが用意されている。
それらのオブジェクトでは、Validation タブで、値チェックをする Controller Validator オブジェクトを指定する。
また、Actions タブで、Validationがうまくいった場合やうまくいかない場合に、
次にどのような動作をするか指定する。
Controller Validator オブジェクトは、status という変数を持つ点だけが Python Scriptと 異なり status に、値チェックをした結果を入れる。

 

Definitive Guide to Plone

サポートページ http://plone-book.agmweb.ca/

python で書く Content Type の例

他に、SilverCity http://silvercity.sf.net/ のインストールが必要

portal_tool の例


 

ArchType を使った新規のコンテンツタイプの作成

validators=() の指定で入力の値チェックをする validator を指定できるみたいだけど、値を設定する前にオブジェクトが作成されるので注意。
(validationの範囲外の値を持つオブジェクトが存在することになる)

あと、Range Validator はうまくいかないみたい( http://www.liris.org/zope/blog/419)。

 

CMFBoard

レーダー雨量 Portlet

思い立ったが吉日生活

左下にある「Plone プロダクト」が参考になる

PloneCollectorNG

Structured Text のドキュメント

 

 


Zope メモ