Chapitre 4. Variables
Smarty possède différents types de variables. Le type de ces variables dépend
du symbole qui les préfixe, ou des symboles qui les entourent.
Les variables de Smarty peuvent être soit affichées directement, soit utilisées
comme arguments pour les
fonctions
et modificateurs, à l'intérieur d'expressions
conditionnelles, etc.
Pour afficher une variable, il suffit de l'entourer par des
délimiteurs de
telle sorte qu'elle soit la seule chose qu'ils contiennent. Exemple :
{$Nom}
{$Contacts[enreg].Telephone}
<body bgcolor="{#bgcolor#}"> |
Variables assignées depuis PHP
Pour utiliser une variables assignées depuis PHP, il
faut la préfixer par le symbole dollar $.
Les variables asignées depuis un template grâce à la fonction
{assign} sont
manipulées de la même façon.
Exemple 4-1. Variables assignées Script PHP
<?php
$smarty = new Smarty;
$smarty->assign('firstname', 'Doug'); $smarty->assign('lastname', 'Evans'); $smarty->assign('meetingPlace', 'New York');
$smarty->display('index.tpl');
?>
|
où index.tpl est :
Bonjour {$firstname} {$lastname}, heureux de voir que tu es arrivé ici.
<br />
{* ceci ne fonctionnera pas car $vars est sensible à la casse *}
Cette semaine, le meeting est à {$meetingplace}.
{* ceci fonctionnera *}
Cette semaine, le meeting est à {$meetingPlace}. |
Celà va afficher:
Bienvenue Doug, heureux de voir que tu es arrivé ici.
<br />
Cette semaine, le meeting est à .
Cette semaine, le meeting est à New York. |
|
Tableaux associatifs
Vous pouvez également utiliser des variables sous forme de tableaux
associatifs assignées depuis PHP en en spécifiant la clef,
après le symbole '.' (point).
Exemple 4-2. Accéder aux variables de tableaux associatifs
<?php
$smarty->assign('Contacts', array('fax' => '555-222-9876', 'email' => 'zaphod@slartibartfast.example.com', 'phone' => array('home' => '555-444-3333', 'cell' => '555-111-1234') ) ); $smarty->display('index.tpl'); ?>
|
où index.tpl est :
{$Contacts.fax}<br />
{$Contacts.email}<br />
{* vous pouvez afficher des tableaux de tableaux *}
{$Contacts.phone.home}<br />
{$Contacts.phone.cell}<br /> |
Ce qui donne en sortie :
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
Tableaux indexés
Vous pouvez utiliser des tableaux indexés de la même façon
que vous le faites en PHP.
Exemple 4-3. Accès aux tableaux grâce à l'index
<?php $smarty->assign('Contacts', array( '555-222-9876', 'zaphod@slartibartfast.example.com', array('555-444-3333', '555-111-1234') )); $smarty->display('index.tpl'); ?>
|
Où index.tpl est :
{$Contacts[0]}<br />
{$Contacts[1]}<br />
{* Vous pouvez également afficher des tableaux *}
{$Contacts[2][0]}<br />
{$Contacts[2][1]}<br /> |
ce qui donne en sortie :
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
Objets
Les attributs des objets
assignés depuis PHP peuvent être utilisées en
en spécifiant le nom après le symbole '->'.
Exemple 4-4. accéder aux attributs des objets nom: {$person->name}<br />
email: {$person->email}<br /> |
Ce qui donne en sortie :
nom: Zaphod Beeblebrox<br />
email: zaphod@slartibartfast.example.com<br /> |
|