2011-07-30 7 views
1

私はcollective.transmogrifierを使用してコンテンツの移行を行っています。私はファイルシステムからファイルを読み込み、transmogrify.filesystemを使用しています。ファイルを「そのまま」インポートするのではなく、Ploneのサブディレクトリにインポートしたいと思います。 _pathを変更する最も簡単な方法は何ですか?代替伝達者_pathを指定する最も簡単な方法は?

は例えば、以下が存在する場合:

  • /var/www/html/bar/index.html

私はにインポートしたい:

  • /Plone/foo/bar/index.html

つまり、 baz "をサブディレクトリ" foo "に追加します。 2つのオプションがあります:

  • _pathをmangleするためにcollective.transmogrifierでいくつかの青写真を使用してください。
  • mangle _pathにいくつかの青写真を書く。

もっと簡単なものがありますか?

答えて

3

標準inserterブループリントを使用してパスを生成します。それはPythonの式を受け入れ、その場で鍵を交換することができます。

[manglepath] 
blueprint = collective.transmogrifier.sections.inserter 
key = string:_path 
value = python:item['_path'].replace('/var/www/html', '/Plone/foo') 

このため、同じキーで項目_path格納それをバックを使用していますvalue Pythonの式(の出力を受け取り

+0

感謝マルタイン。! – aclark

+0

Hmmm、これはパスのマングリングにはうまくいますが、それから私は次のようになります:2011-07-31 19:05:53警告collective.transmogrifier.constructor foo/velはitem /foo/vel/index.htmlに存在しません。奇妙なことに、実際に存在するコンテンツ用のフォルダを作成することは気にしないようです(つまり、事前にマングルされたパスのフォルダは、パスをマングルしないとうまく作成されます)。 – aclark

+0

作成者の青写真アライは、物事がパス順、つまり最初にフォルダにソートされるのが好きです。 transmogrify.pathsorterはこの問題を回避するために書かれました。また、指定された_typeを持つフォルダの新しい項目を作成します。 – djay

関連する問題