assign_array(string name,
array vars
)
assign_array() va déclarer un block avec comme nom,
name et comme variables, le tableau
vars.
Il est préférable d'utiliser
assign_array() à
assign() quand on ne sait pas le nombre de lignes qui vont être retournés, lors d'une requête SQL ou d'une boucle par exemple.
Exemple 1 :
<?php
...
for($i=
1;
$i<=
10; ++
$i) //lors d'une boucle
{
$tpl->
assign_array('boucle_for',
array('numéro' =>
$i));
}
...
?>
Exemple 2 :
<?php
...
$req =
mysql_query('SELECT * FROM membres');
//lors d'une requête SQL
while($data =
mysql_fetch_array($req))
{
$tpl->
assign_array('list_membres',
array('pseudo' =>
$data['pseudo'],
'prenom' =>
$data['prenom'],
'nom' =>
$data['nom']));
}
...
?>
Exemple 3 :
Lorsqu'il y a des sous-blocks, le block parent et le sous-block sont séparés par un points lors de l'assignation et dans le fichier template
(depuis la 2ème version).
<?php
...
for($i=
1;
$i<=
10; ++
$i) //lors d'une boucle
{
$tpl->
assign_array('block',
array('titre' =>
$i));
for($j=
1;
$j<=
10; ++
$j) //lors d'une sous boucle
{
$tpl->
assign_array('block.sous_block',
array('numero' =>
$i.
$j));
}
}
...
?> <foreach var="$block" as="x">
<h3>Titre {$titre}</h3>
<ul>
<foreach var="$x[sous_block]" as="y">
<li>{$numero}</li>
</foreach>
<ul>
</foreach>
Voir aussi la fonction
assign() et les balises
foreach et
{var}.