1

Plone 4.3.4 を使用して、ファイル システム製品を作成し、新しい Dexterity コンテンツ タイプ ("Article") と新しい Transform を作成しました。Article には、RichTextField とカスタム変換 ("xml_to_html") が含まれています。

xml_to_html 変換は、SAX ベースのパーサーとテンプレート システムを使用して、RichTextField の生の XML 入力を HTML 出力に変換するように設計されています。これは、Web を介して記事アイテムを作成または変更する場合に完全に機能します。

mime_types_registry は、Article を *.xml および mimetype text/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) portal_transforms は、WebDav を介して作成されたコンテンツ アイテムに適用されますか? そうでないなら、それが私の答えです。

b) プライマリ フィールドの MIME タイプが webdav クライアントによって設定された値を尊重しないのはなぜですか?

ありがとう、ドン

4

1 に答える 1

0

コンテンツ タイプ

mimeType および encoding プロパティは Content-Type ヘッダーの値に設定されます - docs.plone.org

webdav クライアントの content-type ヘッダーをチェックアウトします。

Content-Type リクエスト ヘッダーは、XML 本体に対して適切に設定する必要があります (たとえば、「text/xml」または「application/xml」に設定します)。

2 番目のケース

新しい Article Item オブジェクトはデフォルトで 'text/plain' で作成されます。

この場合、あなたは呼び出すことができます

context.portal_transforms.convert('xml_to_html',context.richtextfield_name)

article-template-view.pt およびその他のコンテンツ固有のビューで直接。

于 2015-04-10T22:11:27.430 に答える