1

我们有一个使用 RavenDB 的现有应用程序,并希望创建一个自定义 Orchard 管理模块,该模块可以将数据读取和写入 Raven,以便我们可以管理数据。理想情况下,该实现将允许我们使用 ContentParts,以便我们可以创建可重用的“模块”。

有几个关于通过在 ContentHandler 中加载数据来从 Web 服务访问数据的参考资料,但我还没有想出一个实现。我已经能够使用控制器/视图读取/写入数据,但这似乎更具限制性。

使用 RavenDB 作为 Orchard CMS 模块的数据库

如何更改果园记录库

此外,我们需要管理的属性之一是图像。我们想利用媒体选择器字段在我们的管理界面中选择图像。只要我们可以通过浏览器访问图像,Orchard 存储物理图像就可以了。

谁能指出我正确的方向?

谢谢!

4

2 回答 2

1

如果您正在使用 Orchard 内容项目,则Id它已经存在 - 无需存储新的。您需要使用一些标识符来绑定 Orchard 和后端存储,否则您必须重新实现整个 Orchard 数据层(这是一种矫枉过正)。

你只需要:

  • 创建一个派生自ContentPart(不是ContentPart<T>,因为您不希望它存储在 Orchard 数据库中)的部分。然后,
  • 为您的部分添加一个处理程序,连接到适当的生命周期事件(如OnLoading)并从后端为给定的内容项 id 和部分类型组合加载数据。
  • 为您添加一个驱动程序(像往常一样)并将您的数据存储逻辑放入Editor方法中。

这样,您将拥有一个没有任何数据存储在 Orchard 数据库中的零件,完全从外部源加载。

于 2012-07-20T15:28:26.723 回答
0

如果您希望能够使用 Orchard 部件(评论、评级等)丰富外部数据,您应该构建一个部件,就像 Piotr 解释的那样。这意味着以某种方式为所有远程对象创建内容项,这将带来其自身的挑战(这意味着同步不同的数据源,这永远不会有趣)。

如果您不需要这样做,那么您应该构建控制器操作(可能还有小部件)来显示该数据。即使您这样做,您仍然可以从 Orchard 的许多事情中受益,例如主题化。

于 2012-07-21T11:51:20.747 回答