Plone的简单协作空间
项目描述
简介
collective.spaces 是在Plone CMS中创建迷你网站的一种简单方法,每个迷你网站基于一个完全可定制的模板。该产品在Plone中部署了一个基于Dexterity的轻量级内容类型(称为Space),并提供了在自我管理、协作环境中有用的各种扩展。例如
用户可以自我创建Spaces
每个Space都显示为子站点
每个Space可以自定义徽标
网站管理员可以自定义用于新Spaces的模板
此产品提供的内容
简单的基于Dexterity的内容类型
使用plone.app.z3cform和朋友们构建的基于Web的表单
利用现有的Plone技术(如身份验证、INavigationRoot和Dexterity行为)
其他选项(如collective.lineage)提供了不必要的功能或者引入了额外的依赖关系
用例(即何时使用此产品)
希望允许各种用户组协作,但无需管理开销/干预
用户应在Plone根目录下创建新的子站点,而无需管理干预
每个工作区都应该能够自我管理
每个工作区都可以允许有限的定制
所有工作区都应该包含在单个Plone站点内
希望模板易于自定义,并在Plone中附加任意内容。
安装
Buildout
collective.spaces 与 Plone 的最新版本兼容,已在 Plone 4.2 和 Dexterity 1.2.1 上进行了测试。请将此 egg 添加到您的 buildout 中的 Plone 实例中,如下所示 - 强烈建议您使用已知良好的集合(KGS)来锁定表单库和 Dexterity 的版本。
[buildout] extends = ... http://good-py.appspot.com/release/dexterity/1.2.1?plone=4.2b2 ... [instance] ... eggs = collective.spaces
由于此 egg 包含一个 z3c.autoinclude 入口点,因此不需要 ZCML 注册。一旦将其添加到您的 buildout 中,重新运行您的 ./bin/buildout 脚本。
在Plone中激活
一旦 buildout 完成,重新启动您的 Plone 实例。
加载并登录到您的 Plone 实例,然后在 网站设置 下转到 附加组件。
在附加组件列表中找到 collective.spaces 并将其 激活。
完成之后,请注意以下情况:
在您的个人工具菜单中出现了 创建新空间
在您门户的根目录下存在一个 空间模板
网站管理员和管理员可以手动在任何地方添加 空间 内容
安全默认值
默认情况下
所有已登录用户(认证用户)都有通过 创建一个新的空间 表单(/@@create-space)创建新空间的能力。
只有网站管理员和管理员可以通过 添加新内容 菜单手动创建空间。普通用户,包括 贡献者 用户,无法这样做。
要更改这些默认设置,请加载 管理访问 ZMI 页面(例如,https://127.0.0.1:8080/Plone/manage_access)并更改与相关 collective.spaces 权限关联的角色。您还可以在扩展产品中使用 GenericSetup 配置文件来修改这些权限(配置文件中的 rolemap.xml)。
建议
尽管此产品在默认安全权限等方面有自己的看法,但配置器可以使用 Plone 的其余功能来增强空间(并减少管理开销)。以下是一些示例
- 身份验证
在 Plone 中启用用户自我注册或启用其他身份验证机制以减少所需的管理输入(或两者兼而有之)。将本地身份验证、LDAP、CAS 或 Shibboleth 等机制交织在一起可以轻松实现用户可以自行管理本地和外部用户的协作。
- 导航
如果预计用户将创建许多空间,那么 Plone 门户选项卡将很快消耗大量空间。为了解决这个问题,您可以简单地关闭 导航设置 控制面板中的 自动生成选项卡 选项,或者从 显示内容类型 选项中取消选择 空间 内容类型。如果使用此后者策略,请考虑用户如何实际访问他们的空间 - 完全从导航中隐藏可能意味着用户需要直接访问他们的 URL。
- 电子邮件通知
一个常见的情况可能是,网站管理员希望跟踪创建的空间。此附加组件提供了一个 Plone 内容规则来满足此用例。使用此规则完全是可选的 - 它已安装但默认情况下未启用。
协作
源代码可在 collective GitHub 上获取,网址为 https://github.com/collective/collective.spaces,用于提交问题、修复和改进。
不兼容性
由于策略遍历导致在执行添加或修改内容上的评论等操作时产生无限循环,Products.CMFPlacefulWorkflow 目前不兼容。此问题存在于版本 1.5.9 中,并由以下循环引起:Products/CMFPlacefulWorkflow/adapter.py(第 71 行)
待办事项
电子邮件通知内容规则的测试(当启用时)
处理显示ID字段的问题 - 我们能否让用户有理地更改他们的空间ID?在标准的Plone系统中,能否在上下文中重命名内容取决于是否拥有文件夹上下文的复制或移动权限。
贡献者
David Beitey(davidjb),作者
变更日志
1.1 (2014-02-04)
修复类型转换问题,防止在创建空间时输入Unicode字符。[davidjb]
通过将空间内容假定为Archetypes类型来绕过文件夹类型约束继承问题。这解决了Plone问题#13792。[davidjb]
通过Dexterity行为启用空间内容类型上的文件夹约束。[davidjb]
确保我们依赖于plone.app.contentmenu以正确加载ZCML。[davidjb]
确保创建空间操作只对有正确权限的用户可见。[davidjb]
如果模板不存在,则仅创建一个空空间。[davidjb]
在空间创建时添加异常记录。[davidjb]
确保在安装此包时安装plone.app.dexerity [grok]。[davidjb]
在setup.py中更新URL以使用正确的GitHub地址。[davidjb]
1.0 (2012-03-26)
为创建空间时提供电子邮件内容规则。默认情况下不启用。[davidjb]
在门户上提供提高贡献者访问权限的装饰器。[davidjb]
为空间自我创建表单添加了doctests。[davidjb]
添加了在空间上设置自定义标志和设置图像缩放的能力。[davidjb]
添加了基本的空间自我创建表单。[davidjb]
使用zopeskel创建的包[davidjb]
项目详情
collective.spaces-1.1.zip的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a497d7528b110afc2171b93535e46e66180a9f2991dffedd5e278f55455915fb |
|
MD5 | 1038558a792a9f445844c971b2eb8526 |
|
BLAKE2b-256 | 7d4f8ddea3ae9f2acf1b929f55ec893c9157f3eaadb2df63977ca43289a66aaf |