2008-10-01から1ヶ月間の記事一覧

GenericSetup を使って、コンテンツを作成する

GenericSetup を使うと、プロダクトのインストール時に、コンテンツを作ることができます。作り方は単純で、作成するコンテンツにマーカ・インタフェースを追加して、所要の設定ファイルを用意するだけです。この処理をやってくれるコードは、Procuts/CMFCor…

Archetypes:フィールドへのVocabularyの与え方

以下は、Products.Archetypes.Field.FieldクラスのVocabularyメソッドのdocstringです。 Returns a DisplayList. Uses self.vocabulary as source. 1) Static vocabulary - is already a DisplayList - is a list of 2-tuples with strings (see above) - is…

default-zpublisher-encoding

プロダクトのプロファイルにactions.xmlを入れて、サイト・アクションのタイトルを日本語にしたら、インストールの際にエラーが出る。調べてみると、ZPublisherのデフォルト・エンコーディングがiso-8859-15になっているのが原因らしい。どこで設定したらよ…

コピーしたオブジェクトのid

オブジェクトを同じフォルダ上にコピーすると、idがカブるので、自動的に"copy_of_hoge"とidを振ってくれます。この処理は、OFS.CopySupport.CopyContainerクラスの_get_id()メソッドでやってます。例えば、"copy_of_"を,日本語Windowsのように"コピー〜"と…

Versioning

Plone3.1のバージョニング機能は、CMFEditionsによって実現されている。コンテンツ・タイプごとに、バージョニングのON/OFF、保存のたびに自動でバージョンを更新するか、ユーザが指定してやるのか、を選ぶことができるらしい。これまで使ってきたところでは…

Acuisition

Acquisitionのtest.pyを読んでみました。Acquisitionは、オブジェクトの属性を、その環境から取得するためのメカニズム。継承に似てるけど、継承の階層をトラバースするんじゃなくて、包含関係をトラバースする。下の例のように、ExtensionClass.Baseをmix-i…

membrane

ちょっとコードを読んだのでメモ インタフェース IMembraneUserRoles IUserRelated と PASのIRolesPluginを継承 実装クラスはRolesとGroupAwareRoles IMembraneUserGroups IUserRelated と PASのIGroupsPluginを継承 実装クラスはGroupsとSelectedGroups。ど…