Ploneでこれからオリジナルのコンテンツタイプを作成をお考えの方、Coreblog2のソースコードを読むといいです。
ぼくが以下のことを解決するために役に立った関数を紹介します。
A:「あるアイテムの生成時に、関連するアイテムも一緒に作りたい時」
B:「これら生成したアイテムに関連を結びたい時」
まず「A」、COREBlog2/content/coreblog2.py の initializeArchetype 関数
ここでは、Coreblog2が生成されるときに関連するアイテム(コメントを入れるフォルダ、画像を入れるフォルダ、カテゴリを入れるフォルダなどなど)をCoreblog2内に生成しています。
※initializeArchetypeは、クラスからインスタンスが作成されるときに実行される関数みたい。
次に「B」、COREBlog2/content/coreblogentry.py の addComment2Entry 関数
これは、エントリに対するコメントを生成する関数なのですが、コメントを生成して、そのコメントにエントリとの関連づけをしています。関数内で、エントリとコメントのリファレンスするとき、 self.addReference関数を使っています。
最後に、入力フォームのカスタマイズに役に立ったこと。
COREBlog2\skins\COREBlog2 ないの cbentry_edit.cpt
タイトル入力のフォームを表示するには、
<metal:fieldMacro use-macro="python:here.widget(‘title’, mode=’edit’)" />
って1行記述しているだけです。
続く。