Categories > TinyButStrong general (FR) >

problem de headergrp, footergrp et block classic, lié un même condition

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: nicky45
Date: 2005-10-28
Time: 01:59

problem de headergrp, footergrp et block classic, lié un même condition


Je pense que mon problém ce comprendra facilement par un exemple qui ne fonctionne pas, mais qui explique  bien l'idée, enfin je crois.
<!---debut champs-->
[page;block=begin;when [page.type]=fichier]
<div>
    <span class="libel">[page.name]</span>
    <a href="[page.target;noerr]" target="[page.target;noerr]"'>go</a>
    <input class="input1" name="[page.name]" value="[page.value;noerr]">";
</div>
[page;block=end]

[page;block=begin;when [page.type]=multi_fichier]
    [page;block=begin;headergrp=name]
    <div>
        <span class="libel">[page.name]</span>
        <a href="[page.target;noerr]" target="[page.target;noerr]"'>go</a>
       
        <select class="input1" name="[page.name]" size=3>";
    [page;block=end]
   
    [page;block=begin]   
            <option value="[page.value;noerr]">[page.value;noerr]</option>
    [page;block=end]
           
    [page;block=begin;footergrp=name]
        </select>
    </div>
    [page;block=end]
[page;block=end]

<!--fin champs-->

le résultat obtenu est presque bon mais ca marche pas, je trouve pas de solution.

TinyButStrong Error (Block definition): [page] can not be defined because tag <end> or </end> is not found.

Merci d'avance.
By: nicky45
Date: 2005-10-28
Time: 02:02

Re: problem de headergrp, footergrp et block classic, lié un même condition

en même temps, l'erreure obtenu est logique, je mi attendais, mais je ne vois pas comment obtenir la même idée avec un codage qui fonctionne, j'en ai essayer d'autre qui sont encore pire, mais qui ne font pas d'erreures tbs
By: Skrol29
Date: 2005-10-28
Time: 02:13

Re: problem de headergrp, footergrp et block classic, lié un même condition

salut,

Oui l'erreur est logique car tu ne dois pas encapsuler les sections d'un bloc (sauf "parentgrp", mais dans ce cas ça ne marchera pas non plus).

En fait je ne comprend pas bien ce que tu cherches à faire.
Si tu shouaites passer d'un mode sans en-ête à un mode avec entête d'un enregistrement sur l'autre et bien ce n'est pas possible.
Si le mode est le même pour tous les enreg, alors il te suffit de déterminer ce mode avant de faire le MergeBlock. Et d'effacer le block correspondant au mode non utilisé.
By: nicky45
Date: 2005-10-29
Time: 12:20

Re: problem de headergrp, footergrp et block classic, lié un même condition

c'est embéttant tout ca, lol, j'essai de faire une séparation entre le code php et la mise en page, template, donc je ne veux pas changer mon code php,

j'ai sans doute une autre solution mais je ne sais pas comment definir deux  conditions sur un block,exemple :
[page;block=begin;when [page.type]=multi_fichier And [page.next_name]=[page.name]]

forcement ce code est faut, mais j'aimerai pouboir inclure deux condition, et je ne sais pas comment faire
By: Skrol29
Date: 2005-10-31
Time: 01:13

Re: problem de headergrp, footergrp et block classic, lié un même condition

Salut Nicky45,

Pour faire deux conditions AND c'est facile. Il suffit de faire une concaténation, c'est bien expliqué dans la FAQ ici
  http://www.tinybutstrong.com/support.php#faq_or
By: nicky45
Date: 2005-10-31
Time: 22:53

Re: problem de headergrp, footergrp et block classic, lié un même condition

ouai mais c'est limité, on peut faire que des condtions remplissant la même contrainte, et pour le OR, ca devient un peu plus compliqué, enfin, je vais me débrouiller, je trouverai bien une solution, ca fait une journée que je plance sur le problèm, c'est relativement hardu sur ce coup là,

merci...
By: nicky45
Date: 2005-10-31
Time: 22:58

Re: problem de headergrp, footergrp et block classic, lié un même condition

ca aussi ca marche pas, oulala, il faut que je trouve un moyen,
<!---debut champs-->
[page;block=begin;when [page.type]=fichier;several]
<div>
    <span class="libel">[page.name]</span>
    <a href="[page.target;noerr]" target="[page.target;noerr]"'>go</a>
    <input class="input1" name="[page.name]" value="[page.value;noerr]">
</div>
[page;block=end]


    [page;block=begin;headergrp=name;when [page.type]=multi_fichier]
    <div>
        <span class="libel">[page.name]</span>
        <a href="[page.target;noerr]" target="[page.target;noerr]"'>go</a>
       
        <select class="input1" id="[page.name]" name="[page.name]" size=3>
    [page;block=end]
   
    [page;block=begin;when [page.type]=multi_fichier]   
            <option value="[page.value;noerr]">[page.value;noerr]</option>
    [page;block=end]
           
    [page;block=begin;footergrp=name;when [page.type]=multi_fichier]
        </select>
        <a href='javascript:option_add([page.name],document.getElementById('input_[page.name]').value'>go</a>
        <br>
        <a href="javascript:option_up('[page.name]')">+</a>
        <a href="javascript:option_down('[page.name]')">-</a>
        <br>
        <a href="javascript:option_del('[page.name]')">del</a>
        <input type="text" id="input_[page.name]">
    </div>
    [page;block=end]


<!--fin champs-->

By: nicky45
Date: 2005-10-31
Time: 23:00

Re: problem de headergrp, footergrp et block classic, lié un même condition

en faite ce que j'essai defaire c'est de créer dynamiquement un formulaire, donc pour les champs simple il n'y a pas de problèm("<input>"), mais pour les champs   avec option, "<select>", ca pause problèm, vue qu'il peut y avoir plusieur "<option>" possible
By: nicky45
Date: 2005-11-06
Time: 18:34

Re: problem de headergrp, footergrp et block classic, lié un même condition

bonjours, c'est pour savoir si ce que je veux faire est possible, ou le sera un  jours
By: Skrol29
Date: 2005-11-07
Time: 10:34

Re: problem de headergrp, footergrp et block classic, lié un même condition

Pour faire une condition d'affichage avec un OR ou plus complexe, une bonne solution est d'utiliser une fonction évènementielle de TBS qui sera écrite en PHP. La paramètre "ondata" est typiquement fait pour cela. Il te permet d'ajouter un champ dans ton jeu d'enregistrement qui sera calculé à la volée sous PHP en fonction des autres champs.

Pour ton autre problème de création d'un formulaire qui présente différentes sections ayant soit un valeur simple dans un text-box, soit des valeurs multiples dans zone de liste, la solution qui marche bien sous TBS serait l'utilisation de bloc et sous-block.
Mais ton appli a une particularité qui rend la chose plus difficile : le champ "type" et le champ "valeur" sont dans la même source de données (requête). Du coup il faudrait que TBS puisse changer de section "page mono-fichier" ou "page multi-fichier" non seulement pour l'enregistrement en cours mais pour les suivants. Et cela pose un problème d'organisation des données. Par exemple : quand deux "pages" multi-fichiers se suivent comment les distingues-tu ?

Pour la solution de Bloc/Sous-bloc de TBS, tu dois utiliser deux blocs : un principal et un sous-bloc.
Le bloc principal est fusionné en premier et il affiche toutes les enregistrements "pages" quels que soient leur type, mais pas les données "valeur". Par contre ce bloc principal affiche telle ou telle section en fonction du "type" de "page".
Le sous-bloc est fusionné en second, et c'est lui qui affiche les valeurs, quelles soient mono ou multi. Comme c'est un sous-bloc, il sera exécuté autant de fois qu'il y a d'enregistrement principal, donc il adapetra son look à son emplacement.
Si tu ne connais pas encore les sous-blocs, il y un exemple en ligne sur la page des Exemples.