2012-06-04 128 views
1

我可以为Plone 4.1中的文件夹内容添加自定义限制吗?例如。限制文件夹只包含扩展名为* .doc,* .pdf 的文件我知道一般的限制,如Plone提供的文件/文件夹/页面/图像在Plone中添加自定义文件夹限制

回答

1

不是没有额外的开发;您必须使用验证器来扩展文件类型以限制允许的MIME类型。

没有进入的全部细节(自己试着和这里提出更多的问题上,所以如果你被卡住),这里是如果我面临着这个问题,我想实现各运动部件:

  1. 创建一个新的IValidator类检查允许的内容类型:

  2. 注册与注册validotor的一个实例:

    from Products.validation.config import validation 
    validation.register(LocalContentTypesValidator('checkLocalContentTypes')) 
    
  3. 创建ATContentTypes ATFile类的新的子类,与基类模式的副本,添加验证到它的验证链:

    from Products.ATContentTypes.content.file import ATFile, ATFileSchema 
    
    Schema = ATFileSchema.schema.copy() 
    Schema['file'].validators = schema['file'].validators + (
        'checkLocalContentTypes',) 
    
    class ContentTypeRestrictedFile(ATFile): 
        schema = Schema 
        # Everything else you need for a custom Archetype 
    

    或只是改变ATFile模式本身,如果你想要这个适用于部署中的所有文件对象:

    from Products.ATContentTypes.content.file import ATFileSchema 
    
    ATFileSchema['file'].validators = ATFileSchema['file'].validators + (
        'checkLocalContentTypes',) 
    
  4. 添加一个字段,文件夹或自定义子类的本地存储允许的内容类型的列表。我可能会使用archetypes.schemaextender。这几天有很多文档,例如WebLion has a nice tutorial

    你必须就如何让人们在这里限制MIME类型做出政策决定;通配符,自由形式文本,词汇表等。