跳转到主要内容

为GenericSetup添加对mimetypes_registry导入/导出功能的支持

项目描述

collective.mtrsetup

collective.mtrsetup 提供了一个用于从/到 mimetypes 注册表导入和导出 mimetypes 的 GenericSetup 扩展。

如何使用

  • collective.mtrsetup 添加为您的 setup.py 的依赖项

  • 在您的 configure.zcmldependency.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]

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

collective.mtrsetup-1.6.0.tar.gz (21.7 kB 查看哈希)

上传时间: 源代码

由以下支持