Template:Ifempty
From Wikipedia, the free encyclopedia
This is the {{ifempty}} template.
This template is used inside other templates. It takes up to four parameters and returns the first one that has any content. That is, the first one that is defined (not null) and not empty. Typical usage is like this:
{{ifempty| {{{logo|}}} | {{{image|}}} | default.svg }}
[edit] Background
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 is to do like this:
{{#if:{{{logo|}}}| {{{logo}}} | default.svg }}
But this becomes complex when you want to check several parameters:
{{#if:{{{logo|}}}| {{{logo}}} | {{#if:{{{image|}}} | {{{image}}} | default.svg }}}}
Then it is easier to use this template instead:
{{ifempty| {{{logo|}}} | {{{image|}}} | default.svg }}
Note! The parameters to {{ifempty}} must use the pipe "|", like this: {{{logo|}}}
. Or else {{ifempty}} will be fed and return the string "{{{logo}}}
" if logo was not defined.
[edit] Examples
Code | Result | Comment |
---|---|---|
{{ifempty}} |
Returns an empty string. | |
{{ifempty|one}} |
one | Returns the first parameter that is defined and not empty. |
{{ifempty|one|two}} |
one | |
{{ifempty|one|two|three|four}} |
one | |
{{ifempty||two}} |
two | The first parameter was empty or undefined, so uses the next parameter. |
{{ifempty||two|three|four}} |
two | |
{{ifempty||two||four}} |
two | |
{{ifempty||||four}} |
four | |
{{ifempty|||||five}} |
Only handles up to four parameters, so returns an empty string. | |
{{ifempty|}} |
The only parameter is empty or undefined, so returns an empty string. | |
{{ifempty||||}} |
Returns an empty string. | |
{{ifempty|{{{1|}}}|{{{2|}}}|three}} |
three | |
{{ifempty|{{{1}}}|{{{2}}}|three}} |
{{{1}}} | Fails. Note the lack of "|" in the first two parameters. |
{{ifempty|{{{logo|}}}|two}} |
two | |
{{ifempty|{{{logo}}}|two}} |
{{{logo}}} | Fails. Note the lack of "|" in the first parameter. |
[edit] See also
- {{px}} – Helps handling image width parameters in templates.
- Help:Parameter default – You probably don't need to know this anymore if you use this template.