1

MediaWiki 管理者が自分のテンプレート (たとえば、ログイン ページの Userlogin.php テンプレート) に追加する 3 つのカスタム タグを追加したいと考えています。これらの拡張機能は、構築中の拡張機能によって処理される必要があります。タグは , の形式<mytag_forXaction>になり<mytag_forYaction>ます。拡張機能がこれを解析すると、有効な HTML タグに置き換えられて、ボックスや画像、または目的が何であれ表示されます。

これまでのところ、私はこれをやってみました:

if ( !defined( 'MEDIAWIKI' ) ) {
    die( 'This file is a MediaWiki extension, it is not a valid entry point' );
}

$wgExtensionCredits['parserhook'][] = array(
   'path' => __FILE__,
   'name' => 'Test Parser Function',
   'description' => 'A simple example parser function extension',
   'version' => 0.1,
   'author' => 'Me',
   'url' => 'https://www.mediawiki.org/wiki/Manual:Parser_functions',
);

$wgHooks['ParserFirstCallInit'][] = 'buttonParserSetup';
function buttonParserSetup( ) {
    global $wgParser;

    //apploginbtn will be the tag to be replaced
    $wgParser->setHook( 'apploginbtn', 'RenderAppLoginButton' );

    return true; // Return true so that MediaWiki continues to load extensions.
}

// Render the output of the parser function.
function RenderAppLoginButton( $input, $argv ) {
    $output = "SUCCESSFULLY REPLACED.";
    return $output;
}

したがって、タグ <apploginbtn />、または <apploginbtn></apploginbtn>、または {{apploginbtn}}、または {{#apploginbtn}} を Userlogin.php ファイルの目的の位置に追加すると、タグは「交換されます。

目的の結果を達成するための助けは、2〜3日以来これに固執しており、ドキュメントはまったく役に立たないため、非常に役立ちます.

また、MediaWiki 1.9.3 を使用しています。これは、サポートを開始する必要がある最も低いバージョンです。

4

1 に答える 1

3

UserLoginFormフックを使用してください。ログインフォームの作成に使用されるUserLoginテンプレートSVN )を使用して拡張機能を呼び出します。これはQuickTemplateのインスタンスであり、拡張コードから編集/詰め込むことができます。

解析済みウィキテキストを対象としていない場合は、パーサー拡張機能 (タグ拡張機能) を構築しようとしないでください。

于 2012-11-14T14:23:47.373 に答える