Categories > TinyButStrong general (FR) >

encore un petit pb de conditionnel

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Juju
Date: 2005-02-10
Time: 16:16

encore un petit pb de conditionnel

Le cas ci-dessous ne fonctionne évidemment pas, alors qu'un exemple me semble t-il tout à fait similaire fonctionne dans une autre page :
<br /> blabla
[var._SESSION.LOGIN_ON;if [val]==[var._SESSION.LOGIN_INI_GTP];
then '';magnet=br;mtype=m*;noerr]
Les 2 var. sont différentes, et je voudrais que LOGIN_ON s'affiche, et ce n'est pas le cas, blabla ne s'affiche pas non plus.
et si je rajoute à l'intérieur des crochets  un
else [var._SESSION.LOGIN_ON]
ce dernier code n'est pas expansé,
je sèche.

By: Skrol29
Date: 2005-02-11
Time: 10:44

Re: encore un petit pb de conditionnel

Salut Juju,

Il faut ajouter un
else [val]
Lorsqu'un "if" sans "else" n'est pas vérifié, la valeur est forcée à '' (chaîne vide).
C'est pas top comme comportement mais si je le change maintenant, ça introduit des problèmes de comptaibilité.
Je vais rajouter un truc là dessus dans la FAQ.
By: Juju
Date: 2005-02-11
Time: 14:08

Re: encore un petit pb de conditionnel

Certes, mais j'avais essayé le else.
Ce que je voudrais dans le else, c'est du dynamique :
else [var._SESSION.LOGIN_ON]
est-ce possible ? actuellement, le else n'est pas parsé par TBS.
je crois comprendre que [val] ne peut être qu'une constante ?
Formulation de ce qui est désiré :
si v1==v2 on n'affiche rien, sinon on affiche v1 (et utilisation de magnet si  on affiche rien)
Cordialement
By: Skrol29
Date: 2005-02-11
Time: 15:25

Re: encore un petit pb de conditionnel

De façon générale, les champs [var.*] placés dans des paramètres ne sont pas parsés ; sauf pour (file), (script) et (if).
Le mot clé [val] est parsés dans les paramètres (file), (script), (if), (then) et (else).

Les champ [var.*] ne sont pas parsés dans (then) et (else) car c'est innutile. Je veux dire par là qu'on peut contourner le problème.
Dans ton cas, tu veux afficher LOGIN_ON si la condition est fausse, alors [val] suffit car le champ TBS est basé sur LOGIN_ON.
Mais ça marche aussi de façon générale : si tu veux afficher $x, mais que tu veux le supprimer avec un saut de ligne lorsque ($a=$b), alors la balise TBS est :
[var.x;if [var.a]=[var.b];then '';else [val];magnet...]
By: Juju
Date: 2005-03-04
Time: 09:33

Re: encore un petit pb de conditionnel

Mais oui, bien sûr,
je n'ai pas répondu tout de suite, mais ça a marché tout de suite.
Je n'avais pas réalisé que tu me donnais la solution dans le post précédent, parce que la solution s'écrivait comme la syntaxe de base, je n'avais pas fait le rapprochement.