Semantic Mediawiki - 将变量传递给模板

时间:2015-06-22 09:46:02

标签: mediawiki mediawiki-templates semantic-mediawiki

我有语义查询的结果。对于其中一个属性,以逗号分隔的列表,我想分隔每个项目并将其作为参数传递给模板。但是,我很难找到办法做到这一点。

例如;

查询:

{{#ask: [[Category:Something]] [[Has title::Somethingelse]]
| mainlabel=-
| ?Has property
| link=none
| format=template
| template=plainText
}}

plainText模板将具有结果,这是一个以逗号分隔的列表。现在,从plainText模板,我想分隔逗号分隔列表,并将每个值作为参数放入另一个模板。

我尝试过使用{{#arraydefine:key|values|delimiter|options}}但是当我将{{#arrayindex:key|0}}传递给模板时,该值未通过。整个数组以0.分隔传递。我也尝试使用{{#vardefine:等,但这也没有传递变量。

我的问题归结为如何将变量传递给模板?

谢谢,

1 个答案:

答案 0 :(得分:0)

需要在模板中完成分离。 如果你使用非命名的args,比如in http://semantic-mediawiki.org/wiki/Template:Query_output_demo

您的参数可以使用以下默认值获取:

{{{1|param1default}}} {{{2|param2default}}} ...

现在你的一个参数是一个以逗号分隔的列表。您可能想要使用

#explode

解析器函数来获取CSV的不同部分。让我们假设第二个 参数有你的csv然后:

{#explode:{{{2}}}|;|0}}
{#explode:{{{2}}}|;|1}}
...

将提供字段。

为此,您需要

https://www.mediawiki.org/wiki/Extension:StringFunctions#.23explode

并启用它。