站点特定富文本编辑器的替代方法 CSS?

Alternative Ways to Do Site-specific Rich Text Editor CSS?

我一直想实现站点特定的富文本 css 类 但遇到了一个问题。在这种环境下,我无法改变任何全局。 tutorials 要求我更改一个 EditorPage.aspx 文件。我无法做到这一点。有没有其他方法可以为富文本编辑器设置站点特定 css 类?

我正在使用 Sitecore 7.5。

谢谢!

这与 which I answered about Multtiple RTE Class Styles, which I followed up with a blog post 非常相似,其中包含有关在 Sitecore 富文本编辑器中加载站点特定 css 样式的详细信息。

创建一个新的 EditorConfiguration class 继承自 Sitecore.Shell.Controls.RichTextEditor.EditorConfiguration 并覆盖 SetupStylesheets() 方法。然后根据您的 HTML 编辑器配置文件在 'core' 数据库中注册新的配置类型,然后将模板中 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();
}