【问题标题】:Passing down MediaWiki template arguments to custom HTML attributes将 MediaWiki 模板参数传递给自定义 HTML 属性
【发布时间】: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


    【解决方案1】:

    尝试在模板中使用#tag 函数而不是html,如下所示:

    {{#tag:simplified_example|value={{{1}}} }}

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 2014-02-01
      相关资源
      最近更新 更多