簡體   English   中英

Sitecore發布:與用戶的結束事件交互

[英]Sitecore publish:end event interaction with user

我有一個publish:end事件處理程序,如果有任何錯誤,我想向用戶展示。 有什么辦法嗎? 我可以插入某些東西在發布結束屏幕上(或之前)顯示消息嗎?

您的問題使我很感興趣,因為這是我希望Sitecore可以實現的事情之一,但是沒有人真正花時間去了解如何做。 所以我很喜歡它,我很高興地說這有可能達到某個目的!

publish:end上調用的事件處理程序中,您可以查找當前正在運行的發布作業。 獲得工作后,可以修改其狀態消息:

var publishJobs = Sitecore.Jobs.JobManager
    .GetJobs().Where(x => x.Category.Equals("publish"))
    .ToList();

publishJobs.ForEach(x => x.Status.Messages.Add("This is a message inserted by the publish:end event"));

結果將顯示在“結果”文本框中的發布對話框的最后一頁。

在此處輸入圖片說明

結果文本區域的含義是,僅在單擊“單擊此處以查看其他信息”鏈接時才能看到。

要更改該行為,您需要修改/sitecore/shell/Applications/Dialogs/Publish/Publish.xml的對話框XML。 您可以在其中將結果文本區域設置為始終可見。

但是有一個缺點:您不知道哪個工作是您的發布工作...

每個作業都有一個分配給它的句柄,該句柄基本上是一個Guid以及有關服務器和站點的一些信息,但是在事件處理程序中,您沒有此信息( 或者至少我找不到它 )。

我認為在大多數情況下,只需將消息添加到所有正在運行的發布作業中(檢查是否已經存在)就沒問題,但這是需要考慮的問題。

希望這可以幫助!

我認為您無法直接通知用戶,因為publish:end是在另一個不了解Sitecore界面的線程上執行的。 您可以向用戶發送電子郵件。

您還可以添加發布狀態內容編輯器警告,以使編輯器知道發布是否成功完成。

我已經在與我合作的所有sitecore網站上安裝了發布狀態,用戶發現它非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM