【问题标题】:Track any changes of articles (Mediawiki 1.23)跟踪文章的任何更改 (Mediawiki 1.23)
【发布时间】:2014-11-16 20:38:53
【问题描述】:

我是 Mediawiki 的新手。

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

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

我正在使用 page_id 链接到数据库中的文章。在这种情况下是否正确?

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

  • 文章插入完成
  • 文章删除完成
  • ArticleRevisionUndeleted
  • 页面内容保存完成
  • 文章回滚完成
  • 文章合并完成

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

【问题讨论】:

    标签: php hook mediawiki mediawiki-extensions


    【解决方案1】:

    您是对的,没有一个挂钩可以针对页面可能发生的任何更改运行您的代码。这有两个相关的原因:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-23
      • 2014-05-21
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      相关资源
      最近更新 更多