2012-03-21 10 views
0

MediaWikiの特定のページを編集した後に、何らかの種類の信号をトリガしたり、フックを設定することは可能ですか(例えば、定義済みの/ハードコーディングされたシェルスクリプトの実行)?特定のページの編集時に信号/フックをトリガする方法はありますか?

シナリオは次のとおりです。
これまで、RSSフィードが要求されるたびに、特定のMediaWikiページ(wiki/index.php?title=Newsと呼ぶ)のコンテンツからRSSフィードが生成されていました。このページは数日で1回しか編集されないため、RSSフィードのソース(例:フィードリーダーのURL:example.com/rss-feed.php)としてPerl :: CGIのPHPスクリプトを使用する方がよいでしょう。このスクリプトは、wikiページが編集されたときにのみ静的なRSSフィードを(例えば、example.com/rss.xmlに)生成します。

備考:
私が話しているWikiページが保護され、信頼できるユーザーのみがそれを編集することができます。上記のワークフローの中で、セキュリティ上の問題は考えられません。そうでなければ私は納得しています。

答えて

1

確かに、可能です。

ArticleSaveComplete hook$articleパラメータは、ちょうど(具体的には、あなたが $article->mTitleのプロパティにアクセスしたい)に保存されています記事のタイトルと名前空間が含まれています。

タイトル(およびネームスペース!)が指定されたデータと一致しない場合は、単にtrueを返すifステートメントで関数を定義します。一致すると、必要な静的ファイルが生成されます。

MediaWiki Hooks manual pageには、フックの仕組みや、特定のフックで動作する新しい機能を記述する方法についてのいくつかの例と詳細があります。

あなたが実際にあなたのマシンに悪影響を見ていない限り、私はこのアイデアを削除することをお勧めします。通常の設定では、MediaWikiはパーサキャッシュを使用して、このようなクエリに対して最も負荷のかかる操作を処理する必要があります。

+0

ありがとうございます。あなたが言ったように、私はその考えを打ち破ります。私が上で述べたPerlスクリプトはかなり速く、多くの負荷を引き起こさない。私はそのスクリプトを実行している時間別のcronジョブを使用して終了しました。 –

関連する問題