Plone portal_transform未在通过webdav创建的新内容中运行



使用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和其他特定于内容的视图中。

相关内容

  • 没有找到相关文章

最新更新