2013-03-12 3 views
1

Sitecore рабочей корзинки «Предварительный просмотр» использует следующий код, который отображает его в другой вкладке,Sitecore - Предварительный просмотр в рабочей корзинке всплывающим

protected void Preview(string id, string language, string version) 
    { 
     ... 
     Context.ClientPage.SendMessage((object)this, "item:preview(id=" + id + ",language=" + language + ",version=" + version + ")"); 
    } 

Я хочу, чтобы появиться предварительным просмотром во всплывающем окне. Я уже переопределил рабочую область, и это вопрос изменения этого метода. Любые идеи, как я могу это изменить? Я пробовал разные вещи, но ничего не работает для меня ...

ответ

2

В App_Config \ Commands.config вы можете обнаружить, что item:preview карты для Sitecore.Shell.Framework.Commands.PreviewItem класса.

Вы можете создать свою собственную команду на основе класса PreviewItem и использовать его вместо команды item:preview.

Если вы размышляете код PreviewItem класса вы увидите Run метод, который выполняет

SheerResponse.Eval("window.open('" + (object) webSiteUrl + "', '_blank')"); 

в самом конце этого метода. Это загружает предварительный просмотр на новой вкладке. Измените эту логику на все, что вам нужно в вашем классе повышенной сложности.

0

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

И я overridded «Открыть» mwthod в следующий рабочей корзинке, чтобы открыть элемент редактора контента в новой вкладке,

... 
UrlString urlString = new UrlString("/sitecore/shell/Applications/Content%20Editor"); 

     urlString.Append("id", id); 
     urlString.Append("vs", version); 
     urlString.Append("ro", sectionId); 
     urlString.Append("la", language); 
     urlString.Append("fo", id); 

     SheerResponse.Eval("window.open('" + (object)urlString + "', '_blank')"); 
... 

Он работает !!!!! Еще раз спасибо.

Смежные вопросы