GAGA Template

XLetter

assign_block()

Créé par gaga26 le 18/01/2007 18:02, dernière modification le 17/08/2007 14:54 par gaga26

assign_block(string name, array vars)

assign_block() va déclarer un block avec comme nom, name et comme variables, le tableau vars.

Il est préférable d'utiliser assign_block() à 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.

Note :
Depuis la version 2.0, il est possible d'utiliser les blocks au deuxième niveau.
Depuis la version 3.1, il est possible d'utiliser les blocks au troisième niveau.
Depuis la version 3.2, il n'y a plus de limite de niveau.
Depuis la version 3.3, il n'y a plus de problème avec les variables de même base.

Exemple 1 :

<?php
...
for($i=1; $i<=10; ++$i) //lors d'une boucle
{
        $tpl->assign_block('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_block('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_block('block', array('titre' => $i));

    for($j=1; $j<=10; ++$j) //lors d'une sous boucle
    {
        $tpl->assign_block('block.sous_block', array('numero' => $i.$j));
    }

}
...
?>
<!-- BEGIN block -->
    <h3>Titre {$titre}</h3>
    <ul>
        <!-- BEGIN block.sous_block -->
            <li>{$numero}</li>
        <!-- END block.sous_block -->
    <ul>
<!-- END block -->


Voir aussi la fonction assign() et les balises BEGIN block, END block et {$var}.

Retour