2011-07-30 2 views
1

collective.transmogrifier로 콘텐츠 마이그레이션을하고 있는데 transmogrify.filesystem을 사용하여 파일 시스템에서 파일을 읽습니다. "있는 그대로"파일을 가져 오는 대신 Plone의 하위 디렉터리로 가져오고 싶습니다. _path를 수정하는 가장 쉬운 방법은 무엇입니까?대체 transmogrifier _path를 지정하는 가장 쉬운 방법은 무엇입니까?

예를 들어, 다음과 같은 상황이 존재하는 경우 :

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

내가 가져올 싶습니다

  • /Plone/foo/bar/index.html

즉, baz "를 서브 디렉토리"foo "에 추가하십시오. 두 가지 옵션이 있습니다 :

  • _path를 mangle하기 위해 collective.transmogrifier에서 일부 청사진을 사용하십시오.
  • mangle _path에 대한 몇 가지 청사진을 작성하십시오.

더 쉽게 놓친 것이 있습니까?

답변

3

표준 inserter 청사진을 사용하여 경로를 생성하십시오. 그것은 파이썬 표현식을 받아 자리에서 키를 대체 할 수

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

이것은 따라서 다시 같은 키의 항목 _path 저장을 사용하는 value 파이썬 표현의 출력을 (소요

+0

감사 마티.! – aclark

+0

흠,이 방법은 패스를 조작하는 데는 효과적이지만 다음과 같이 나타납니다. 2011-07-31 19:05:53 WARNING collective.transmogrifier.constructor 컨테이너 foo/vel은 /foo/vel/index.html 항목에 존재하지 않습니다. 이상한 것입니다. 실제로 존재하는 내용의 폴더를 만드는 것을 염두에 두지 않으므로 (즉, 미리 맹 글링 된 경로의 폴더는 경로를 잘못 작성하지 않아도 잘 생성됩니다.) – aclark

+0

작성자 청사진 re 아는 사람이 경로 순서, 즉 폴더를 먼저 정렬하도록 항목을 좋아합니다. transmogrify.pathsorter는이 문제를 해결하기 위해 작성되었습니다. 또한 지정된 _ 유형의 폴더에 대한 새 항목을 만듭니다. – djay

관련 문제