Plone 指定备用Transmogrier\u路径的最简单方法?
我正在使用collective.transmogrifier进行内容迁移,并使用transmogrify.filesystem从文件系统读取文件。我不想“按原样”导入文件,而是想将它们导入Plone中的子目录。修改_路径的最简单方法是什么 例如,如果存在以下情况:Plone 指定备用Transmogrier\u路径的最简单方法?,plone,transmogrifier,Plone,Transmogrifier,我正在使用collective.transmogrifier进行内容迁移,并使用transmogrify.filesystem从文件系统读取文件。我不想“按原样”导入文件,而是想将它们导入Plone中的子目录。修改_路径的最简单方法是什么 例如,如果存在以下情况: /var/www/html/bar/index.html 我想导入到: /Plone/foo/bar/index.html 换句话说,将“baz”的内容导入子目录“foo”。我看到两种选择: 在collective.tran
- /var/www/html/bar/index.html
- /Plone/foo/bar/index.html
- 在collective.transmogrifier中使用一些蓝图来破坏路径
- 写一些蓝图来破坏路径
我是否遗漏了更简单的内容?使用标准的
插入器
蓝图生成路径;它接受python表达式,并可以就地替换键:
[manglepath]
blueprint = collective.transmogrifier.sections.inserter
key = string:_path
value = python:item['_path'].replace('/var/www/html', '/Plone/foo')
因此,这将获取
值
python表达式的输出(该表达式使用项\u path
,并将其存储回同一个键下。使用标准的插入器
蓝图生成路径;它接受python表达式,并可以在适当的位置替换键:
[manglepath]
blueprint = collective.transmogrifier.sections.inserter
key = string:_path
value = python:item['_path'].replace('/var/www/html', '/Plone/foo')
因此,这将获取
值
python表达式的输出(它使用item\u路径
并将其存储在同一个键下。Hmmm,这非常有助于破坏路径,但随后我得到:2011-07-31 19:05:53 WARNING collective.transmogrifier.constructor容器foo/vel对于item/foo/vel/index.html不存在。奇怪,因为它似乎不介意为实际存在的内容创建文件夹存在(即,如果不损坏路径,则可以很好地创建预损坏路径中的文件夹。)creator blueprint非常喜欢按路径顺序排序,即文件夹优先。transmogrify.pathsorter的编写就是为了解决这个问题。它还为给定类型的文件夹创建新项目。我知道发生了什么,我需要确保至少单独插入一次新路径,即“排序输入”(正如pathsorter希望为我所做的那样)。@djay或根据需要使用blueprint动态创建文件夹。有人注意到文件夹blueprint有任何“奇怪的行为”吗?AFAICT,构造函数blueprint创建文件夹(使用已排序的输入),但文件夹部分不会创建包含任何输入的文件夹。嗯,这会很好地破坏路径,但我得到:2011-07-31 19:05:53警告collective.transmogrifier.constructor Container foo/vel不存在于item/foo/vel/index.html中。奇怪的是,它似乎不介意为实际存在的内容创建文件夹(即,如果不损坏路径,则可以很好地创建预损坏路径中的文件夹。)creator blueprint非常喜欢按路径顺序排序,即文件夹优先。transmogrify.pathsorter的编写就是为了解决这个问题。它还为给定类型的文件夹创建新项目。我知道发生了什么,我需要确保至少单独插入一次新路径,即“排序输入”(正如pathsorter希望为我所做的那样)。@djay或只是根据需要使用blueprint动态创建文件夹。是否有人注意到文件夹blueprint有任何“奇怪的行为”?AFAICT,构造函数blueprint创建文件夹(使用排序输入),但文件夹部分不使用任何输入创建文件夹。