使用Plone 4.3.4,我创建了文件系统产品,以创建新的Dexterity内容类型("文章")和新的Transform。文章包含一个RichTextField和一个自定义转换("xml_to_html")。
xml_to_html转换旨在使用基于SAX的解析器和模板系统将RichTextField的原始xml输入转换为html输出这在通过网络创建或修改文章项目时非常有效
mime_types_registry被设置为将Article映射到*.xml和mimetypetext/xml。
当通过WebDav上传XML文件时,Plone正确地创建了一个以RichTextField指定为主的Article。但是,xml_to_html转换不会运行来创建转换后的输出。RichTextValue.raw包含上载的文件内容,但从未生成RichTextValue.output。
更复杂的是,WebDav客户端正在设置Content-Type:text/xml,但RichTextValue.mimeType总是以text/plain的形式出现。
我可以看到我的特定类型的事件挂钩正在工作。我可以基于zope.lifecycleevent.interfaces.IObjectAddedEvent执行任意代码,但对象创建过程从未达到xml_to_html转换。
问题:a) 门户转换是否应用于通过WebDav创建的内容项?如果没有,那就是我的答案。
b) 为什么主字段的mimetype不尊重webdav客户端设置的值?
谢谢,Don
内容类型
mimeType和编码属性设置在Content-Type标头的值上-docs.lone.org
签出您的webdav客户端内容类型标头。
必须为XML主体适当设置Content-Type请求标头(例如,设置为"text/XML"或"application/XML")。
第二种情况
New Article Item对象默认使用"text/plain"创建。
在这种情况下,您可以致电
context.portal_transforms.convert('xml_to_html',context.richtextfield_name)
直接在article-template-view.pt和其他特定于内容的视图中。