Variables et tableaux.
Quelque chose à déclarer monsieur? Juste une variable ou deux, merci.
Code:
{assign var=myVar value="Qui êtes-vous?"}
affichera rien. On a juste déclaré l'existence d'une variable MyVar
et on lui a attribué une valeur Who cares
? (en programmation, cela s'appelle instancier
une variable)
Code:
{assign var=myVar value="Qui êtes-vous?"}
{$myvar}
affichera rien. Parce que les variables sont sensibles à la casse (minuscule/majuscule). Donc $myvar
n'est pas $myVar.
Code:
{assign var=myVar value="Qui êtes-vous?"}
{$myVar}
affichera Qui êtes-vous? Parce que c'est comme ça que ça marche!
Plus court mais moins lisible
Code:
{assign "myVar2" "Je suis ton père!"}
affichera: Je suis ton père!
Les maths, y'a que ça de vrai:
Code:
{assign var=CetteAnnee value={$smarty.now|date_format:"%Y"}}
{assign var=TonAge value="18"}
{assign var=AnneDeNaissance value=$CetteAnnee - $TonAge}
{$AnneeDeNaissance}
affichera 2001
Les tableaux
Une variable peut stocker plusieurs valeurs, comme dans un tableau. Non seulement, c'est modulable mais en plus, on peut parcourir toutes ces valeurs.
Le tableau ainsi créé numérote les valeurs. Cet index
commence à 0.
Code:
{*assign var=u6 value=[code équipe,Nom équipe,age,ordre]*}
{assign var=u6 value=[U6,Baby,5,1]}
{assign var=u8 value=[U8,Prépoussins,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]}
{$u6[0]} et {$u8[3]}
affichera Baby et 2
Les tableaux à plusieurs dimensions (associatifs)
En fait, il faut voir ces tableaux, qui peuvent paraître compliqués, comme une extension des tableaux simples. On va simplement remplacer la valeur (value
) par un autre tableau, et donc créer ainsi une deuxième dimension
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>
<li>{$equipe[0]} - {$equipe[2][3]}</li>
<li>Code: {$equipes[1][0]} - Nom de l'équipe: {$equipes[1][1]}</li>
</ul>
affichera
- Array - 3
- Code: U8 - Nom de l'équipe: Prepoussins