我可以在富文本编辑器配置文件中设置图像插入按钮的根文件夹吗?

时间:2014-08-20 09:47:53

标签: sitecore sitecore-media-library sitecore7.2

我们有一个多站点解决方案,我们希望为不同的站点建立不同的RTE配置文件。在这些配置文件中,我们希望能够在媒体库中设置特定于站点的Images文件夹。我们还想为“插入链接”按钮设置站点特定的根文件夹。

这是否可以“开箱即用”?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:6)

使用单个模板无法开箱即用。如果每个站点都有自己的一组模板,那么显然可以将源设置为每个站点的不同RTE配置文件,但这仍然无法解决限制媒体库或内部链接的特定文件夹的问题。

您可以覆盖/sitecore/shell/Controls/Rich Text Editor/InsertLink/InsertLink.xml/sitecore/shell/Controls/Rich Text Editor/InsertImage/InsertImage.xml中的默认控件。

在这些内容中,您可以操纵传递给DataContext的GUID

<CodeBeside Type="Sitecore.Shell.Controls.RichTextEditor.InsertLink.InsertLinkForm,Sitecore.Client"/>
<DataContext ID="InternalLinkDataContext" Root="{GUID}"/>
<DataContext ID="MediaDataContext" Root="{GUID}"/>

当前项目作为查询字符串参数fo传递,您可以从后面的代码访问该参数,并使用您自己的逻辑通过覆盖InsertLinkForm类来设置正确的根。不幸的是,当前项不会传递给InsertImage.xml控件,因此需要传递上下文项id。

如果你看一下位于/sitecore/shell/controls/Rich Text Editor/RichText Command.js的InsertImage命令的JS,那么这就是生成链接的位置。您可以修改RadEditorCommandList["InsertSitecoreMedia"]函数,以与InsertSitecoreLink类似的方式传递ID。需要注意的是,我使用的是较旧版本的Sitecore 7.2,其中可能存在Links / Media的问题,而不记得用户选择并在同一位置打开。您可能想要验证传递的ID,如果是,您可以使用自己的参数。

将修改后的文件放在/sitecore/shell/Override中,Sitecore将使用这些文件。

这仍然无法帮助每个站点的自定义RTE配置文件并传递值,但希望这会有所帮助。