【问题标题】:Sitecore: Detect user in Page Editor modeSitecore:在页面编辑器模式下检测用户
【发布时间】:2013-11-13 18:41:50
【问题描述】:

我能否知道如何使用代码检测用户是否处于页面编辑器模式? 这是因为,我有一个组件,当用户从页面编辑器浏览时,它将在 master_index 文件夹而不是 web_index 文件夹中搜索。

【问题讨论】:

    标签: sitecore sitecore7 page-editor


    【解决方案1】:

    请联系:if (Sitecore.Context.PageMode.IsPageEditorEditing)

    也在开发 Sitecore 6.6,它不依赖于 Sitecore 7。

    还请查看 Martina Welander 的 Sitecore blog post

    检查页面是否正常使用:if (Sitecore.Context.PageMode.IsNormal)

    要检查是否是预览模式,请使用:if (Sitecore.Context.PageMode.IsPreview)

    还有其他PageMode:

    • IsPageEditorClassic
    • IsPageEditorDesigning
    • IsPageEditorEditing
    • IsPageEditorNavigating

    如果你好奇,你可以使用 Reflector 或 dotPeek 这个类:Sitecore.Kernel 程序集中的Sitecore.Context.PageMode

    【讨论】:

    • Sitecore 8 切换到“Sitecore.Context.PageMode.IsExperienceEditor”。如果您使用的是 Glass,您可以在视图中简写为“@IsInEditingMode”。
    【解决方案2】:

    与其检查页面模式,我认为您只是想捎带上下文数据库名称-

    var indexName = Sitecore.Context.Database.Name + "_index";
    

    【讨论】:

    • 我倾向于同意。虽然它没有回答最初的问题,但它是解决潜在问题的更好方法。
    【解决方案3】:

    我正在使用这种语法添加一个用于 JS 检测的类,相同的代码可以用于后端检测并进行位修改:

    <html class="@(Sitecore.Context.PageMode.IsPageEditor ? "inexpeditor" : "notexpeditor")">
    

    【讨论】:

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