【问题标题】:Can I set the root folder for the image insert button on a rich text editor profile?我可以在富文本编辑器配置文件上设置图像插入按钮的根文件夹吗?
【发布时间】:2014-08-20 09:47:52
【问题描述】:

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

这可能“开箱即用”吗?如果有,怎么做?

【问题讨论】:

  • 媒体和链接最简单的选择是使用权限和角色限制对项目的读取访问权限,但当您拥有多站点编辑器时当然不起作用!
  • 最好的方法是制作自定义配置文件并操纵他们的行为。

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


【解决方案1】:

使用单个模板是开箱即用的。如果每个站点都有自己的模板集,那么您显然可以将源设置为每个站点的不同 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 版本,其中可能存在链接/媒体无法记住用户选择并在同一位置打开的问题。您可能需要验证传递的 id,如果是,您可以使用自己的参数。

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

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

【讨论】:

  • 我们实际上每个模板集有多个站点和多个模板集,所以它有点复杂。编辑者可能有权在任何网站上进行编辑。对于组件默认数据源和数据源位置,我们依靠查询来本地化数据。因此,如果我可以为每个模板集获取一个配置文件,那么我至少可以使用该覆盖来本地化根文件夹。我将尝试找出如何从 InsertImage 控件中获取当前项。希望这比尝试使用查询来本地化 RTE 配置文件更简单!
  • @JamesWalford 重复使用模板是很正常的,我在同一个多编辑器/站点场景中工作过,但我不知道如何在模板上传递这些值。 AFAIK,您无法在 RTE 中设置链接/图像的根文件夹,我没有遇到过这个...我添加了一些有关图像链接生成的详细信息。
猜你喜欢
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多