我想以编程方式进行一些注册,这些注册取决于存储在 plone.app.registry 中的数据。具体来说,我想将 menuItems 添加到对象的显示菜单中,这通常是通过 zcml 完成的。
这种“克隆加载”事件的“标准”方法是什么?
我考虑过的方法是:
- 在站点根目录上使用预遍历钩子,进行注册,然后设置某种标记以防止重新注册
- 监听 zope 启动事件(如 zope.processlifetime.IProcessStarting),然后在 ZODB 中找到所有 Plone 站点并执行注册