Dois iteradores simples: listas e enumerações

Entre os numerosos e potentes iteradores integrados ao SPIP, há dois que se distinguem pela sua simplicidade: as listas e as enumerações.

  • Apparu en : SPIP 3.0

Iterador de lista

O iterador de lista permite percorrer os elementos de uma lista. Os elementos podem ser palavras, números ou pequenos trechos de texto. Ele é chamado na forma de um critério lista do loop DATA, ao qual se passa a lista de elementos que devem ser percorridos:

Este loop apresenta uma lista dos primeiros números primos:

<ul>
   <BOUCLE_primos(DATA){liste 2, 3, 5, 7, 11, 13}>
       <li>#VALEUR</li>
   </BOUCLE_primos>
</ul>

É possível usar todos os crtérios comuns a todos os loops.

Especificar o separador:

<BOUCLE_mes(DATA){liste janeiro, fevereiro, março, abril}{"; "}>
      #VALEUR ([(#VALEUR|couper{3})])
</BOUCLE_mes>

Exibirá: janeiro (jan); fevereiro (fev); março (mar); abril (abr)

Inverter a ordem de percurso do loop:

<BOUCLE_mes(DATA){liste 1, 10, 100, 1000}{", "}{inverse #ENV{inverso}}>
      #VALEUR
</BOUCLE_mes>

Produzirá: "1, 10, 100, 100, 1000" ou "1000, 100, 10, 1" de acordo com o valor de ’inverso’ no ambiente.

Fazer loop em um subconjunto da lista:

<BOUCLE_mes(DATA){liste janeiro, fevereiro, março, abril, maio, junho, julho}{", "}{3,2}>
      #VALEUR
</BOUCLE_mes>

saltará 3 meses e exibirá 2, ou seja: "abril, maio".

Os valores dos marcadores podem ser calculados:

<BOUCLE_cores(DATA){liste #GET{corpreferida}, #ENV{corescolhida}}{", "}>
      #VALEUR
</BOUCLE_cores>

Iterador enumeração

O iterador de enumeração é um loop muito simples.

O seu uso mais geral é na forma

<BOUCLE_enumere(DATA){enum val1, val2}>
      #VALEUR
</BOUCLE_enumere>

ou

<BOUCLE_enumere(DATA){enum val1, val2, passo}>
      #VALEUR
</BOUCLE_enumere>

val1 e val2 são 2 valores numéricos, ou 2 caratéres. O SPIP determinará qual dos dois valores é o mais pequeno, este loop irá enumerar os valores entre val1 e val2. Na primeira forma, o passo não é especificado: o seu valor é 1 por padrão.

Inteiros, passo de 1:

<BOUCLE_enum(DATA){enum 10,15}{", "}>#VALEUR</BOUCLE_enum>

Faz um loop nos valores, começando em 10 e parando em 15, devolvendo portanto "10, 11, 12, 13, 14, 15".

Decimais, passo de 1:

<BOUCLE_enum(DATA){enum 15.5,10.3}{", "}>#VALEUR</BOUCLE_enum>

Faz loop nos valore, começando em 15 e parando antes de 10, devolvendo portanto "15.5, 14.5, 13.5, 12.5, 11.5, 10.5".

Inteiros, passo de 2:

<BOUCLE_enum(DATA){enum 10, 15, 2}{", "}>#VALEUR</BOUCLE_enum>

Faz loop nos valores de 10 a 15, com um passo de 2, devolvendo portanto "10, 12, 14".

Letras:

<BOUCLE_enum(DATA){enum g,m}{", "}>#VALEUR</BOUCLE_enum>

Faz um loop nos caratéres de "g" até "m", devolvendo portanto "g, h, i, j, k, l, m".

Autor Ricardo Porto Publié le :

Traductions : English, français, Nederlands, Português