3

背景:容器类型并不真正支持工作副本行为,因为它会导致复制该文件夹的所有子项时出现问题。我们正在通过对容器类型使用子数据类型来解决这个问题:几乎所有关于容器的数据都存储在一个数据对象中,该数据对象是该容器的子对象及其默认视图。我们从列表和搜索中排除数据对象。

问题:这导致不一致,目前我们必须将都柏林核心行为赋予容器类型,而不是数据类型,因为所有核心 Plone 代码都需要描述、生效日期等。这对于我们的 Plone 编辑器来说有点令人困惑,因为他们有两个地方可以编辑有关容器的数据。此数据也只能在实时版本上进行编辑,而不是签出的工作副本。

我想做的是:

  • 将来自容器的都柏林核心数据请求委托给子数据对象(不知道从哪里开始)
  • 在保存容器时,它将使用子数据都柏林核心数据作为目录中的元数据(如果第一部分正常工作,这应该可以工作)
  • 在保存子数据时,它将重新索引其父对象以更新其元数据(我计划注册一个事件来实现这一点)

请有人可以为我提供一些关于如何实现第一部分的指示吗?

4

1 回答 1

3

我认为您在这里有两个选择:

  1. 创建自己的元数据行为,在数据对象上查找元数据。

  2. 当数据对象被修改时,只需在事件处理程序中更新父级的元数据。

鉴于无论如何您都需要事件处理程序来强制父重新索引,我可能会采用简单的元数据复制方法。

于 2011-07-07T16:32:47.520 回答