फलकम्:If empty
फलकम्:Cascade-protected template
This फलकम् is used in system messages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid large-scale disruption, any changes should first be tested in this फलकम्'s /sandbox or /testcases subpage, or in your own user space. The tested changes can then be added in one single edit to this फलकम्. Please discuss any changes on the talk page before implementing them. |
This template uses Lua: |
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. By writing {{if empty|a|b|c}}
instead of {{#if:a|a|{{#if:b|b|c}}}}
, expression a and b do not have to be repeated and evaluated twice. The template provides a fallback order, similar to a try catch based "It is easier to ask for forgiveness than permission" (EAFP) programming style.
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".
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, {{if empty}} produces the simpler syntax (as above):
{{if empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}
Piping
[सम्पादयतु]Parameters used with {{if empty}} 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 {{{logo}}}
, {{{image}}}
and {{{picture}}}
in the above examples.
Examples
[सम्पादयतु]स्क्रिप्ट त्रुटि: "aligned table" ऐसा कोई मॉड्यूल नहीं है।