【问题标题】:Possible to have predefined values on a template/only accept some values可能在模板上有预定义的值/只接受一些值
【发布时间】:2015-11-06 13:39:45
【问题描述】:

模板上是否可以有预定义的值? IE。

{{Infobox Employee
|age = {{{age}}}
|gender = {male,female}
|occupation = {nurse, doctor, caretaker}
}}

因此,每当有人使用此模板时,他们都必须选择男性或女性,如果两者都没有选择,则不会显示任何内容。很像 html 中的选择。

【问题讨论】:

  • 是否有可能有一个 if 状态来检查 if(gender == male || female) gender = gender else gender=""
  • 更多这样的:{{#ifeq:{{{gender|}}}|male| Do something | Do something else}}
  • 回答您的问题:如果输入无效,您最接近的是打印错误消息

标签: mediawiki wikipedia


【解决方案1】:

在核心 MediaWiki 中,您可以使模板输出错误或忽略意外参数,但不能阻止用户输入无效值。例如。你可以在信息框中做这样的事情:

{{#switch:{{{gender}}}
| male = Male
| female = Female
| #default = <span style="color:red">Invalid gender</span>[[Category:Pages with invalid template parameters]]
}}

(此示例使用来自ParserFunctions 扩展的#switch。您可以在不使用 ParserFunctions 的情况下执行相同的操作,但它需要一些复杂且笨拙的模板代码。)

使用 TemplateData 扩展,您可以指定允许的值,但它只会影响依赖于 TemplateData 的编辑器(例如 VisualEditor);它不会影响某人可以通过纯文本编辑对模板执行的操作。

Semantic Forms 扩展可以显示用于编辑信息框的实际表单,带有选择框和您指定的任何其他内容。

【讨论】:

    猜你喜欢
    • 2018-04-17
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多