【问题标题】:Validating Sitecore Item name uniqueness验证 Sitecore 项目名称的唯一性
【发布时间】:2011-07-08 12:10:13
【问题描述】:

对于 sitecore 项目,我需要验证项目名称的唯一性(以避免 url 重叠)

可以将“重复名称”项验证规则添加到项的模板(要查看这些选项,请确保在内容编辑器功能区的“查看”选项卡中选择了“显示标准字段”)

但是,此处可用的选项是将验证规则添加到

  • 快速操作栏
  • 验证按钮
  • 工作流验证规则

我是否应该将其应用为工作流验证规则,并启用工作流(针对我的所有内容项)?这可行,但如果最终用户必须使用工作流来做某事,这似乎需要付出很多努力。

我想要实现的是在用户尝试保存项目时简单地显示一条验证消息(并使用已经使用的名称)。基本上与 sitecore 中字段验证器的工作方式相同

这些选择似乎都没有达到这种效果。

所以我的问题是,实现这一目标的最简单方法是什么?

【问题讨论】:

    标签: validation sitecore sitecore6


    【解决方案1】:

    验证栏验证规则 - 在内容编辑器右侧的栏中运行。

    您可能想要覆盖item:saving 事件或contenteditor:save 命令。看看item:savedOnItemSaved 事件触发项目的规则。

    如果您更改内容编辑器中的对话框或更新事件,您需要确保您的逻辑适用于内容树的特定部分 - 即 sitecore/content/home 和/或可能的安全角色。

    我同意有关工作流程的工作量,但在某些情况下,这可能完全符合此验证要求和其他验证要求。

    【讨论】:

    • 啊,简单而有效。正是我想要的!
    【解决方案2】:
    【解决方案3】:

    我为此发布了一篇博客文章,它使用了项目创建/保存事件。这是使用 Sitecore 7.2 实施和测试的。这是使用的配置:

    <sitecore>
      <events>
        <event name="item:creating">
          <handler type="MySite.Customizations.Customized_Sitecore.UniqueItemNameValidator, MySite" method="OnItemCreating" />
        </event>
        <event name="item:saving">
          <handler type="MySite.Customizations.Customized_Sitecore.UniqueItemNameValidator, MySite" method="OnItemSaving" />
        </event>
      </events>
    </sitecore>
    

    【讨论】:

      猜你喜欢
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多