特定文件夹中允许的 Plone 内容

标签 plone

我在 Plone 4.3.9 中创建了一个自定义类型的灵巧性,称为 PersonalPage,必须只允许在特定文件夹中使用 成员文件夹/用户文件夹 .
在他的 FTI 中,默认情况下 <property name="global_allow">False</property> .
在 Plone 4.3.3 中,用户文件夹是在 Members_folder 中使用经过身份验证的用户的 uid 创建的:

if homefolder is None:
        # create userfolder in members_folder
        members_folder.invokeFactory('Folder', user_id)
        userfolder = members_folder[user_id]
        utils = userfolder.plone_utils
        utils.changeOwnershipOf(userfolder, user_id,
                                        1, None)
        userfolder.setCreators([user_id])
        roles = list(userfolder.get_local_roles_for_userid(user_id))
        if 'Owner' not in roles:
            roles.append('Owner')
            userfolder.manage_setLocalRoles(user_id, roles)

        if shasattr(userfolder, 'canSetConstrainTypes'):
            userfolder.setConstrainTypesMode(1)
            defaultAllowedTypes = userfolder.getLocallyAllowedTypes()
            userfolder.setLocallyAllowedTypes(defaultAllowedTypes + ('personalpage',))    
            defaultAddableTypes = userfolder.getImmediatelyAddableTypes()
            userfolder.setImmediatelyAddableTypes(defaultAddableTypes + ('personalpage',))
        userfolder.reindexObjectSecurity()
        userfolder.reindexObject()

但是在运行此脚本后,内容类型 PersonalPage 不会出现在用户文件夹的可添加和允许的内容类型列表中。
这有什么问题?是否有另一种方法允许仅对文件夹添加内容类型?

最佳答案

由于 global_allow 标志,脚本不起作用。

Plone 有 2 个级别的内容类型添加限制:

  • 第一个是全局设置:如果一个内容类型不是全局允许的,那么它不能被添加到任何地方,直到一个内容类型明确地将它列为可能的子类型
  • 另一种是TTW可添加类型,它只是限制了上面定义的内容集

  • 如果您需要限制单个文件夹的可添加类型,您可以将您的文件夹定义为一种新的特殊类型,仅在站点中使用一次(因此保持 global_allow 为真,创建一个文件夹,然后禁用它);最后将 PersonalPage 指定为其中的 allowed_types 之一,并将 PersonalPage 的 global_allow 设置保持为 False。

    或者,您可以使用 collective.factorymenu , 通过网络修改Plone添加菜单(尚未发布但正在工作)。

    关于特定文件夹中允许的 Plone 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520992/

    相关文章:

    plone - 如何获得具有默认 View 集的文件夹的 absolute_url_path?

    plone - 从 InvokeFactory 创建内容时包括 "Change Note"

    plone - 有没有办法扩展 Plone Dexterity 的 INameFromTitle 行为?

    plone - 如何将 css 类添加到 z3c.form 按钮

    plone - 如何重新索引某种类型的所有内容?

    python - Plone 机 : Check if a form was submitted

    plone - 在 Plone 中更改文件夹默认批处理站点

    plone - 避免创建 Plone 的默认内容

    python - 如果特定文件夹不存在,请调整 Plone 的宏以不显示任何内容?

    Plone 4.1.4 站点错误 : Resource not found