1

私は Mediawiki の初心者です。

記事コンテンツのいくつかの要素にリンクされたデータベース レコードがあります。データベース内のデータは、記事の内容に完全に依存しており、対応する要素が変更されたときに更新する必要があります。一部のmediawiki フックは、必要な機能の一部を提供しますが、同じタスクに対していくつかの異なるフックを使用する必要があり、このような些細な状況では複雑すぎるように見えるため、それが正しい解決策であるかどうかはわかりません。

最も適切な方法でこれを行うにはどうすればよいですか?

データベース内の記事へのリンクに page_id を使用しています。この場合は正しいですか?

データベースを更新する必要があるすべての状況で、どの mediawiki フックを使用する必要がありますか? 現在、これを使用したい:

  • ArticleInsertComplete
  • 記事削除完了
  • 記事の改訂元に戻す
  • PageContentSaveComplete
  • 記事ロールバック完了
  • 記事のマージ完了

または、最近の変更をどのようにキャッチできますか?

4

1 に答える 1

0

ページに発生する可能性のある変更に対してコードを実行するための単一のフックはありません。これには、次の 2 つの関連する理由があります。

  1. ページを変更する可能性のある無数のパスがあります。それらのすべてがコアにあるわけではなく、一部は拡張機能によって提供されます。変更は別のページ (テンプレートなど) から発生する可能性があります。または別の wiki (たとえば、ファイル リポジトリ、または恐ろしくトランスクルードするテンプレートなど)。
  2. すべてのケースに同じように対処するのは得策ではありません。安全に無視できる更新もあれば、まとめて実行すると Wiki を強制終了してジョブ キューで遅延させる必要がある更新もあり、すぐに実行する必要がある更新もあるからです。

したがって、はい、すべてのフックを見つける必要があります (コアの場合、リストはすでに適切なものです。インストールする拡張機能ごとに修正する必要があります)。必要な更新の種類が常に同じである場合は、同じ関数をすべてのフックにアタッチするだけでよいため、重複は最小限に抑えられます。

于 2014-12-09T20:00:23.737 に答える