1

RavenDBを使用している既存のアプリケーションがあり、データをRavenに読み書きできるカスタムOrchard Adminモジュールを作成して、データを管理できるようにしたいと考えています。この実装により、理想的にはContentPartsを利用できるようになり、再利用可能な「モジュール」を作成できるようになります。

ContentHandlerにデータをロードしてWebサービスからデータにアクセスするための参照がいくつかありますが、実装を思い付くことができませんでした。Controller / Viewを使用してデータの読み取り/書き込みを行うことができましたが、それはより制限されているようです。

OrchardCMSモジュールのデータベースとしてRavenDBを使用する

オーチャードレコードリポジトリを変更する方法

さらに、管理する必要のあるプロパティの1つは画像です。管理インターフェースで画像を選択するためにメディアピッカーフィールドを利用したいと思います。ブラウザを介して画像にアクセスできる限り、Orchardが物理画像を保存しても問題ありません。

誰かが私を正しい方向に向けることができますか?

ありがとう!

4

2 に答える 2

1

Orchardコンテンツアイテムを使用している場合、Idはすでに存在します。新しいアイテムを保存する必要はありません。Orchardとバックエンドストアをバインドするには、何らかの識別子を使用する必要があります。そうしないと、Orchardデータレイヤー全体を再実装する必要があります(やり過ぎです)。

あなたはただする必要があります:

  • から派生したパーツを作成しますContentPartContentPart<T>オーチャードデータベースに保存したくないためではありません)。それで、
  • パーツのハンドラーを追加し、適切なライフタイムイベント(などOnLoading)に接続して、特定のコンテンツアイテムIDとパーツタイプの組み合わせのバックエンドからデータを読み込みます。
  • (通常どおり)パーツのドライバーを追加し、データ保存ロジックをEditorメソッドに配置します。

このようにして、Orchardデータベース内にデータが保存されておらず、外部ソースから完全にロードされたパーツが作成されます。

于 2012-07-20T15:28:26.723 に答える
0

Orchardパーツ(コメント、評価など)を使用して外部データを強化できるようにする場合は、Piotrが説明するようにパーツを作成する必要がありますこれは、どういうわけか、すべてのリモートオブジェクトのコンテンツアイテムを作成することを意味します。これには、独自の課題が伴います(これは、個別のデータソースを同期することを意味し、決して楽しいことではありません)。

それを行う必要がない場合は、そのデータを表示するためのコントローラーアクション(および場合によってはウィジェット)を作成する必要があります。それを行ったとしても、テーマなどの多くのオーチャードの恩恵を受けることができます。

于 2012-07-21T11:51:20.747 に答える