Mediawikiの拡張機能の開発

提供: Akionux-wiki
Share/Save/Bookmark
移動先: 案内検索

概要

Mediawikiの拡張機能を作るための覚書である。

流れ

拡張機能が機能するまでの大まかな流れをメモしておく[1]

拡張機能の読み込みの始まり

LocalSettings.phpの一行:

require_once "$IP/extensions/MyExtension/MyExtension.php";

の読み込みですべて完結させるように作る。

登録

MyExtension.phpには、拡張機能の登録を次のように入れる: [2] $wgExtensionCredits['validextensionclass'][] = array(

   'path' => __FILE__,
   'name' => 'Example',
   'author' => 'John Doe', 
   'url' => 'https://www.mediawiki.org/wiki/Extension:Example', 
   'description' => 'This extension is an example and performs no discernible function',
   'version'  => 1.5,
   'license-name' => "",   // Short name of the license, links LICENSE or COPYING file if existing - string, added in 1.23.0

);

クラスの定義

例えば、NewClass.phpに定義が書かれたクラスNewClassを読み込むには、

$wgAutoloadClasses['NewClass'] = __DIR__ . '/NewClass.php';

とする[3][4]

複雑な拡張機能の場合は、includes以下のphpファイルを読むようになっているらしい[4]

Hooks

イベント発生時の動作をフック(Hooks)として書いていく[5]。 例えば、PageContentSaveCompleteイベント発生時に関数MyExtensionHooks::pageContentSaveCompleteを呼び出すようにするには、

$wgHooks['PageContentSaveComplete'][] = 'MyExtensionHooks::pageContentSaveComplete';

とする。

References