Preamble

change

This template is based on m:Template:for (backlinks edit). The template name was changed because there already is Template:for (backlinks edit) with a different purpose.

See also Template:loop (backlinks edit).

m:Template:for (backlinks edit)

Uses Template:for/aux (backlinks edit).

Description

change

The template calls a decided template up to 150 times, where one parameter takes each of a list of values; in addition to the variable parameter, for up to 5 parameters a fixed value can be decided.

{{for loop
  |call=template to call
  |what to separate the entries with (unnamed parameter; required, but can be the empty string)
  |pc1n=name of first parameter with constant value 
  |pc1v=first constant value
  |pc2n=name of second parameter with constant value
  |pc2v=second constant value
  |pc3n=name of third parameter with constant value
  |pc3v=third constant value
  |pc4n=name of fourth parameter with constant value
  |pc4v=fourth constant value
  |pv=name of variable parameter
  |prefix=constant first part of the value of pv
  |postfix=constant last part of the value of pv
  |list of 1 to 150 parameter values (without prefixes and postfixes), with separator "|"
     (empty parameter values work in the regular way, they are ''not'' ignored like undefined ones)

}}

The separator is not named, allowing it to start and/or end with newlines and spaces. This parameter should be put before the list. If a parameter value in the list contains an equals sign the list should use named parameters, at least from that point, where it should be noted that e.g. the third item in the list is parameter 4, because parameter 1 is the separator. If the separator contains an equals sign it is similarly prefixed with "1=", but in that case it cannot contain newlines and spaces at the start and end.

Changes from old preprocessor

change

To make a former call to "for loop" work with the new preprocessor:

  • replace pc1=X=Y with pc1n=X | pc1v=Y, etc.
  • use an unnamed parameter for the separator; if empty, just enter an extra "|"

Examples

change
Code Result
1{{for loop|, 1|00|01|02|03|04|05|06|07|08|09
|10|11|12|13|14|15|16|17|18|19
|20|21|22|23|24|25|26|27|28|29
|30|31|32|33|34|35|36|37|38|39
|40|41|42|43|44|45|46|47|48|49
|50|51|52|53|54|55|56|57|58|59
|60|61|62|63|64|65|66|67|68|69
|70|71|72|73|74|75|76|77|78|79
|80|81|82|83|84|85|86|87|88|89
|90|91|92|93|94|95|96|97|98|99
  |call=1x
}}
100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199

Note that the last part of the separator is used as a prefix; the first prefix needs to be put separately.


{{for loop|-|a|3||c|g|call=3x}} using Template:3x (backlinks edit) gives

aaa-333-ccc-ggg

{{for loop|

|a|3||c|g|call=3x}} gives

aaa

333

ccc

ggg

{|class="wikitable sortable"
|-
!Test
|-
| {{for loop|
{{!}}-
{{!}} |a|b|c|d|e|call=3x}}
|}

gives:

Test
aaa
bbb
ccc
ddd
eee
{{for loop| |01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19
|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39
|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59
|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79
|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99
|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119
|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139
|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|call=1x}}

gives:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154

Substitution

change

For successive levels of substitution use one or more or the following (the first, the first two, the first three, the first four, or all)

If at least the first four are applied, and the separator contains {{!}}, one can replace it with {{subst:!}} to substitute that too.

For full substitution Special:ExpandTemplates can also be used.

Old version

change

Note that formerly this template had a named separator parameter sep.

{{for/aux5}} may not have been adapted to the new preprocessor yet.