Zope对象文件系统(OFS)的几个hook函数
这个几个函数非常索然无味,而且在后续版本会过时。
这个几个函数非常索然无味,而且在后续版本会过时。
但是,在zope 3的事件机制未引入之前,Zope开发还是需要了解OFS的几个hook函数。
所谓OFS,就是Zope的对象文件系统(Object File System),也就是在ZMI中所看到的对象树。
好不容易从代码中扒出来,写下来:
def manage_beforeDelete(self, item, container):
对象被删除(delete)、改名(rename),或者移动(move)之前,都先会调用此函数(从对象树中移除的时候就会调用_delObject)。
如果要区分具体是什么操作,可同时重载 _notifyOfCopyTo 等方法处理。
CMF中的容器对象,会对整个容器树中的子对象迭代调用这个方法。
def manage_afterAdd(self, item, container):
对象被添加、或者复制、被移动的之后,都会调用此函数(只要放到对象树中的时候就会调用_setObject)。
如果要区分是新添加,还是复制,需要重载其他的方法,比如 _getCopy 等.
CMF中的容器对象,会对整个容器树中的子对象迭代调用这个方法。
def manage_afterClone(self, item):
对象被Paste完成后调用,此前会先调用 manage_afterAdd
CMF中的容器对象,会对整个容器树中的子对象迭代调用这个方法。
def manage_renameObject(self, id, new_id, REQUEST=None):
容器对象才有此方法,对对象进行改名,会触发 manage_beforeDelete 和 manage_afterAdd 方法

2004