跟踪文章的任何变化(Mediawiki 1.23)

时间:2014-09-22 19:16:02

标签: php hook mediawiki mediawiki-extensions

我是Mediawiki的新人。

我将数据库记录链接到文章内容的某些元素。数据库中的数据完全依赖于文章的内容,并且必须在更改相应元素时更新。有些mediawiki hooks提供了所需功能的一部分,但我不确定它是否是正确的解决方案,因为我必须使用几个不同的钩子来完成相同的任务,并且在这样的微不足道的情况下它看起来太复杂了。

我怎样才能以最合适的方式做到这一点?

我使用page_id链接到数据库中的文章。这种情况是对的吗?

对于必须更新数据库的所有情况,我必须使用哪些mediawiki挂钩?目前我想用这个:

  • ArticleInsertComplete
  • ArticleDeleteComplete
  • ArticleRevisionUndeleted
  • PageContentSaveComplete
  • ArticleRollbackComplete
  • ArticleMergeComplete

或者我怎样才能捕捉到最近的变化?

1 个答案:

答案 0 :(得分:0)

你是对的,没有一个钩子来运行你的代码,以应对页面可能发生的任何变化。这有两个相关的原因:

  1. 有无数的路径可能会改变页面:并非所有路径都在核心,有些是由扩展提供的;更改可能来自其他页面(例如模板);甚至是另一个wiki(例如文件存储库,甚至是你可怕的转换模板);
  2. 其他以同样的方式处理所有案例并不是一个好主意,因为有些更新可以安全地被忽略,其他更新可以在批量处理时杀死你的wiki并且应该在作业队列中延迟,其他人必须立即行动。

    所以,是的,你必须找出所有的钩子(你的列表已经是一个好的,对于核心;需要修改你安装的每个扩展)。如果您需要的更新类型始终相同,则只需attach所有挂钩的相同功能,因此复制很少。