2013-04-30 15 views
1

我想在plone.app.blob.field.BlobField.index_html上触发一个事件,以便我可以设置订阅服务器来侦听它。用户没有问题,但显然plone.app.blob不是我的代码,所以通知有点诡计。我有猴子补丁做zope.event.notify(MyEvent(对象)),但这是做到这一点的最佳方式?我预计会有一些grok魔法让我把一个事件附加到方法上。添加事件通知程序,首选练习

+0

你的实际最终目标是什么?每当下载内容时触发一个事件听起来像是一个不寻常的要求。 – 2013-04-30 19:59:48

+0

我建议无论如何,你可能不想写信给ZODB?如果您不需要访问对象/ BLOB本身或ZODB,为什么不使用ZPublisher中已有的事件/钩子(例如zope.publisher.interfaces.EndRequestEvent的处理程序)? – sdupton 2013-04-30 20:42:57

+0

最终目标是记录谁下载了一个文件,以及我打算保存在var/log目录中的什么时候。我意识到Z2日志显示了这一点,但我认为这可以让我更多地控制我想为这种情况记录哪些信息,并将它与该日志中的所有其他信息分开。作为一个更普遍的问题,我猜想试图把通知器放在某个地方被人诟病呢? – Esoth 2013-05-01 20:43:39

回答

0

最好的办法是在Github上分发项目,并使用Mr.开发人员构建工具维护和部署补丁版本。

稍后,您可以签署Plone贡献协议,并将您的补丁放入plone.app.blob的新版本中,因此您不需要再有任何补丁魔法。