Cool Coyote
Administrateur
Enregistré le 26/09/2001
Messages: 2629
Non connecté
|
Ajouté le : 06/03/2006 11:39
Message :
Moi je verrais plutot le premier exemple, qui m'a l'air beaucoup plus simple
Non mais c'est pas un choix, les deux fonctionnent obligatoirement.
Pour éclaircir un peu le deuxième exemple étend les possibilités du forum le but étant de pouvoir afficher ce que l'on veut comme on le veut. C'est pas encore finalisé mais globalement voilà comment ça marche:
déclaration du template:
<!-- NAME = test2; loadarray(tab) -->
dans cette déclaration on a rajouté la fonction loadarray() qui indique au moteur que ce bloc contiendra la valeur du tableau tab.
Au niveau du fonctionnement, le moteur rappellera ce bloc autant de fois qu'il faut pour afficher la totalité du tableau tab.
Dans son contenu on a ensuite des blocs comme cela:
<td><!-- ARRAY.tab.0 -->{!tab.key!} : {!tab.value!}<!-- ALT.ARRAY.tab --> <!-- END.ARRAY.tab --></td>
Alors le
Indique le début d'un bloc tableau (tout comme on a des blocs de template). Ca veut dire que dans ce bloc on va demander l'affichage d'une entrée d'un tableau (clé ou valeur). Cette valeur est la première donc on met 0.
Vient ensuite l'affichage des valeurs:
{!tab.key!} : {!tab.value!}
Ca ce sont des variables tableau, comme {%var%} est une variable. {!tab.key!} va afficher la clé, alors que {!tab.value!} affiche la valeur de l'entrée.
La balise ALT, c'est si la clé demandée n'existe pas, dans ce cas il faut quand même afficher quelque chose, au moins un espace vu qu'on est dans une cellule.
Les autres blocs valeur appellent les entrées 1 et 2 du tableau, donc dans ce bloc on va appeler 3 entrées du tableau.
Au niveau du fonctionnement global voilà comment ça marche:
Dans le code PHP on appelle ce bloc.
Le moteur voit la fonction de déclaré, il va donc commencer à remplacer les variables du bloc par les valeurs des clés 0, 1, 2 du tableau tab.
Or le tableau a 7 entrées, il va donc rappeler à nouveau le bloc, l'évaluer avec les entrées 4, 5, 6 du tableau et le coller en dessous du premier.
On n'est toujours pas arrivé au bout du tableau, donc on rapelle encore une fois le bloc et on y évalue l'entrée 7 du tableau. Le bloc demande également les entrées 8 et 9 qui n'existent pas, on les remplace donc par un espace.
On rajoute à nouveau ce bloc aux précédents et on obtient donc un bloc $tpl->box['test2'] qui contiendra ceci:
<tr>
<td>0 : test0</td>
<td>1 : test1</td>
<td>2 : test2</td>
</tr>
<tr>
<td>3 : test3</td>
<td>4 : test4</td>
<td>5 : test5</td>
</tr>
<tr>
<td>6 : test6</td>
<td> </td>
<td> </td>
</tr>
Lors de l'appel de index2 en fin de page il est simplement affiché.
Ca paraît pas simple au début, mais c'est une fonction essentielle. D'ailleurs ce n'est que la première car il va forcément y en avoir d'autres qui seront peut-être plus puissantes encore mais aussi un peu plus compliquées.
Mon problème est simple: faire en sorte de simplifier ça au maximum pour les développement de skins, voilà pourquoi je vous ai dis que si vous aviez une idée pour simplifier encore l'écriture n'hésitez pas à la soumettre.
Merci de respecter les règles d'ajout de messages !!
Avant de poser une question:
[Documentation] - [FAQ] - [Recherche]
Cool Coyote - Webmaster (me contacter)
|