Blocs

Il est facile de définir un bloc. On l'ouvre avec {block:NOM DU BLOC}, et on le ferme avec {end:block}. Le principal intérêt des blocs est de les répéter pour des listes.

{block:nomdubloc} contenu du bloc avec des {variables} ... {end:block}

Il existe plusieurs moyens de répéter des listes (observez la source de cet exemple les 3 sources y sont décrites). Côté modèle, la déclaration du bloc sera toujours la même. C'est côté PHP que les différentes méthodes entrent en jeu.

Une variable particulière

Cette variable s'appelle {tphpl_num}. Dans un bloc, elle sera remplacée par le numéro de l'occurence de ce bloc. Son nom est la valeur de la propriété $var_tphpl_num, que vous pouvez modifier si vous le souhaitez (attention, il s'agit d'un nom de variable de modèle valide, il ne doit contenir ni délimiteur { ou }, ni caractère particulier . et :).

Assignation directe

Côté PHP, on construit un tableau ayant une structure identique à celle du bloc, et on appelle la méthode set('nom du bloc', $tableau). Cette façon de répéter les blocs impose de traiter la source de données, de la transformer en tableau correct, mais ne nécessite qu'un seul appel de méthode.

Assignations relatives

Côté PHP, on assigne non pas mavariable, mais monbloc/mavariable. En indiquant le "chemin" vers la variable, Temphplate saura qu'il doit aller chercher "mavariable" dans la dernière occurence du bloc "monbloc". À chaque nouvelle assignation de cette variable, une nouvelle occurence du bloc sera créée.

Assignations groupées

Côté PHP, on assigne un groupes de variables à un bloc. Cela fonctionne de la même façon que les assignations relatives, mais permet d'avoir un code plus court si l'on a de nombreuses variables dans le bloc. Imaginons que dans le bloc bloc vous ayez 3 variables var1, var2, var3. Pour remplir une occurence de ce bloc vous pouvez assigner les 3 variables indépendamment ($tpl->set('bloc/var1', 'val1'); $tpl->set('bloc/var2', 'val2'); $tpl->set('bloc/var3', 'val3');), ou les assigner d'un seul tenant ($tpl->setBlock('bloc', array('var1'=>'val1', 'var2'=>'val2', 'var3'=>'val3'));). Ces deux méthodes sont strictement équivalentes, il ne s'agit que d'un raccourci.

Répétition libre

On peut également répéter un bloc sans lui assigner aucune variable. Il y a pour ça la méthode repeatBlock('nom du bloc', nombre de répétitions), qui répète le bloc 'nom du bloc' autant de fois que vous l'avez spécifié. Vous pouvez omettre le second paramètre, et il n'y aura alors qu'une répétition.

Même s'il n'y a aucune affectation explicite, il y a tout de même une affectation implicite de la variable {tphpl_num}. Si vous appelez $tpl->repeatBlock('bloc',3) avec le modèle [.{block:bloc}{tphpl_num}.{end:block}] vous obtiendrez [.1.2.3.].



Generation time: 10.443ms