在Sitecore内容编辑器的自定义字段中打开富文本编辑器 [英] Opening Rich Text Editor in custom field of Sitecore Content Editor

查看:14
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆