Template:Switch

From ISFDB
Jump to navigation Jump to search

{{switch}} shows one specific branch out of multiple possible branches, dependent on a given value. It requires MediaWiki version 1.6 or better.

Usage

{{switch
 |VALUE-TO-BE-TESTED
 | case: foo=hello
 | case: bar=world
 | default=Neither ''foo'' nor ''bar''
}}

where VALUE-TO-BE-TESTED is a parameter or a variable

If no default result is defined, the result if no value matches will be blank.

The variables to switch have some constraints because the value must be able to be used as a parameter name
Characters known not to work are: =|
There mustn't be any space between the pipe character and the first character.
There is no fall-through (if you look at the code, you know why)
The similar but less ingenious parser function #switch: is more flexible.

Example

Code Result
{{switch
  |{{CURRENTDOW}}
  |case: 1=Mon
  |case: 2=Tue
  |case: 3=Wed
  |case: 4=Thu
  |case: 5=Fri
  |case: 6=Sat
  |case: 0=Sun
  |default=No date
}}
Sat

How "switch" works

It works by the principle that a parameter declaration can be defined by the value of another parameter.

When we access the parameter, we don't have the name hard coded, but we rely on the value of another parameter (in this case the parameter 1).

In its simplest form it is just like {{booleq/eq2}} ({{{{{{2|}}}|}}}), but to make it more user friendly and remove the risk trying to access parameter 1, the string case: was added to the parameters to check for.

Also there is an additional parameter default that can be used if you want to have a default value (no other case value matches).

The resulting code is:

{{{case: {{{1|}}}|{{{default|}}}}}}

See also

Discussion

Add issues below as you see fit, sign with ~~~~

Sandbox

Yesterday was User:Ed Poor/yesterday. Today is User:Ed Poor/today. Tomorrow will be User:Ed Poor/tomorrow.


Today is Saturday.

Today is the 4th day of the month.

Today is whitespace-sensitivity day.

Source

The template is copied from Wikipedia:Template:Switch, and the documentation is copied, with modifications, from Wikipedia:Template:Switch/doc. Both are released under he GFDL.