我一直想实现特定于站点的富文本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();
}