假设我Foo
在 osclass 中有一个插件。在那个插件中,我们注册了一个钩子,用于发布项目。根据osclass 挂钩文档,发布项目时运行的唯一挂钩是posted_item
.
但据我所知,从代码中可以看出,这是在初始项目数据已经验证并存储在数据库中之后运行的。如果某些插件特定代码的验证失败并且我想向用户显示错误消息并再次向他展示表单以让他/她有机会更改此信息怎么办?就像您尝试提交新项目但不填写基本信息之一description
,例如。
我似乎找不到办法做到这一点。尽管包含无效的插件特定数据,但我发现避免发布项目的唯一解决方法是在posted_item
我的插件的挂钩回调函数中再次删除发布的项目,而不编辑主 osclass 代码。这感觉非常麻烦,并且还需要每个其他插件检查该项目是否仍然存在,以确保它们不会保存连接到现在已删除的项目的数据。
我想要并且想知道我是否错过了一个钩子,它在发布项目但在将其写入数据库之前运行,并且能够生成会导致项目无法发布的“错误”,并且用户重定向回表单,显示“错误”,就像基本项目信息一样。
有人有我错过的解决方案吗?这感觉像是插件的一个非常重要的部分,如果没有它,发布的项目可能会变得非常分散。