是否有人能够告诉我如何编写一个可以拦截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/ –