Des loops et des sections

O-BLI-GA-TOIRE!

Les boucles, en programmation, sont primordiales. Elles servent à tous les niveaux du développement, générer des codes, sélectionner les enregistrements d'une base de donnée et les afficher, bref, la base de la base.

Une simple boucle foreach

Code:
{assign var=u6 value=[U6,Baby,5,1]}
<ul>
{foreach from=$u6 item=data}
  <li>{$data}</li>
{/foreach}
</ul>

affichera

  • U6

  • Baby

  • 5

  • 1

On isole chaque élément du tableau u6 dans une variable nommée data. A chaque fois que l'on repasse dans le tableau (ici, 4 fois) la variable change de valeur. La première boucle lui attribue U6, la deuxième Baby,...

Une boucle dans une boucle

Code:


{assign var=u6 value=[U6,Baby,5,1]}
{assign var=u8 value=[U8,Prepoussins,7,2]}
{assign var=u10 value=[U10,Poussins,9,3]}
{assign var=u14 value=[U14,Pupilles,13,4]}
{assign var=u12 value=[U12,Benjamins,11,5]}
{assign var="equipes" value=[$u6,$u8,$u10,$u12,$u14]}

<ul>
{foreach name=boucle1 item=equipe from=$equipes}
  {$equipe[1]}
    {foreach name=boucle2 key=key item=item from=$equipe }
      <li>{$item}</li>
   {/foreach}
{/foreach}
</ul>

Baby

  • U6

  • Baby

  • 5

  • 1


Prepoussins

  • U8

  • Prepoussins

  • 7

  • 2


Poussins

  • U10

  • Poussins

  • 9

  • 3


Benjamins

  • U12

  • Benjamins

  • 11

  • 5


Pupilles

  • U14

  • Pupilles

  • 13

  • 4


Une boucle avec section

Section est différent de foreach et peut être utilisé sans spécialement parcourir un tableau ou une liste. Il peut générer des éléments itératifs comme un grand. Mais il est versatile et et parfait pour les tableaux indexés.

Code:
{section name=UnNom start=1 loop=9}
{$smarty.section.UnNom.index}
{/section}

affichera 1 2 3 4 5 6 7 8

Code:
{section name=UnNom start=1 loop=9 step=2}
{$smarty.section.UnNom.index}
{/section}


affichera 1 3 5 7

Code:
{section name=UnNom loop=21 max=6 step=-2}
{$smarty.section.UnNom.index}
{/section}

affichera 19 17 15 13 11 9

 

Code:
{assign var=u6 value=[U6,Baby,5,1]}{assign var=u8 value=[U8,Prepoussins,7,2]}{assign var=u10 value=[U10,Poussins,9,3]}{assign var=u14 value=[U14,Pupilles,13,4]}{assign var=u12 value=[U12,Benjamins,11,5]}{assign var="equipes" value=[$u6,$u8,$u10,$u12,$u14]}

{section name=equipe loop=$equipes}

<strong>#{$smarty.section.equipe.index}: {$equipes[equipe][1]}</strong>
Code: {$equipes[equipe][0]}
Nom: {$equipes[equipe][1]}
Âge des joueurs: {$equipes[equipe][2]} ans
Ordre: {$equipes[equipe][3]}
{/section}
Il y a {$smarty.section.equipe.total} équipe{if $smarty.section.equipe.total gt 1}s{/if} au total dans le tableau.

affichera

#0: Baby
Code: U6
Nom: Baby
Âge des joueurs: 5 ans
Ordre: 1

#1: Prepoussins
Code: U8
Nom: Prepoussins
Âge des joueurs: 7 ans
Ordre: 2

#2: Poussins
Code: U10
Nom: Poussins
Âge des joueurs: 9 ans
Ordre: 3

#3: Benjamins
Code: U12
Nom: Benjamins
Âge des joueurs: 11 ans
Ordre: 5

#4: Pupilles
Code: U14
Nom: Pupilles
Âge des joueurs: 13 ans
Ordre: 4

Il y a 5 équipes au total dans le tableau.

Page précédente : Variables et tableaux.