Categories > TinyButStrong general (FR) >

Effacer une balise si un block est vide

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: oxman
Date: 2007-11-24
Time: 12:40

Effacer une balise si un block est vide

Bonjour,

J'essaye de trouver une méthode propre pour effacer une balise à l'extérieur de mon block si il est vide :

    <form method="post">
    <table cellspacing="0">
        <tr>
            <td>Nom</td>
            <td colspan="2"><input type="text" name="name" value="[player_load.name]"></td>
        </tr>
        <tr>
            <td>[caracts2.val;block=tr]</td>
            <td><input type="text" name="caract[[caracts2.val]]" value="[player_load.[caracts2.val]]"></td>
        </tr>
        <tr>
            <td colspan="3">
                <input type="hidden" name="id" value="[player_load.id;magnet=input]">
                <input type="submit" name="add" value="Ajouter">
                <input type="submit" name="edit" value="Modifier">[player_load;magnet=input/]
            </td>
        </tr>
    </table>
    </form>

La partie qui m'intéresse c'est :
                <input type="submit" name="edit" value="Modifier">[player_load;magnet=input/]

Ca fonctionne correctement, sauf que ça affiche "Array" lorsque le block player_load n'est pas vide. Et jej cherche une façon clean de faire ce test sans afficher la variable.
By: Skrol29
Date: 2007-11-24
Time: 14:51

Re: Effacer une balise si un block est vide

Salut,

Tu devrais utiliser le paramètre "mtype" avec "magnet" pour lui spécifier de ne prendre qu'une seule balise au lieu de 'une ouvrante et une fermante.

La syntaxe [player_load] ne désigne pas un champ, c'est pour ça qu'il te donne soit vide soit array. Essai plutôt un truc comme ça :
[player_load.#;magnet=input;mtype=m*;if [val]=0;then '';else ' ']
By: oxman
Date: 2007-11-24
Time: 15:14

Re: Effacer une balise si un block est vide

D'après mes tests et la documentation :
magnet=input/
équivaut à :
magnet=input;mtype=m*

Sinon, oui avec ta méthode je sais le faire, mais je ne trouve pas ça propre; et lourd en syntaxe pour un si petit truc, où je ne veux que vérifier si la variable est défini ou non pour afficher. Je trouve ça lourd de devoir bidouiller pour ne pas afficher la variable.

Si rien n'est possible dans ce sens, alors ça serait une option sympa à ajouter :
[player_load;magnet=input/;nodisplay]
By: Skrol29
Date: 2007-11-26
Time: 00:57

Re: Effacer une balise si un block est vide

Salut Oxman,

En effet, pour l'instant on est obligé de bidouiller pour ne pas afficher la variable. Ton idée de paramètre pour ne pas afficher la variable d'un magnet est très bonne. Je vais étudier une solution pour la mettre en place.