在Sitecore内容编辑器的自定义字段中打开富文本编辑器 [英] Opening Rich Text Editor in custom field of Sitecore Content Editor
本文介绍了在Sitecore内容编辑器的自定义字段中打开富文本编辑器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Sitecore中为content Editor实现了一个自定义字段,我需要能够打开富文本编辑器并从那里获取数据。不过,我真的不知道该去哪里找,也不知道该怎么做。
推荐答案
必须反编译Sitecore.Kernel DLL才能解决此问题。
第一件事是从Context.ClientPage
对象中剥离调用
所以,针对我的情况:
switch (message.Name)
{
case "richtext:edit":
Sitecore.Context.ClientPage.Start(this, "EditText");
break;
}
然后,您的类中需要有一个与上述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();
}
这篇关于在Sitecore内容编辑器的自定义字段中打开富文本编辑器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文