【问题标题】:MediaWiki: Infobox Values when added to templateMediaWiki:添加到模板时的信息框值
【发布时间】:2011-07-15 06:59:21
【问题描述】:

我已经阅读了 mediawiki 网站上有关创建模板的大量信息。我还实现了自己的模板。我唯一的问题是,我有一个模板,上面有一个信息框。每当我向信息框添加新项目时,我希望它反映在所有绑定了模板的页面上,无论我是否在使用模板的页面中违反了它。我需要它有一个默认值。因此,基本上,当我向信息框添加内容时,使用此模板的每个页面都会自动在信息框中将其视为“默认”,直到它们插入自己的值。这可能吗,或者这是否是 mediawiki 上的模板做不到?

我的主要问题是:如何包含一个 mediawiki 模板并让它显示所有内容,包括未定义的变量?这很有用,例如,如果新数据已添加到模板中,但尚未“填充”,这将表明需要插入数据。

更新 2011 年 10 月 14 日 @ 下午 3:30 CST:
这是实际的模板(称为 Template:EmployeeInfo):

{{Infobox
  |name         = {{{name}}}
  |title        = {{{title}}}
}}

以及我包含它的方式(页面称为“Employee Drew”):

{{EmployeeInfo
  |name         = Drew
  |title        = My Title
}}

现在...如果我要在模板中添加一些东西,例如,现在模板看起来像这样:

{{Infobox
  |name         = {{{name}}}
  |title        = {{{title}}}
  |education    = {{{education}}}
}}

如何让包含 Template:EmployeeInfo 的每个页面都包含“教育”部分,即使页面“Employee Drew”(和其他页面)只定义了 name 和 title 变量?

【问题讨论】:

    标签: templates mediawiki


    【解决方案1】:

    我认为您的 Template:Infobox 正在测试变量是否为空并且不显示该字段?最简单的方法是在 Template:EmployeeInfo: 中为 education 变量指定一个默认值:

    {{Infobox
      |name         = {{{name}}}
      |title        = {{{title}}}
      |education    = {{{education|default value}}}
    }}
    

    【讨论】:

    • 不知道无需安装扩展程序就可以做到这一点。凉爽的!我投票给你
    • 我最终发现,如果你不包含变量,它就不会出现在任何地方,这最终是我想要的,但是,我从你的帖子中学到了一些东西,所以我我会选择这个答案。
    【解决方案2】:

    您可以使用ParserFunctions extension 来测试 {{{education}}} 变量是否为空,如果是,则在信息框中填写任何内容。

    {{Infobox
      |name         = {{{name}}}
      |title        = {{{title}}}
      |education    = {{#if: {{{education}}} | {{{education}}} | N/A}}
    }}
    

    【讨论】:

      【解决方案3】:

      这是旧的,但有人可能会发现它很有用。对于未定义的参数,您可以在模板中定义默认值。

      例如:{{{name|no name}}}

      这种情况下,如果参数“name”没有定义,模板会输出“no name”。

      https://www.mediawiki.org/wiki/Help:Templates#Default_values

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-04
        相关资源
        最近更新 更多