2

メンバーがログインすると、特定のメンバーのフォルダーが作成される Plone メンバー フォルダー機能を使用しています。

ログイン時に作成するフォルダを追加するには? メンバーの名前が入ったフォルダだけでなく、その中のいくつかのフォルダも?

4

2 に答える 2

3

スキン メソッドを作成notifyMemberAreaCreatedして、新しく作成されたメンバー フォルダにコンテンツを追加できます。スクリプトは、この新しいフォルダーのコンテキストで呼び出されます。

これがビューやイベント ハンドラーではなくスキン スクリプトでなければならない理由は、Plone のこの部分が CMF の古い機能に由来するためです。この機能は、最新の API 標準にまだ更新されていません。

notifyMemberAreaCreated.pyPython スキン スクリプトの例を次に示します。

## Script (Python) "notifyMemberAreaCreated"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=Modify new member area
##

context.invokeFactory('Folder',id='subfolder')
context.subfolder.setTitle('Your new subfolder')
context.reindexObject()

このスクリプトにManagerプロキシの役割を与える必要がある場合があります。ファイルシステムでこのスキン スクリプトを定義する場合、カスタム スキン レイヤーで、.metadataファイル ( という名前notifyMemberAreaCreated.py.metadata) を追加して、このプロキシ ロールを設定します。

[default]
proxy=Manager
于 2012-08-07T14:45:28.917 に答える
2

Plumi (http://pypi.python.org/pypi/plumi.app) では、その方法を確認できます。最初に plumi.app のプロファイルにあるフォルダー構造は、インストール時に、いわゆる default_member_area に作成されます。notifyMemberAreaCreated.py では、default_member_area が新しいメンバー フォルダーにコピーされます。

于 2012-08-07T17:16:14.730 に答える