Categories > TinyButStrong general (FR) >

Condition

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Figo
Date: 2010-04-05
Time: 20:57

Condition

Bonjour,
J'essaye de m'adapter à TBS, qui me semble puissant mais qui nécessite un effort d'adaptation de ma part comparé au précédent système de template que j'utilisais.

Par exemple, je n'arrive pas à faire fonctionner le code suivant, qui devrait m'afficher un tableau avec une ligne comptant le nombre d'enregistrements s'il y en a, ou un message spécial s'il n'y en a pas.

  <table>
    <tr><td>[block1.Nom;block=tr]</td>
    <tr [block1;block=tr;nodata]><td>Y'a rien</td></tr>
   <tr><td>[block1.#;magnet=tr;ope=nif:0] enregistrements</td><tr>
    </tr>
  </table>

Bref, je n'arrive pas à faire fonctionner ça correctement avec un MergeBlock d'un base mySql.

Une autre solution qui me semblerait sympa, c'est de n'afficher le tableau QUE si la requête renvoie des données, et un <div> pour le "nodata".

Des idées ?

Merci d'avance...
By: Figo
Date: 2010-04-05
Time: 21:12

Re: Condition

Tant que j'y suis, j'ai un problème avec le formatage...
Je voudrais affiche un code postal correctement formaté

Si block1.CodePostal = 6000 :
[block1.CodePostal]  ==> 6000
[block1.CodePostal;frm='00 000.'] ==> 6 000
[block1.CodePostal;frm='00000.'] ==> 60000 !!!

Quelque chose cloche non ?
By: Skrol29
Date: 2010-04-06
Time: 00:41

Re: Condition

Salut Figo,

Pour ton problème de formatage de code postal:
C'est corrigé dans la version 3.5.2 qui est en beta RC, téléchargeable ici:
  http://www.tinybutstrong.com/download/download.php?file=tbs_beta.zip&sid=2
En fait, c'est un format non supporté qui devient supporté dans cette version.

Pour ton problème de ligne conditionnelle dans le tableau:
À part tes erreur de balises HTML sur les <tr>, ton bout de code est correcte. Ton idée est bonne. Mais en fait là tu as mis le doigt sur un nouveau bug. "ope=nif" ne fonctionne pas si la valeur fusionnée n'est pas une chaine. Je viens de corriger ce bug (merci à toi), il disparait avec la version 3.5.2-beta dispo en téléchargement sur le lien ci-dessus.

La bêta devient version finale dès que j'ai fini la doc.

Encore merci à toi,
By: Figo
Date: 2010-04-06
Time: 11:10

Re: Condition

Pour le formatage : im me semblait que c'était pourtant dans la doc :
[chp;frm='000000.']    002456

Désolé pour le sale code de mon exemple, je l'ai fait à la volée et j'aurais du mieux me relire...

Merci pour la réponse et la rapidité des corrections !

La suite au prochain épisode ;)
By: Skrol29
Date: 2010-04-06
Time: 11:31

Re: Condition

Salut,

C'est dans la doc mais elle précise que ce format est dispo à partir de la version 3.5.2.
By: Figo
Date: 2010-04-10
Time: 09:49

Re: Condition

Pour le format, c'est mieux, mais je crois que le format qui m'intéresse n'est toujours pas supporté (je n'ose penser que se serait un bug !), c'est à dire frm='00 000.'
Cela sera-t-il implémenté un de ces 4 ?

Sinon, je n'arrive pas à comprendre quelque chose...
Pennons l'exemple basique suivant :
<table>
<th><td>Test</td></th>
<tr><td>[block1.champ1;block=tr]</td></tr>
</table>

Si je rajoute à la suite le code suivant à la suite du tableau :
<div>[block1;block=div;nodata] Y'a rien</div>

Qu'il y ai des données ou pas, la balise </table> disparaît.

Quelque chose m'échapperait-il ?
By: Figo
Date: 2010-04-10
Time: 10:25

Re: Condition

Oups, le type de block '_' semble ne plus fonctionner en 3.5.2 (block=_)
By: Figo
Date: 2010-04-10
Time: 10:31

Re: Condition

Correctif : ça fonctionne, mais ça déclenche ce méchant warning :
Notice : Undefined property: clsTbsLocator::$RightLevel dans ...\TinyButStrong\tbs_class_php5 3.5.2.php ligne 3325
By: Skrol29
Date: 2010-04-12
Time: 11:09

Re: Condition

Argl..... un patch va sortir aujourd'hui pour ça
merci de ton retour
By: Skrol29
Date: 2010-04-12
Time: 11:42

Re: Condition

La nouvelle version 3.5.3 est dispo en téléchargement.
Dommage que ce bug un peu flagrant n'est pas été vu lors des tests de non régression.

Merci Figo !
By: Figo
Date: 2010-04-12
Time: 13:55

Re: Condition

De rien...

Quid de ma question précédente (post du 10/04, 9:49) concernant le </table> et le format 00 000. ?
By: Skrol29
Date: 2010-04-12
Time: 14:37

Re: Condition

Pour le format "00 000." il faut que je me penche dessus pour voir si c'est complexe à implémenter ou non. Si c'est pas complexe, ça pourra être intégré. Si c'est complexe, il vaut mieux se tourner vers une fonction de formatage personnalisée avec "onformat";

Pour ton problème de <table>, la réponse est là :
  http://www.tinybutstrong.com/support.php#golden-rule-4
By: Figo
Date: 2010-04-12
Time: 20:08

Re: Condition

Format : ok.

Table : arf, en effet. J'ai encore du mal à bien saisir le concept et la façon de faire proprement.
Je n'ai donc aucun moyen simple de n'afficher à partir d'une seule requête (un seul Merge) ?

Edit : je n'ai trouvé que la solution suivante :

<table>[block1.#;ope=minv;bmagnet=table;when [block1.#]+-0]
  <tr><th>...</th></tr>
  <tr><td>[block1.$;block=tr;bmagnet=table]</td><td>...</td></tr>
  <tr><td>[block1.#] enregistrements</td></tr>
</table>
<div>[block1.#;ope=minv;bmagnet=div; when [block1.#]=0]Aucun résultat</div>

Ca me semble un poil lourd pour quelque chose d'aussi basique...
By: Skrol29
Date: 2010-04-13
Time: 09:48

Re: Condition

Salut,

Tu peux faire un poil plus simple (voir ci-dessous) mais c'est vrai qu'il manque quelque chose pour que cela soit simplifié. Je vais me pencher là dessus pour une éventuelle nouvelle fonctionnalité.

<table>[block1.#;ope=minv;bmagnet=table;when [block1.#]+-0]
  <tr><th>...</th></tr>
  <tr><td>[block1.$;block=tr;bmagnet=table]</td><td>...</td></tr>
  <tr><td>[block1.#] enregistrements</td></tr>
</table>
<div>[onshow;block=div;when [block1.#]=0]Aucun résultat</div>
By: Figo
Date: 2010-04-13
Time: 10:38

Re: Condition

Merci pour la réponse...

J'ai un autre problème maintenant... 

La fonction GetBlockSource garde la définition du bloc, bien que le paramètre "BalisesDef" soit à "true".
Si j'ai bien compris la doc, ça devrait supprimer la définition du bloc.

Exemple :
  [block1;block=begin]
  <h1>Tiitre</h1>
  [block1;block=end]

L4exécution PHP de :
echo $TBS->GetBlockSource('block1',false, true,'');
retourne :
  [block1;block=begin]
  <h1>Tiitre</h1>
  [block1;block=end]
au lieu de
  <h1>Tiitre</h1>

Désolé de ne pas grouper tous les problèmes que je rencontre, je les signale au fur et à mesure de ma migration...
(peut-être vaudrait-il mieux faire les corrections en béta, pour éviter la sortie de trop de versions dites "stables", je te laisse bien sûr seul juge !)
By: Skrol29
Date: 2010-04-13
Time: 15:59

Re: Condition

Ben c'est normal, tu as mis l'argument DefTags à true. Alors il te retourne le source avec les balises de définition.

Mais si tu as de nouveaux problème il vaut mieux ouvrir un nouveau sujet.
By: Figo
Date: 2010-04-13
Time: 16:17

Re: Condition

Oups, en effet.
Cependant, moi j'ai exactement le même comportement avec DefTags à true ou false...

Nouveau problème, nouveau sujet : ok, j'y penserai !
By: Skrol29
Date: 2010-04-13
Time: 16:35

Re: Condition

Je vais regarder ce problème d'argument.

Effectivement les sortes de versions stable sont généralement regroupées. Il y a des tests unitaires pour chaque bug et chaque nouvelle fonctionnalités, il y aussi des tests de non régression.
Mais ton bug sur le "block=_" était assez grave car c'est très utilisé. Il est passé inaperçu probablement parce qu'il est arrivé sur une version toute récente et que beaucoup de développeurs travaillent en désactivant les notifications mineurs de PHP.