跳转到主要内容

基于接口存储成员数据的支持

项目描述

简介

此包提供了通过zope.schema类型schemata构建和管理成员属性的支持。它作为PAS属性插件安装,默认情况下将数据存储在ZODB中。

一旦安装了插件,您就可以像平常一样编写schema接口,例如。

>>> from zope.interface import Interface
>>> from zope import schema
>>> class Hobbies(Interface):
...     """Details member's hobbies
...     """
...
...     favorite_hobby = schema.TextLine(title=u"Favorite hobby")
...     num_hobbies = schema.Int(title=u"Number of hobbies", min=0)

如果这在模块my.memberdata.schema中,您可以在Plone站点的acl_users/schema_properties/manage_propertiesForm中找到的schemata属性中添加以下内容

my.memberdata.schema.Hobbies

然后可以通过常规API访问属性,例如。

>>> member.getProperty('favorite_hobby')

请注意,字段名称必须是唯一的。如果字段在多个schemata中存在,则列表中列出的第一个schemata具有优先级。

默认字段

有一些默认字段,分布在几个schemata中。这些都在plone.app.memberschema.default中,包括

基础 – 全名和电子邮件地址 位置 – 位置和语言 详情 – 个人简介和主页 设置 – 其他个人设置

GenericSetup导入器

您可以使用GenericSetup以这种方式安装新的schemata。将名为memberschema.xml的文件添加到您的配置文件中,内容如下

<memberschema>
    <schema>my.memberdata.schema.Hobbies</schema>
</memberschema>

如果您希望在添加自己的schemata之前清除列表,请在<memberschema />元素上设置属性purge="true"。默认情况下,您的新schema将位于列表末尾。您可以通过向<schema />元素添加一个insert-beforeinsert-after属性来更改顺序。值可以是另一个完全限定的接口名称,或者“*”,表示元素应位于最前面/最后面。

表单

本软件包通过使用plone.autoform包提供了一个成员数据编辑表单。默认情况下,它将每个模式列表在其自己的字段集中。您可以使用plone.autform期望的各种提示来注释您的模式界面,无论是手动、通过从plone.supermodel XML文件加载模式,还是使用plone.directives.form中的grokkers。有关更多详细信息,请参阅这些包。

默认提供了两种视图:'@@edit-profile'必须以查询字符串参数('id')的形式接收用户ID。它受zope2.ManageUsers权限保护。'@@my-profile'用于编辑当前用户的配置文件。它受cmf.SetOwnProperties保护。

请注意,此包没有在任何地方连接视图,因此您需要自己链接到它们,并且可能需要隐藏或覆盖Plone的标准'personalize_form'模板。

备用存储

PAS API仍然是获取和设置成员属性的标准方式。如果您想确保某个字段来自,例如,LDAP,最简单的方法通常是确保有一个合适的PAS插件被激活作为IPropertiesPlugin,位于schema_properties插件之前,并提供了相关的属性。

或者,如果您想实现自己的存储,可以实现一个IBags适配器。这应该适配插件(例如,您可以在插件类上设置一个自定义标记接口以实现此类覆盖),并且必须返回一个IBag - 真正的,只是一个可以设置值或从中检索值的对象。

致谢

plone.app.memberschema从Kapil Thangavelu的ore.member中汲取灵感。

变更日志

1.0a2 - 2009-07-12

  • 跟上plone.autoform API的变化。[optilude]

1.0a1 - 2009-04-17

  • 首次发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

plone.app.memberschema-1.0a3.tar.gz (23.7 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面