如果模板中没有设置参数,请隐藏标签。 (解析器功能)

时间:2015-12-14 09:45:41

标签: mediawiki mediawiki-extensions mediawiki-templates

我有一个像这样的信息框

{{Infobox
|name   = {{{name}}}
|status = {{{status}}}
|-
|! style="text-align:center; color:white; font-size:1.4em; line-height:1.3em; background:#827f75" colspan="2" {{!}}Contacts
|-
{{#if:{{{Person1|}}}|
{{!}} Person1
{{!}} {{{Person1}}}
|-
{{#if:{{{Person2|}}}|
{{!}} Person2
{{!}} {{{Person2}}}
}}

我遇到的问题是标签" Contacts"即使没有为" Person1"设置参数也是可见的或者" Person2"。这就是我的尝试。

{{#if:{{{Person1}}} or {{{Person2}}}|
{{!}} style="text-align:center; color:white; font-size:1.4em; line-height:1.3em; background:#827f75" colspan="2" {{!}}Contacts
}}

但是由于某些原因这不起作用,它总是打印出标签,好像该语句总是为真。

1 个答案:

答案 0 :(得分:2)

如果条件不为空,

if将评估true分支,反之亦然。同时{{{parameter}}}评估为相同的字符串(" {{{parameter}}}")如果未提供此参数。为了将其评估为空字符串,您需要提供一个空的默认值:{{{parameter|}}}。此外,or在这里既不需要也不帮助,因此结果表达式应为:

{{#if:{{{Person1|}}}{{{Person2|}}}

{{#if:{{{Person1|{{{Person2|}}}}}}

有关详细信息,请参阅:

相关问题