2

我正在使用 Plone Member Folders 功能,其中在成员登录时创建某个成员的文件夹。

如何添加一些要在登录时创建的文件夹?不仅有成员名称的文件夹,还有里面的一些文件夹?

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 回答