Как узнать, было ли нажато сохранение в редакторе контента или редакторе страниц в процессоре saveUI

У меня есть процессор saveUI, и я хочу запускать свой код только в том случае, если пользователь нажал кнопку сохранения в редакторе страниц. Я пробовал проверять контекст, например:

Sitecore.Context.PageMode.IsPageEditor

но это всегда ложь. Я предполагаю, что процессор не в правильном контексте.

Как мне проверить, откуда был клик? Где-то в аргументах указан «отправитель»?


person Scott    schedule 02.06.2015    source источник
comment
Какой код вы хотите запустить? В ресурсах указано, что конвейер saveUi следует использовать только тогда, когда вам нужно взаимодействовать с пользователем, сохраняющим элемент. Так что другой может быть более подходящим, какой PageMode поддерживается   -  person Jonathan Robbins    schedule 08.06.2015


Ответы (1)


Вы должны быть в состоянии правильно определить PageMode в контексте Sitecore через

if (Sitecore.Context.PageMode.IsPageEditorEditing)

Есть еще такие варианты

  • IsPageEditor
  • IsPageEditorДизайн
  • 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

person Jonathan Robbins    schedule 03.06.2015
comment
Как я сказал в своем вопросе, это не работает. IsPageEditorEdting, IsPageEditor, IsPageEditorDesigning и IsPageEditorClassic возвращают false в процессоре saveUI, даже если щелчок сохранения происходит из редактора страниц. В статье вы ссылаетесь на встроенный код на странице, а не на конвейер. Код, который я запускаю, находится в конвейере saveUI, поэтому я думаю, что там другой контекст. - person Scott; 03.06.2015
comment
Sitecore.Context по-прежнему должен быть доступен в конвейерах. Я проверю свои прошлые примеры и вернусь к вам - person Jonathan Robbins; 03.06.2015