【问题标题】:Sitecore: Restrict language of version of an Item to only EnglishSitecore:将项目版本的语言限制为仅英语
【发布时间】:2016-01-22 04:12:40
【问题描述】:

我有一个多语言网站,对于一个特定项目,我想限制内容编辑器创建语言版本。对于这个项目,我只想有英文版。

我怎样才能做到这一点?

【问题讨论】:

  • 内容编辑者是否需要访问权限才能在别处添加其他语言?
  • 是的。他可以添加其他项目的语言版本。我实际上是完全禁止项目A 的语言版本不管它的内容编辑器还是任何其他角色。我只想完全屏蔽项目A 的语言版本。只使用英文版,仅此而已。
  • 有兴趣加入item:addversion 事件并在创建版本时取消/删除它吗?

标签: sitecore sitecore7 sitecore7.2


【解决方案1】:

我遇到了类似的情况,并研究了 Jim 提到的 item:addversion。但是,这样做时很难不陷入第 22 条问题。就我而言,我通过代码创建了很多项目。在不引发事件(静默更新)的情况下这样做非常棘手,因为它还会禁用项目缓存清除、项目索引等。

相反,我选择创建验证器和排水沟。我将所有逻辑放在一个类中,该类可以评估项目的预期语言,并制作了一个项目验证器,如果它有多余(或缺失)的语言版本,它就会失败。然后将验证器添加到全局规则中。我还创建了一个几乎相同的排水沟,以便更轻松地查找和修复此类错误。

【讨论】:

    【解决方案2】:

    /sitecore/system/Languages 节点下的每种语言都有一个 Language ReadLanguage Write 属性,您可以通过 Language ReadLanguage Write 属性进行设置strong>安全编辑器来限制哪些角色拥有哪些权限。

    【讨论】:

    • 这将适用于所有项目,而不仅仅是项目的特定/子集。
    • 是的,你是对的,我在发布后注意到了项目部分。不是 100% 确定每个项目是否有办法做到这一点..
    • 我认为也没有,没有 OOTB。您可以执行的内容部分,但语言变化......它必须是非常自定义的。
    【解决方案3】:

    实现此目的的最简单解决方案是在不向 Sitecore 中编写任何编码/黑客程序的情况下,为项目 A 的数据模板制作 fields shared,如有必要,所有这些都是。

    这样,添加其他语言版本无关紧要,所有语言都只能编辑该字段的单一版本。它还有一个好处是,当用不同的语言编辑内容时,编辑器将能够继续编辑字段而不必先切换回en,但缺点是所有版本也将是相同的,这意味着如果这是一项要求,则无法通过工作流程。

    【讨论】:

      猜你喜欢
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      相关资源
      最近更新 更多