【发布时间】:2021-03-20 02:33:14
【问题描述】:
考虑一个自定义的 MediaWiki 扩展,它使用一些 JavaScript 添加一个名为 simplified_example 的新标签(为简单起见,只需使用提供的参数调用 alert):
<?php
if ( ! defined( 'MEDIAWIKI' ) ) die();
$wgExtensionFunctions[] = 'registerTags';
$wgExtensionCredits['parserhook'][] = array(
'name' => 'myTags',
);
function registerTags() {
global $wgParser;
$wgParser->setHook('simplified_example', function ($input, $argv, $parser, $frame) {
$output = $parser->recursiveTagParse($input, $frame);
$title = $argv["value"];
return "<div onclick=\"alert('$title')\">$output</div>";
});
}
?>
使用它我可以将以下代码放入 MediaWiki 页面源代码中:
<simplified_example value="Testing">...</simplified_example>
这导致... div 可点击 - 显示带有提供文本的消息框。现在我想把这个标签放在一个模板里,像这样:
<simplified_example value="{{{1}}}">...</simplified_example>
当我将此模板放入 MediaWiki 页面时:
{{TestTemplate|Testing...}}
我再次获得可点击的...,但未评估显示的消息,并显示{{{1}}} 而不是提供的Testing...。
如何通过模板将 MediaWiki 页面源中的参数传递给我的自定义标签?
【问题讨论】:
标签: mediawiki mediawiki-extensions mediawiki-templates