リストを含むカスタムフィールドに取り組んでいます。リストで選択した項目をリッチテキスト エディターで編集できる必要があります。(これが唯一の欠けている部分です)。
サイトコア コンテンツ エディターのカスタム フィールドでのc# コードのオープニング リッチ テキスト エディターから開くことに関するトピックを読みました。これは、RTE を空 (デフォルトのテキストで...) で開く必要があるため、[追加] ボタンではうまく機能しますが、[編集] ボタンでは機能しません。
私のアプローチは次のとおりです。
- どういうわけか、編集ボタンのメッセージ フィールド
list:edit(id=$Target)
で、選択したインデックスを渡します (のようlist:edit(id=$Target,index=$SelectedIndex)
に、しかし $SelectedIndex を設定する方法がわかりません - オーバーライドされた
HandleMessage
メソッドで、リストの選択されたindexを取得します。選択した値Sitecore.Context.ClientPage.ClientRequest.Form[ID of list]
を取得できますが、それだけではあまり役に立ちません.2つのリストアイテムが等しい場合、どちらを編集するかを決めることができないからです。 リッチテキスト エディターの開始と処理を完全に JavaScript で行います。コンテンツエディターのスクリプトで見たように、それをやろうとしましたが、はっきりと理解できません:
リッチテキスト エディターの URL:
var page = "/sitecore/shell/Controls/Rich Text Editor/EditorPage.aspx";
いくつかのパラメータ:
var params = "?da=core&id&ed=" + id + "&vs=1&la=en&fld=" + id + "&so&di=0&hdl=H14074466&us=sitecore%5cadmin&mo";
よくわからない部分:
var result = scForm.browser.showModalDialog(page + params, new Array(window), "dialogHeight:650px; dialogWidth:900px;");
このようにして、RTEは期待どおりに開きます(選択したインデックスをjavascriptから取得して、後でパラメーターとして渡すことができると思います)。ただし、[OK] をクリックすると、EditorPage.js saveRichText function: から例外が発生します
Cannot read property 'ownerDocument' of null
。パラメータが不足していますか?
3つのアプローチのいずれかが私にとっては問題ありません(また、新しいより良いものを受け入れることができます)。前もって感謝します!
タマス