为GenericSetup添加对mimetypes_registry导入/导出功能的支持
项目描述
collective.mtrsetup
collective.mtrsetup 提供了一个用于从/到 mimetypes 注册表导入和导出 mimetypes 的 GenericSetup 扩展。
如何使用
将 collective.mtrsetup 添加为您的 setup.py 的依赖项
在您的 configure.zcml 或 dependency.zcml 中添加一个 zcml-include
在您的通用设置配置文件中的 metadata.xml 中添加对 profile-collective.mtrsetup:default 的依赖项
在您的通用设置配置文件中创建一个如下所示的 mimetypes.xml
OpenOffice / Office 2007
此包提供了一个额外的通用设置配置文件(profile-collective.mtrsetup:default),它为 OpenOffice 添加图标(与 StarOffice 兼容性向后兼容)并将已使用的 ms-office-icons 添加到新的 office 2007 mimetypes 中。由于许可问题,未添加官方 Office 2007 图标。
示例
以下是一些使用示例。
设置一些测试内容
>>> from collective.mtrsetup.tests.base import purge_registry >>> from collective.mtrsetup.tests.base import import_mimetypes_registry >>> from collective.mtrsetup.tests.base import export_mimetypes_registry >>> from zope.component.hooks import getSite>>> portal = getSite() >>> registry = portal.mimetypes_registry >>> purge_registry(registry) >>> len(registry.mimetypes()) 0
我们可以在我们的通用设置配置文件中的 mimetypes.xml 中通过简单的 mimetype 标签添加新的 mimetypes
>>> filedata = """ ... <?xml version="1.0"?> ... <object name="mimetypes_registry" meta_type="MimeTypes Registry"> ... <mimetype name="Any type" mimetypes="image/any" ... extensions="any" globs="*.any" binary="True" ... icon_path="àny.png" /> ... </object> ... """.strip() >>> import_mimetypes_registry(registry, filedata) [(20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')]
现在我们已正确配置了一个 mimetype
>>> registry.list_mimetypes() ['image/any'] >>> image_any = registry.lookup('image/any') >>> image_any (<mimetype image/any>,) >>> print image_any[0].icon_path àny.png
现在我们应该能够导出当前配置
>>> print export_mimetypes_registry(registry) <?xml version="1.0"...?> <object name="mimetypes_registry" meta_type="MimeTypes Registry"> <mimetype name="Any type" binary="True" extensions="any" globs="*.any" icon_path="àny.png" mimetypes="image/any"/> </object>
我们还可以修改现有的一个
>>> filedata = """ ... <object name="mimetypes_registry" meta_type="MimeTypes Registry"> ... <mimetype name="Any type" mimetypes="image/any image/another" /> ... </object> ... """.strip() >>> import_mimetypes_registry(registry, filedata) [(20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')]
上述说明仅更新了 mimetype 记录,其中 image/any 是第一个 mimetype
>>> print export_mimetypes_registry(registry) <?xml version="1.0"...?> <object name="mimetypes_registry" meta_type="MimeTypes Registry"> <mimetype name="Any type" binary="True" extensions="any" globs="*.any" icon_path="àny.png" mimetypes="image/any image/another"/> </object>
最后,我们可以通过添加删除标志来删除一个 mimetype
>>> filedata = """ ... <object name="mimetypes_registry" meta_type="MimeTypes Registry"> ... <mimetype name="Any type" mimetypes="image/any" delete="True" /> ... </object> ... """.strip() >>> import_mimetypes_registry(registry, filedata) [(20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')] >>> print export_mimetypes_registry(registry) <?xml version="1.0"...?> <object name="mimetypes_registry" meta_type="MimeTypes Registry"/>
您至少需要添加一个 mimetype,否则导入将失败
>>> filedata = """ ... <object name="mimetypes_registry" meta_type="MimeTypes Registry"> ... <mimetype mimetypes="" /> ... </object> ... """.strip() >>> import_mimetypes_registry(registry, filedata) [(30, 'mimetypes', u'Require attributes: "mimetypes" for <mimetype mimetypes=""/>'), (20, 'mimetypes', 'Mimetype imported: <DOM Element: object at ...>')]
变更日志
1.6.0 (2019-10-23)
通过替换旧的 PloneTestCase 为 plone.app.testing 支持 Plone 5.1 [mathias.leimgruber]
停止支持 Plone 4.1 [mathias.leimgruber]
1.5.4 (2017-07-31)
移除 z3c.autoinclude:includeDependencies [jone]
1.5.3 (2017-04-05)
mimetype 值应该是字符串而不是 Unicode,尤其是对于 icon_path [ale-rt]
1.5.2 (2014-06-20)
修复了 mimetype 图标 URL,使其为相对于根的相对路径 [keul]
1.5.1 (2014-01-02)
在示例配置文件中添加了 xmind mimetype [thomasdesvenain]
1.5 (2013-08-26)
在示例配置文件中添加了 mmap mimetype [thomasdesvenain]
1.4.1 (2012-12-21)
修复了发布(修复了 MANIFEST.in) [thomasdesvenain]
1.4 (2012-12-21)
在示例配置文件中添加了 csv mimetype [thomasdesvenain]
1.3
在示例配置文件中添加了带图标的 rtf mimetype [thomasdesvenain]
1.2
1.1
在某些 Plone 3 设置中,出现了“GenericSetup.mimetypes Require attributes”警告,通过向 mimetype 记录添加所有必需的属性来修复 [07.02.2011, mathias.leimgruber]
添加了 MS Project 记录(图标不包括) [07.02.2011, mathias.leimgruber]
1.0
更新了 MANIFEST.in:将文档目录添加到发布中 [09.08.2010, jbaumann]
1.0a2
更新了 README.txt(其余部分) [12.04.2010, jbaumann]
1.0a1
添加了对 OpenOffice mimetypes 的更新(添加了新图标)以及对 Office 2007 mimetypes 的更新(使用旧的 office-like 图标)。 [12.04.2010, jbaumann]
确保 GS 导入/导出适配器在 plone3 和 plone4 上都工作。Plone3 的 getToolByName 返回 Tool,而 plone4 返回 Utility。Tool 和 Utility 没有相同的接口,plone3 在使用旧式 utility 接口进行适配器注册时崩溃 - 因此我们需要使用 zcml:condition。 [12.04.2010, jbaumann]
实现了导出,添加了测试 [09.04.2010, jbaumann]
改进了测试系统 [09.04.2010, jbaumann]
初始实现 [08.04.2010, jbaumann]