2012-02-17 9 views
0

Sitecoreでコンテンツエディタのカスタムフィールドを実装しています。リッチテキストエディタを開いてそこからデータを取得できる必要があります。私はどこを見るか、それについてどうやって行くのか、本当にわからない。Sitecore Content Editorのカスタムフィールドでリッチテキストエディタを開きます。

+0

コントロールについて詳しく説明できますか?それはどういう意味ですか?それはSitecoreの多くのことを意味することができます... –

+0

申し訳ありません。コンテンツエディタで使用するカスタムデータ型を作成しています(http://sdn.sitecore.net/Articles/API/Creating%20a%20Composite%20Custom%20Field.aspx)。 アイテムのリッチテキストフィールドの[エディタを表示]ボタンに似たボタンを用意したい –

+1

これを行う必要がある理由の詳細を教えてください。たとえば、組み込みのリッチテキストエディタのフィールドでは不十分なのはなぜですか? RTEの機能を必要としているように聞こえますが、RTEの必要性を超えて、それが何であるか、それが何であるかはわかりません。 –

答えて

2

Sitecore.Kernel DLLを逆コンパイルする必要がありました。定義されているあなたは、同じ名前を持つあなたのクラスのメソッドを持っている必要があります

switch (message.Name) 
{ 
    case "richtext:edit": 
     Sitecore.Context.ClientPage.Start(this, "EditText"); 
     break; 
} 

まず最初は、私の状況のた​​め、

のでContext.ClientPageオブジェクトからの呼び出しをスピンオフすることです上記Startの方法。次に、要求がポストバックでない場合にリッチテキストコントロールを開始するか、投稿されたデータを処理します。

protected void EditText(ClientPipelineArgs args) 
{ 
    Assert.ArgumentNotNull(args, "args"); 
    if (args.IsPostBack) 
    { 
     if (args.Result == null || args.Result == "undefined") 
      return; 
     var text = args.Result; 
     if (text == "__#!$No value$!#__") 
      text = string.Empty; 
     Value = text; 
     UpdateHtml(args); //Function that executes Javascript to update embedded rich text frame 
    } 
    else 
    { 
     var richTextEditorUrl = new RichTextEditorUrl 
            { 
             Conversion = RichTextEditorUrl.HtmlConversion.DoNotConvert, 
             Disabled = Disabled, 
             FieldID = FieldID, 
             ID = ID, 
             ItemID = ItemID, 
             Language = ItemLanguage, 
             Mode = string.Empty, 
             Source = Source, 
             Url = "/sitecore/shell/Controls/Rich Text Editor/EditorPage.aspx", 
             Value = Value, 
             Version = ItemVersion 
            }; 
     UrlString url = richTextEditorUrl.GetUrl(); 
     handle = richTextEditorUrl.Handle; 
     ID md5Hash = MainUtil.GetMD5Hash(Source + ItemLanguage); 
     SheerResponse.Eval("scContent.editRichText(\"" + url + "\", \"" + md5Hash.ToShortID() + "\", " + 
          StringUtil.EscapeJavascriptString(GetDeviceValue(CurrentDevice)) + ")"); 
     args.WaitForPostBack(); 
    } 
関連する問題