Page : 1 |
JonathanMM |
Posté le 06/05/2008 22:05
- #
|

Membre
33 messages
17 ans |
Bonjour,
je crois que je suis tombé sur un bug inexplicable. Voici un extrait de code de tpl :
<foreach var="$pages" as="p">
<if cond="$p[num_page] == $p[page_actuelle]">
[{p[num_page]}]
<else />
<a href="sujets.php?cat={p[id_cat]}&page={p[num_page]}">{p[num_page]}</a>
</if>
</foreach>
Tout a l'air correct, sauf qu'au parsage, le fichier parsé est :
<?php if(isset($pages)){ foreach($pages as $p) { ?>
<?php if($p['num_page'] == $p['page_actuelle']) { ?>
[<?php echo $p[num_page ']; ?>]
<?php }else{ ?>
<a href="sujets.php?cat=<?php echo $p['id_cat ']; ?>&page=<?php echo $p['num_page ']; ?>"><?php echo $p['num_page ']; ?></a>
<?php } ?>
<?php }} ?>
3ème ligne, manque d'un '.
Que faire ? Est-ce un bug ?
|
gaga26 |
Posté le 06/05/2008 23:17
- #
|


741 messages
18 ans |
Salut,
Le problème vient des crochets qui entoure cette variable :
[{p[num_page]}]
Tous ce qui est entre crochet est considéré comme une clé d'un tableau (dans le cadre d'un variable array donc).
Déclare des variables pour remplacer les crochets, regarde un peu sur le forum, j'ai déjà décrit l'astuce plusieurs fois. Edité par gaga26 le 06/05/2008 23:18
|
MaxZelda |
Posté le 01/07/2008 17:52
- #
|
Membre
10 messages
19 ans |
Un peu dans la même veine que ce bug. Voici le mien:
{mois[{langue}][0]} est traduit comme suit <?php echo $mois['{langue; ?>']['0']}
au lieu de <?php echo $mois['fr'][0]; ?>
Je comprends bien le principe que tout ce qui est considéré comme un clé, mais ça voudrait dire que le parseur s'arrête aussitôt qu'il tombe sur ce [ et continue après celui-ci ] . Intéressant ! Néanmoins, en t'écrivant ce message, il m'est venu une solution a l'esprit.
|
gaga26 |
Posté le 01/07/2008 19:14
- #
|


741 messages
18 ans |
Essai
{mois[{langue}][0]}
Peut-être que ça va marcher.
|
MaxZelda |
Posté le 01/07/2008 23:10
- #
|
Membre
10 messages
19 ans |
Eeeh
Mon problème : {mois[{langue}][0]}
Ta solution : {mois[{langue}][0]}
Tu vois pas comme un léger problème avec ça... C'est IDENTIQUE
|
gaga26 |
Posté le 02/07/2008 13:35
- #
|


741 messages
18 ans |
Désolé, j'étais un peu fatigué hier, ce n'est pas ce que je voulais dire... Je voulais dire :
{mois[$langue][0]}
|
MaxZelda |
Posté le 02/07/2008 15:39
- #
|
Membre
10 messages
19 ans |
Merci mais non, en fait... dans le moteur il faudrait laisser la possibilité aux usagers de pouvoir choisir si la clé est une variable ou un nom.
Car la comme le parseur rajoute automatiquement des guillemets, ça devient impossible.
|
gaga26 |
Posté le 02/07/2008 22:42
- #
|


741 messages
18 ans |
Alors passe la bonne variable directement depuis le PHP, inutile de surcharger les templates.
|
MaxZelda |
Posté le 04/07/2008 03:43
- #
|
Membre
10 messages
19 ans |
Ca fonctionne pas. J'ai remplacé ça: {mois[{langue}][0]}
Par <?php echo $mois[$langue][0]; ?>
Et cela ne compile pas.
|
gaga26 |
Posté le 04/07/2008 11:09
- #
|


741 messages
18 ans |
Je ne parlais pas de ça, je parlais de mettre le tableau dans le PHP et de passé la variable aux templates. Dans le template il n'y aurait que ça :
{texte}
|
MaxZelda |
Posté le 05/07/2008 14:20
- #
|
Membre
10 messages
19 ans |
Citation : MaxZelda Néanmoins, en t'écrivant ce message, il m'est venu une solution a l'esprit.
C'est exactement ce que j'ai fais.
|
Page : 1 |