Archive for the ‘grok’ Category
イベントハンドラは、Ploneの開発でも役に立ちます。
イベントハンドラは、デスクトップアプリなどでは、よく使っています。このイベントハンドラですが、Plone 3 から利用できるようになっていて、とても便利です。ただ、zcmlに書いたりとしてめんどくさいのも事実です。しかし、Five.grokを使うことでこの面倒なことがなくなり、非常に使いやすくなりました。
何が便利かといえば、例えば、あるコンテンツを生成したとき、同時に、作成したオブジェクトの中にコンテンツを作成したい時などです。(Archtypesを使えば、initialized_archtypes()メソッドで実現できますが。)
この場合は、コンテンツを生成してコンテナに登録されたとき、追加されたことを知らせる、IObjectAddedEventが発生するので、このイベントを使って、コンテンツを追加する操作を行います。
下記のコードは、IAobjインターフェイスを持ったAobjがあり、Aobjが追加された時に、idを「b」としてBobjを追加する方法です。サンプルのコンテンツは、Dexterity FTIを使っていることとします。
from five import grok
from zope.app.container.interfaces import IObjectAddedEvent
from plone.dexterity.utils import createObject
・・・中略・・・
@grok.subscribe(IAobj, IObjectAddedEvent)
def addedAobj(aobj, event):
bobj = createObject('Bobj', title=u'B')
aobj['b']= bobj
なお、イベントハンドラは、追加のほかに、編集が終了した時に発生するIObjectModifiedEventや、削除されたときに発生するイベントIObjectRemovedEventなどがあります。
IIS + WSGI Part-1
サーバーがWindows Server 2008になる可能性があるので,IIS からDjangoやZope3を使うための方法を探してみた.
pyisapie
http://apps.sourceforge.net/trac/pyisapie/
isapi-wsgi
http://code.google.com/p/isapi-wsgi/
いろいろあった.
これから,VM上にWindows Server 2008環境を作ってテストしてみる.
続く
Grok : Zope3をベースとしたWeb Framework
Grokをまじめに始めました.GrokはZope3をベースとしたWeb Frameworkです.とっても扱いやすいです.zcmlをほとんど意識しないのが新鮮.
これから,簡易CMSの作成をしていくつもり.
以下,機能など.
- 追加・変更・削除ができる
- フォルダ
- ドキュメント
- ファイル(画像など)
- コンテンツの階層管理
- メールフォーム
- アクセス制限
- ユーザ認証
- ワークフローによる公開プロセス
- リッチなドキュメントエディタ