我一直想实现特定于站点的富文本css类,但遇到了一个问题。在这种环境下我不能改变任何全球性的事情。tutorials要求我更改editorpage.aspx文件。我不能这样做。有没有其他方法可以为富文本编辑器设置特定于站点的css类?
我在sitecor7.5。
谢谢!

最佳答案

这与我回答的关于多个RTE类样式的previous Stackoverflow question非常相似,随后我又回答了一个blog post的问题,其中包括在siteCore富文本编辑器中加载特定于站点的CSS样式的详细信息。
创建一个继承自EditorConfiguration的新Sitecore.Shell.Controls.RichTextEditor.EditorConfiguration类并重写SetupStylesheets()方法。然后根据HTML编辑器配置文件在“核心”数据库中注册该新配置类型,然后将模板中的“RTE”字段的源设置为“到富文本配置文件”。
SetupStylesheets()方法中,需要使用xpath查询来获取特定于站点的css文件列表:

protected override void SetupStylesheets()
{
    string id = WebUtil.GetQueryString("id");
    string query = "/*/content//*[@@id='" +id+ "']/ancestor::*[@@templateid='{root-guid}']//*[@@templateid='{style-folder-guid}']/*";

    IList<Item> stylesheets = Sitecore.Context.ContentDatabase.SelectItems(query);

    foreach (Item item in stylesheets)
    {
        this.Editor.CssFiles.Add(item["Stylesheet"]);
    }

    base.SetupStylesheets();
}

09-25 21:34