我想添加3个自定义标签,MediaWiki管理员将添加到她的模板中(例如,登录页面的Userlogin.php模板),这些扩展需要由我正在构建的扩展处理。标签的形式为 <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;
}
所以现在当我将标签
任何有助于实现预期结果的帮助都会很有帮助,因为我从 2-3 天开始就坚持了这一点,而且文档根本没有帮助。
另外,我使用的是MediaWiki 1.9.3,因为这是我需要开始支持的最低版本。
使用 UserLoginForm
钩子。它使用用于创建登录表单的UserLogin
模板(在SVN)调用扩展函数。它是QuickTemplate的一个实例,您将能够从扩展代码中编辑/填充它。
如果您不针对解析的wiki文本,请不要尝试构建解析器扩展(标签扩展)。