我们有一个使用RavenDB的现有应用程序,并且希望创建一个自定义的Orchard Admin模块,该模块可以读取和写入Raven中的数据,以便我们可以管理数据。理想情况下,实现将允许我们使用ContentParts,以便我们可以创建可重用的“模块”。
有几个引用通过在ContentHandler中加载数据来访问Web服务中的数据,但我无法提出实现。我已经能够使用Controller / View读取/写入数据,但这似乎更具限制性。
Use RavenDB as the database for an Orchard CMS module
How to change Orchard record repository
此外,我们需要管理的其中一个属性是图像。我们想利用媒体选择器字段在我们的管理界面中选择图像。只要我们可以通过浏览器访问图像,Orchard就可以存储物理图像。
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:1)
如果您正在使用Orchard内容项,Id
已经存在 - 无需存储新内容。您需要使用一些标识符来绑定Orchard和后端存储,否则您必须重新实现整个Orchard数据层(这是一种过度杀伤)。
你只需要:
ContentPart
(不是ContentPart<T>
的部分,因为您不希望它存储在Orchard数据库中)。然后,OnLoading
)并从后端加载您的数据以获取给定的内容项ID和部件类型组合。 Editor
方法中。 通过这种方式,您将拥有一个没有任何数据存储在Orchard数据库中的部分,完全从外部源加载。
答案 1 :(得分:0)
如果你希望能够用Orchard部分(评论,评级等)来丰富外部数据,你应该建立一个部分,就像Piotr解释的那样。这意味着以某种方式为所有远程对象创建内容项,这将带来其自身的挑战(这意味着同步不同的数据源,这是永远不会有趣的事情)。
如果您不需要这样做,那么您应该构建控制器操作(以及可能的小部件)来表示该数据。即使你这样做,你仍然可以从许多Orchard的东西中受益,比如主题。