使用 Plone 4.3.4,我创建了文件系统产品来创建新的 Dexterity 内容类型(“文章”)和新的转换。文章包含一个 RichTextField 和一个自定义转换(“xml_to_html”)。
xml_to_html 转换旨在使用基于 SAX 的解析器和模板系统将 RichTextField 的原始 XML 输入转换为 HTML 输出。这在通过网络创建或修改文章项目时非常有效。
mime_types_registry 设置为将 Article 映射到 *.xml 和 mimetype text/xml。
通过 WebDav 上传 XML 文件时,Plone 正确地创建了一个以 RichTextField 指定为主的文章。但是,xml_to_html 转换不会运行以创建转换后的输出。RichTextValue.raw 包含上传的文件内容,但从不生成 RichTextValue.output。
更复杂的是 WebDav 客户端设置 Content-Type: text/xml 但 RichTextValue.mimeType 总是以 text/plain 的形式出现。
我可以看到我的特定类型事件挂钩正在工作。我可以基于 zope.lifecycleevent.interfaces.IObjectAddedEvent 执行任意代码,但对象创建过程永远不会遇到 xml_to_html 转换。
问题: a) portal_transforms 是否应用于通过 WebDav 创建的内容项?如果不是,那这就是我的答案。
b) 为什么主字段的 mimetype 不尊重 webdav 客户端设置的值?
谢谢,唐