Plantilla:Bucle for implementa un bucle foreach.

Esta plantilla invoca a otra plantilla especificada, una vez por cada uno de los ítems de una lista de valores. Un parámetro con nombre se pasa con el valor de una lista de las actuales iteraciones con un posible prefijo o sufijo añadido. Adicionalmente al parámetro variable, se pueden especificar parámetros fijos para ser pasados en cada iteración. El primer parámetro sin nombre es enviado entre llamadas a una plantilla especificada por el usuario.


Uso editar

{{Bucle for|<!-- separador, se conservan los espacios en blanco -->|
    call    = plantilla a ser llamada
  | pc1n    = nombre del 1er parámetro estático para ser pasado a la plantilla llamada
  | pc1v    = valor del 1er parámetro estático para ser pasado a la plantilla llamada
  | pc2n    = del 2do parámetro estático para ser pasado a la plantilla llamada
  | pc2v    = valor del 2do parámetro estático para ser pasado a la plantilla llamada
  | pc3n    = nombre del 3er parámetro estático para ser pasado a la plantilla llamada
  | pc3v    = valor del 1er parámetro estático para ser pasado a la plantilla llamada
<!-- Se pueden insertar tantos parámetros fijos para ser pasados a la plantilla llamada como sean necesarios -->
  | pv      = nombre del parámetro utilizado para ser pasado a la plantilla invocada a la cual se
                asigna los valores de la variable con el prefijo y sufijo añadidos.
  | prefix  = prefijo estático añadido a cada uno de los valores de la variable
  | postfix = sufijo estático añadido a cada uno de los valores de la variable
  | lista de los valores de la variable con el separador "|", los espacios en blanco se eliminan
     (los valores de parámetros vacíos funcionan en la forma usual, no son ignorados como los indefinidos)
}}

Se utiliza como separador el primer parámetro sin nombre, permitiendo comenzar y/o terminar con saltos de línea y espacios. El separador sale "entre" las llamadas a la plantilla invocada en |call=. No sale después de la última llamada a la plantilla. El valor del separador va antes que la lista de valores. Si algún valor en la lista contiene un signo igual, utilice {{=}}. Si no hace uso de {{=}}, la lista tiene que utilizar parámetros con nombre, al menos a partir de ese punto. Si usted hace uso de parámetros con nombre, note que el primer valor es el parámetro 2 (p. ej. |2=El1erValorDeSuLista), porque el parámetro 1 es el correspondiente al separador. Si el separador contiene un signo igual, también debería utilizarse {{=}}. Alternativamente, el separador puede ser prefijado con "1=", pero en ese caso, no puede contener saltos de línea ni espacios al principio ni al final. Además, si usted hace uso de parámetros con nombre, no debe saltarse ningún número, porque el bucle finalizará luego del primer parámetro numerado ausente. (Nótese que los parámetros pueden estar en blanco, pero no ausentes; los parámetros en blanco se leen en la forma usual.)

Ejemplos editar

Código Resultado
{{bucle for| |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=Enlazado}}
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
comienzo->{{bucle for|{{=}} |01|02|03|04|05|06|07|08|09|10
|11{{=}}{{=}}{{=}}|12|13|14|15|16|17|18|19|call=Enlazado}}<-final
comienzo->01= 02= 03= 04= 05= 06= 07= 08= 09= 10= 11==== 12= 13= 14= 15= 16= 17= 18= 19<-final
{|class="wikitable sortable"
|-
!Test
|-
| {{bucle for|
{{!}}-
{{!}} |a|b|c|d|e|call=Enlazado}}
|}
Test
a
b
c
d
e
{{bucle for|-|a|3|b|c|g|call=Color|pc1n=1|pc1v=Verde|pv=2}}
a-3-b-c-g
1{{Bucle for|, 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=Color <!-- plantilla {{color|1=red|2=valores}} -->
  |pc1n=1     <!-- nombre del primer parámetro fijo -->
  |pc1v=red   <!-- valor del primer parámetro fijo -->
  |pv=2       <!-- nombre del parámetro de las variables -->
}}
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

Código heredado editar

Esa plantilla está derivada de la tercera versión de la plantilla equivalente en la wikipedia en inglés. Actualmente utiliza código Lua ubicado en el Módulo:ForLoop. Fue portado a Lua desde las funciones Párser.

Las antiguas versiones se encontraban limitadas a una lista de 150 valores de variables y cuatro parámetros fijos. Actualmente no existen límites. Además en la primera versión, el parámetro "sep" no permitía los espacios en blanco como separadores. Esto fue corregido en la segunda versión, y se mantuvo en la actual.