【问题标题】:How to know if save was clicked in Content Editor or Page Editor in saveUI processor如何知道是否在 saveUI 处理器的内容编辑器或页面编辑器中单击了保存
【发布时间】:2015-06-02 22:51:20
【问题描述】:

我有一个saveUI 处理器,我只想在用户单击页面编辑器中的保存按钮时运行我的代码。我试过检查上下文,如:

Sitecore.Context.PageMode.IsPageEditor

但它总是错误的。我的猜测是处理器不在正确的上下文中。

如何检查点击的来源?参数中的“发件人”是否在某处指示?

【问题讨论】:

  • 你要运行什么代码?资源概述了 saveUi 管道仅应在您需要与保存项目的用户交互时使用。所以另一个可能更适合维护哪个 PageMode

标签: sitecore page-editor


【解决方案1】:

您应该能够通过

正确检测 Sitecore 上下文中的 PageMode
if (Sitecore.Context.PageMode.IsPageEditorEditing)

还有类似的选项

  • IsPageEditor
  • IsPageEditorDesigning
  • IsPageEditorClassic

如果您查看 Sitecore.Context.PageMode 命名空间,您将看到所有可用的选项,因此您可以检测所需的模式。

我相信旧版本的 Sitecore(可能是 6.5 及以下)有不同的属性。

我建议查看此帖子以获取更多信息 - https://www.sitecore.net/learn/blogs/technical-blogs/martina-welander-sitecore-blog/posts/2013/07/improving-the-page-editor-experience-part-3-detecting-page-mode.aspx

【讨论】:

  • 正如我在问题中所说,这不起作用。 IsPageEditorEdting、IsPageEditor、IsPageEditorDesigning 和 IsPageEditorClassic 在 saveUI 处理器中都返回 false,即使从页面编辑器进行了保存单击。您在页面中引用他关于内联代码的文章,而不是管道。我正在运行的代码在 saveUI 管道中,所以我认为那里的上下文不同。
  • Sitecore.Context 应该仍然可以在管道中访问。我会查看我过去的示例并回复您
猜你喜欢
  • 2012-04-24
  • 2018-12-21
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 2011-06-29
  • 2021-08-05
  • 2018-08-19
  • 1970-01-01
相关资源
最近更新 更多