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

Jam*_*ord 6 sitecore sitecore-media-library sitecore7.2

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

这可能是"开箱即用"吗?如果是这样,怎么样?

jam*_*kam 6

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

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

在这些方法中,您可以操纵GUID传递给DataContext的操作。

<CodeBeside Type="Sitecore.Shell.Controls.RichTextEditor.InsertLink.InsertLinkForm,Sitecore.Client"/>
<DataContext ID="InternalLinkDataContext" Root="{GUID}"/>
<DataContext ID="MediaDataContext" Root="{GUID}"/>
Run Code Online (Sandbox Code Playgroud)

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

如果您查看位于其中的InsertImage命令的JS,/sitecore/shell/controls/Rich Text Editor/RichText Command.js则这是生成链接的位置。您可以修改RadEditorCommandList["InsertSitecoreMedia"]功能以类似于传递ID InsertSitecoreLink。需要注意的是,我使用的是Sitecore 7.2的较旧版本,其中的链接/媒体可能无法记住用户的选择并在同一位置打开而出现问题。您可能需要验证传递的ID,如果可以,则可以使用自己的参数。

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

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