2013-11-13 3 views
8

Могу ли я узнать, как определить, что пользователь находится в режиме редактора страниц с помощью кода? Это потому, что у меня есть компонент, когда пользователь просматривает редактор страниц, он будет искать в папке master_index вместо папки web_index.Sitecore: обнаружение пользователя в режиме редактора страниц

ответ

25

Пожалуйста, свяжитесь с: if (Sitecore.Context.PageMode.IsPageEditorEditing)

также работает на Sitecore 6.6, это не зависит от Sitecore 7.

Пожалуйста, проверьте также этот Sitecore blog post Мартиной Welander.

Чтобы проверить, является нормальной эксплуатации страницы: if (Sitecore.Context.PageMode.IsNormal)

Чтобы проверить, является просмотр использование режима: if (Sitecore.Context.PageMode.IsPreview)

Также другие PageMode:

  • IsPageEditorClassic
  • IsPageEditorDesigning
  • IsPageEditorEditing
  • IsPageEditorNavigating и т.д.

Если вам интересно, вы можете проверить с отражателем или dotPeek этого класса: Sitecore.Context.PageMode от Sitecore.Kernel сборки.

+0

Sitecore 8 переключается на «Sitecore.Context.PageMode.IsExperienceEditor». И если вы используете Glass, вы можете сократить до «@IsInEditingMode» в представлении. –

2

Вместо того, чтобы проверить режим страницы, я думаю, что вы просто хотите контрейлерных на имя контекста базы данных -

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

Я склонен согласиться. Хотя он не отвечает на исходный вопрос, это лучшее решение основной проблемы. –

0

Я использую этот синтаксис в представлении, чтобы добавить класс для обнаружения JS, тот же код может быть используется для определения местоположения с битовой модификацией:

<html class="@(Sitecore.Context.PageMode.IsPageEditor ? "inexpeditor" : "notexpeditor")"> 
Смежные вопросы