Template:If empty

From Valve Developer Community
Jump to navigation Jump to search
Warning icon.png
This template is used on many pages and changes may be widely noticed.
Test changes in the template's /sandbox or /testcases subpages, or in your own user subpage.
Consider discussing changes on the talk page before implementing them.
English (en)Deutsch (de)Esperanto (eo)Español (es)Français (fr)Suomi (fi)Hrvatski (hr)Magyar (hu)Italiano (it)日本語 (ja)한국어 (ko)Nederlands (nl)Polski (pl)Português (pt)Português do Brasil (pt-br)Русский (ru)Slovenčina (sk)Svenska (sv)Türkçe (tr)Українська (uk)Tiếng Việt (vi)中文 (zh)中文(臺灣) (zh-tw)
Icon-translate.png Available doc translations
View
Page history

This is the {{ifempty}} template.

This template is used inside other templates. It takes up to nine parameters (parameters 1-9), and returns the first one that is defined and non-empty, otherwise nothing. Typical usage is like this:

{{ifempty| {{{logo|}}} | {{{image|}}} | default.svg }}

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

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.

Examples

CodeResultComment
{{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|||||||||nine}} nine
{{ifempty||||||||||ten}} Only handles up to nine 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}}} Returns the text "{{{1}}}", because it is a non-empty string. Note the lack of "|" in the first two parameters.
{{ifempty|{{{logo|}}}|two}} two
{{ifempty|{{{logo}}}|two}} {{{logo}}} Returns the text "{{{logo}}}", because it is a non-empty string. Note the lack of "|" in the first parameter.
{{ifempty|2=x}} x Whether parameter 1 is undefined or empty does not matter.
{{ifempty|p=q}} The template checks its parameters 1-9, not other ones.

See also

  • {{If all}}
  • {{If either}}
  • {{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.