我是否錯過了某些明顯的內容,或者是否沒有合理的或半途可行的方法將過期日期添加到Liferay留言板中的郵件中?Liferay:郵件過期日期(留言板)
第一個問題是如何在消息編輯器中輸入到期日期。最明顯的解決方案可能是expando屬性,但日期似乎沒有expando數據類型(僅日期爲&),我無法在expando屬性(例如今天+ 6個月)中設置計算的默認值。即使沒有默認值,日期+時間屬性默認爲1970年1月1日,0:00GMT,並使用日期選擇器輸入實際到期日期,這相當繁瑣。輸入到期日期後,沒有明顯的方法來驗證它(例如限制它在今天和今天+ 6個月之間的日期),並且當日期顯示在消息視圖中時,當前語言環境不用於格式化日期和時間。
即使我會以某種方式設法將截止日期壓入expando屬性,但還沒有明顯的方法來評估截止日期。
可以接受的是,消息仍然存在,但不會被計數並顯示在MB portlet中。 MBThreadServiceUtil中用於訪問消息的方法並不提供任何額外的過濾標準,所以我要麼必須加載所有消息,並在Java代碼中執行計數/過濾操作(幾乎不是一個非常聰明的解決方案),要麼我不得不重寫整個服務堆棧「自下而上」並添加get或search方法,這些方法能夠將過濾轉發到數據庫。
首選的解決方案是有一個計劃任務,它定期完全刪除過期的消息。由於MB portlet支持作用域(消息與portlet的作用域相關),並且計劃任務不在portlet上下文中運行,所以我必須以某種方式訪問作用域id。如果我瞭解有關此主題的文檔和可用討論,則默認範圍應該是該網頁所屬的社區。另一方面,我們的「留言板頁面」是在組織層面添加的,並且消息的範圍ID與組織ID無關,也不符合組織中任何社區的ID。在這種情況下,有關如何確定作用域ID的想法的任何人?
您正在使用哪個版本的Liferay 6.0或6.1?另外我猜你已經通過配置彈出窗口 - >範圍 - >將選擇下拉菜單更改爲當前頁面,將範圍限定爲該頁面,這種情況是什麼情況? –
我們使用6.0.5 CE。該portlet的作用域爲「默認作用域」,而不是頁面。 – jarnbjo