我有语义查询的结果。对于其中一个属性,以逗号分隔的列表,我想分隔每个项目并将其作为参数传递给模板。但是,我很难找到办法做到这一点。
例如;
查询:
{{#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:
等,但这也没有传递变量。
我的问题归结为如何将变量传递给模板?
谢谢,
答案 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:
并启用它。