• Home
  • Random
  • Log in
  • Settings
  • About Roovet Articles
  • Disclaimers
Roovet Articles

Template:If empty

  • Language
  • Watch
  • View source
▣Desktop viewSwitch to full site
Template documentation[view] [edit] [history] [purge]
Redirects
  • {{Ifempty}}
  • {{First nonempty}}
  • {{Use first nonemptyTemplate:Use first nonempty}}
  • {{Firstdata}}
This template uses Lua:
  • Module:If empty
WarningThis template is used on approximately 4,060,000 pages, or roughly 10603% of all pages.
To avoid major disruption and server load, any changes should be tested in the template's /sandbox or /testcases subpages, or in your own user subpage. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them.

This template is used inside other templates. It takes any number of parameters and returns the first found to be defined and non-empty. If none is found, nothing is returned. Typical usage is like this:

{{If empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}
("Return {{{logo|}}} if it has a value; else {{{image|}}} if it has a value; else {{{picture|}}} if it has a value; else return "default.svg".")

This returns the first of the parameters logo, image and picture that is defined and non-empty, otherwise "default.svg".

Contents

  • 1 Rationale
    • 1.1 Piping
  • 2 Examples
  • 3 See also

Rationale

The MediaWiki parameter default function doesn't return the default value for empty parameters. That is, {{{logo|default.svg}}} does not return "default.svg" if the template was called like this: {{template|logo=}}.

The usual workaround for a single parameter is:

{{#if:{{{logo|}}} |{{{logo}}} |default.svg}}
("If {{{logo}}} has a value, return it, else return "default.svg".")

But this becomes complex when several parameters are to be checked:

{{#if:{{{logo|}}} |{{{logo}}} |{{#if:{{{image|}}} |{{{image}}} |{{#if:{{{picture|}}} |{{{picture}}} |default.svg}} }} }}
("If {{{logo}}} has a value, return it; else if {{{image}}} has a value, return that; else if {{{picture}}} has a value, return that; else return "default.svg".")

In these cases, Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). produces the simpler syntax (as above):

{{if empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}

Piping

Parameters used with Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). must be piped – i.e. include the vertical bar (pipe) symbol (" | ") as a trailing character – so that empty or undefined parameters aren't treated as text and returned incorrectly. Hence, for example, {{{logo|}}}, {{{image|}}} and {{{picture|}}} rather than Template:Param, Template:Param and Template:Param in the above examples.

Examples

Code Result
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). Returns an empty string.
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). one Returns the first parameter that is defined and not empty.
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). one
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). one
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). two The first parameter is empty/undefined, so is passed over.
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). two
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). two
{{if empty||||||||||ten}} ten Unlike in previous versions, this template is no longer limited by 9 parameters.
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). The only parameter is empty or undefined, so returns an empty string.
Lua error in Module:Template_link_general at line 136: attempt to concatenate local 'titlePart' (a nil value). Returns an empty string.
{{if empty|{{{1|}}}|{{{2|}}}|three}} three
{{if empty|{{{1}}}|{{{2}}}|three}} {{{1}}} No pipe-characters following the names of the first two parameters ("1" and "2"), so the first of these returned as text ("{{{1}}}").
{{if empty|{{{logo|}}}|two}} two
{{if empty|{{{logo}}}|two}} {{{logo}}} No pipe-character following the parameter name "logo", so the text "{{{logo}}}" returned.
{{if empty|p=q}} The template identifies the parameters it receives as parameters 1 to 9, not using names such as "p", etc.

See also

  • {{if all}}
  • {{if either}}
  • Help:Parameter default
The above documentation is transcluded from Template:If empty/doc. (edit | history)
Editors can experiment in this template's sandbox (create | mirror) and testcases (create) pages.
Add categories to the /doc subpage. Subpages of this template.
Retrieved from "https://articles.roovet.com/index.php?title=Template:If_empty&oldid=2124"
Last edited on 14 September 2022, at 06:34

Languages

      This page is not available in other languages.

      Roovet Articles
      • Roovet Articles
      • Powered by MediaWiki
      • This page was last edited on 14 September 2022, at 06:34.
      • Content is available under Roovet Articles unless otherwise noted.
      • Privacy policy
      • About Roovet Articles
      • Disclaimers
      • Desktop