是否有人能夠告訴我如何編寫一個可以攔截silverstripe上的發佈命令的函數?我希望實現一個系統,當換頁即將發生時,會發送到另一個系統的HTTP調用,這將通知管理員頁面已更改。我希望系統等待幾分鐘,然後讓管理員有時間在未經授權的情況下刪除更改。銀條功能攔截
Q
銀條功能攔截
0
A
回答
1
SiteTree
類中有各種事件掛鉤可用於此目的。
class MySiteTreeExtension extends DataExtension {
function onAfterPublish() {
$this->notifyMyAdmin(sprintf('Page "%s" has been published', $this->owner->Title));
}
}
具有以下除了你mysite/_config.php
應用擴展:
Object::add_extension('SiteTree', 'MySiteTreeExtension');
你顯然需要實現notifyMyAdmin()
方法來作出這樣的HTTP調用。 通常,我建議不要在用戶操作上執行同步HTTP調用,儘管如此,因爲它們使您的系統依賴於另一個的可用性。考慮使用諸如messagequeue模塊之類的東西。在「等待幾分鐘出版」方面:不可能通過擴展系統「否決」出版物。 爲了達到這個目的,你可以在你的子類中覆蓋SiteTree->doPublish()
,但它對於用戶來說仍然是一個奇怪的UI模式。工作流模塊加上「請求發佈」加上一些cron作業來自動批准它們會更直接。
+0
Ingo, 感謝您的支持。我不確定如何執行您建議的「請求發佈」。 onAfterPublish很有用,謝謝。 –
相關問題
- 1. 攔截__doPostBack功能
- 2. 使用OpenMP攔截功能
- 3. iOS 10中的呼叫攔截功能
- 4. 攔截/裝飾部分功能
- 5. Excel VBA - 攔截AddIn功能區點擊
- 6. 廣告小怪攔截功能
- 7. 攔截器不攔截
- 8. java攔截器不攔截
- 9. 不能攔截401角
- 10. Spring方法攔截 - 性能
- 11. 不能攔截PyDict_New與LD_PRELOAD
- 12. android上的攔截攔截器
- 13. 如何爲ILogger攔截攔截器
- 14. EJB 3.1攔截器是「攔截器」嗎?
- 15. 城堡攔截器不攔截
- 16. LightInject - 攔截不攔截依賴關係
- 17. EJB攔截器vs CDI攔截器
- 18. AngularJS攔截器不成功返回
- 19. 條紋豆類旁路攔截器
- 20. 簡單的噴油器,功能沒有被攔截?
- 21. 鼠標懸停的原型攔截功能
- 22. 攔截Android系統鍵盤快捷鍵以覆蓋功能
- 23. 攔截PHP的利用可利用的功能
- 24. 如何攔截Windows的開放URL默認瀏覽器功能
- 25. 關於支柱的功能,2攔截器和Servlet過濾器
- 26. 攔截Magento 2中模態功能的事件
- 27. 傳遞功能參數和彈出式窗口攔截
- 28. 攔截pthread_create的Linux的功能,導致JVM/SSH崩潰
- 29. MPMoviePlayerViewController - 如何攔截或更改完成按鈕的功能
- 30. 攔截源和目標之間的移動項功能
我認爲您正在尋找類似的東西? http://www.silverstripe.org/cms-workflow-module/ –