2012-06-04 126 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類型做出政策決定;通配符,自由形式文本,詞彙表等。