我使用可以用作模板的MediaWiki扩展 DynamicPageList(第三方):
p
我尝试在我的一个模板中使用此模板,该模板使用更多参数,例如:
{{#dpl:
|category=foo
|notcategory=bar
}}
myTemplate 如下所示:
{{myTemplate
|category=foo
|notcategory=bar
|mypara1=bla
|mypara2=lala
}}
我知道我的参数,但 #dpl:可以使用一个或多个参数。
如何将参数与 #dpl:分开?我怎样才能交出属于 #dpl:?
的参数谢谢,
射线
答案 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
}}