2016-10-04 95 views
0

在用於Kentico 9項目的visual studio 2015中,我創建了放置在主頁上的自定義Web部件。它有一個Page_PreRender方法,用當前的日期和時間檢查緊急頁面的日期和時間,如果時間戳存在差異,並且時間戳的差異在當前時間的24小時內一個緊急圖標會一直閃爍,直到24小時的時間結束,或者他們會再次點擊Save buton按鈕更新緊急情況頁面。我還有一個計數器來檢查保存按鈕被點擊的次數。上面的數據是從數據庫中查詢的,因爲點擊保存按鈕時會保存時間戳等。簡而言之,保存緊急頁面並且緊急圖標開始閃爍。如果再次單擊保存按鈕(第二次),它會切換緊急圖標的閃爍。如果突發事件頁面內容發生變化,但這種情況非常必要,但是沒有真正的/緊急的突發事件,需要閃爍的緊急圖標才能讓用戶意識到。Kentico 9和發佈按鈕

當Kentico沒有適當的工作流程時,由於添加了工作流程並且有一個發佈/拒絕按鈕。點擊「發佈」按鈕使緊急圖標閃爍,並最終進入「保存」按鈕和「發佈」按鈕之間的戰鬥。我可以關閉緊急頁面的WorkFlow,但希望查看是否有方法檢查發佈按鈕是否被點擊。

我的問題是如何在if條件中使用Kentico按鈕保存/發佈/拒絕等來檢查在Page_PreRender方法中單擊了哪個按鈕?

回答

1

這裏有幾個選項:

工作流程
  1. 配置自動發佈
  2. 實施這個特定頁面的單獨工作流程,不需要審批

要回答你的問題關於如何檢查點擊哪個按鈕 - 檢查文檔是否已發佈:

publishe d將意味着發佈按鈕被點擊,否則 - 保存

+0

好的,謝謝你的回覆。我會看看你的第三個選項,檢查頁面/文檔是否處於發佈狀態。對於選項1,我不希望進行自動發佈,並且像我說的那樣,我可以(從關閉頁面中關閉/排除)工作流程,但希望查看是否有方法檢查發佈按鈕是否已單擊。 –

+0

謝謝羅馬。在數據庫中使用DocumentWorkflowStepID來查看文檔是處於「保存」還是「發佈」狀態。 –

0

您可以扎入publish event告訴當文件被髮布:

public class CustomWorkflowEventsAttribute : CMSLoaderAttribute 
{ 
    public override void Init() 
    { 
     WorkflowEvents.Publish.Before += PublishDocument; 
    } 

只是一個建議,也許會更容易只圖標是否基於最新發布的文檔版本而閃爍?可能在緊急文檔上有一個字段,它是一個布爾值,可以顯示或不顯示閃爍的圖標,如果他們想禁用它,只需取消選中併發布即可。

+0

謝謝Zach。試圖實現閃爍的第二個按鈕。他們不同意。 「佔用空間」:-)好的建議是在發佈部分進行檢查,但更喜歡保存,因爲如果他們發佈並且在發佈時間內看到內容中有錯誤,則主版本號將會增加一個當您嘗試再次保存它而不是次要版本號時。 –