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. Variables assignées Script PHP assign('firstname', 'Doug'); $smarty->assign('lastname', 'Evans'); $smarty->assign('meetingPlace', 'New York'); $smarty->display('index.tpl'); ?> ]]> index.tpl est : {* ceci ne fonctionnera pas car $vars est sensible à la casse *} Cette semaine, le meeting est à {$meetingplace}. {* ceci fonctionnera *} Cette semaine, le meeting est à {$meetingPlace}. ]]> Affichera : 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). Accéder aux variables de tableaux associatifs 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'); ?> ]]> index.tpl est : {$Contacts.email}
{* vous pouvez afficher des tableaux de tableaux *} {$Contacts.phone.home}
{$Contacts.phone.cell}
]]>
Affichera : zaphod@slartibartfast.example.com
555-444-3333
555-111-1234
]]>
Tableaux indexés Vous pouvez utiliser des tableaux indexés de la même façon que vous le faites en PHP. Accès aux tableaux grâce à l'index assign('Contacts', array( '555-222-9876', 'zaphod@slartibartfast.example.com', array('555-444-3333', '555-111-1234') )); $smarty->display('index.tpl'); ?> ]]> index.tpl est : {$Contacts[1]}
{* Vous pouvez également afficher des tableaux *} {$Contacts[2][0]}
{$Contacts[2][1]}
]]>
Affichera : zaphod@slartibartfast.example.com
555-444-3333
555-111-1234
]]>
Objets Les attributs des objets assignés depuis PHP peuvent être utilisées en en spécifiant le nom après le symbole ->. Accéder aux attributs des objets name}
email: {$person->email}
]]>
Affichera : email: zaphod@slartibartfast.example.com
]]>