私は Sheer UI モジュールを SPEAK に変換していますが、1 つの問題を除いて、通常はほとんど問題はありません。これは、リッチ テキスト エディターのボタン クリックから開くダイアログです。それを閉じて値を返す方法がわかりません。
私は、Sitecore の既存の SPEAK ダイアログがそれを行う方法を調べてみました。例SelectMediaDialog:
- と呼ばれるルール コンポーネントがあり
insertButtonRuleます。 - ターゲット コントロールは に設定され
SelectMediaButton、トリガーは に設定されclickます。 - 関連付けられたルールの条件/アクションは、「 の場合
always、ダイアログの戻り値をコンポーネントに設定するMediaResultsListControlselectedItemId」です。
これはかなり簡単に思えますが、私のアプリケーションでは複製できませんでした。何もしません。現在の Sitecore の SPEAK ダイアログはどれもリッチ テキスト エディターから起動されないので、これは同じような比較ではありません。おそらく、それは私がダイアログを開く方法ですか?
ダイアログを開くために使用する js コマンドを次に示します (基本的には古い Sheer UI アプリと同じですが、URL が異なります)。
RadEditorCommandList["OpenMyApp"] = function(commandName, editor, tool)
{
scEditor = editor;
var range = scEditor.getSelection().getRange()
range.expand("word");
scEditor.getSelection().selectRange(range)
var html = scEditor.getSelection().getText().trim();
scEditor.showExternalDialog(
"/sitecore/client/MySpeakApp?term=" + escape(html),
null, //argument
300, //width
500, //height
scMyCallback,
null,
"My Speak App",
true, //modal
Telerik.Web.UI.WindowBehaviors.Close, // behaviors
false, //showStatusBar
false //showTitleBar
);
};
function scMyCallback(sender, returnValue)
{
if (returnValue)
scEditor.pasteHtml(returnValue.text);
}
リッチ テキスト エディター用の SPEAK アプリを作成した人はいますか? どんな提案でも大歓迎です。