将参数从MediaWiki模板移交给包含的参数

时间:2015-05-08 07:35:04

标签: mediawiki mediawiki-extensions mediawiki-templates

我使用可以用作模板的MediaWiki扩展 DynamicPageList(第三方)

p

我尝试在我的一个模板中使用此模板,该模板使用更多参数,例如:

{{#dpl:
|category=foo
|notcategory=bar
}}

myTemplate 如下所示:

{{myTemplate
|category=foo
|notcategory=bar
|mypara1=bla
|mypara2=lala
}}

我知道我的参数,但 #dpl:可以使用一个或多个参数。

如何将参数与 #dpl:分开?我怎样才能交出属于 #dpl:

的参数

谢谢,
射线

2 个答案:

答案 0 :(得分:2)

最后,我提出了以下解决方案:

DPL有一个额外的模板#dplreplace。我用这个来解析我的参数。

调用模板:

{{myTemplate
  | filter=category:foo;notcategory:bar
  | mypara1=bla
  | mypara2=lala
}}

在模板中,我将:替换为=,将;替换为{{!}}

{{#dpl:
  | {{#dplreplace: {{#dplreplace: {{{filter}}} | /:/ | = }} | /;/ | {{!}} }}
  | ordermethod = sortkey
  | suppresserrors = true
}}

注意:{{!}}是一个由|替换的模板。

的问候;
射线

答案 1 :(得分:1)

也许我误解了您的问题,但您可以将参数传递给DPL,就像您对模板或其他parser function一样。在大多数情况下,您可能希望添加一个空默认值:

<强> MyTemplate的:

do something with {{{mypara1}}}
do something with {{{mypara2}}}

{{#dpl:
  |category    = {{{category|}}}    <!-- default to empty string -->
  |notcategory = {{{notcategory|}}} <!-- default to empty string -->
}}

这样称呼:

{{myTemplate
  |category=foo
  |notcategory=bar
  |mypara1=bla
  |mypara2=lala
}}

也可以使用缺少的参数:

{{myTemplate
  |category=foo
  |mypara1=bla
  |mypara2=lala
}}