Categories > TinyButStrong general (FR) >

Réutiliser un mergeBlock

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: samy
Date: 2007-08-06
Time: 16:51

Réutiliser un mergeBlock

Bonjour tout le monde et un special a sckroll29,

voila j'ai un petit probleme, sur mon application j'ai donc un "select" avec une liste d'option generée par la methode mergblock, son nom est "qualites".

Mais voila je voudrai le reutiliser plusieurs fois proprement.

Merci a tous.
By: Skrol29
Date: 2007-08-06
Time: 17:48

Re: Réutiliser un mergeBlock

Si tu veux récupérer les enreg du MergeBlock() pour les utiliser autrement, il existe un paramètre spécial qui fait que MergeBlock() te retourne le jeu de données complet.

Mais si tu veux carrément récupérer la liste fusionnée, c'est à dire le source HTML généré ; alors tu peux jongler avec la méthode GetBlockSource().
Exemple:
// On récupère la partie du modèle qui correspond à la liste
$liste_seule = $TBS->GetBlockSource('qualites');
// On change de modèle temporairement
$sauve = $TBS->Source;
$TBS->Source = $liste_seule;
// On fusionne la liste
$TBS->MergeBlock('qualites','mysql','SELECT ....');
// On rétablie le modèle d'origine
$liste_seule = $TBS->Source;
$TBS->Source = $sauve;
// On fusionne la liste quand même
$TBS->MergeBlock('qualites','text',$liste_seule);

Voilà,
Sinon on peut aussi faire avec un plug-in TBS. C'est plus simple mais il faut connaitre les plug-ins.
By: samy
Date: 2007-08-07
Time: 09:09

Re: Réutiliser un mergeBlock

Mais le probleme subsiste car on ne peut utiliser un bloc de même nom une seule fois et dans mon cas je veux l'utiliser une dizaine de fois.

la seule solution qui me semble possible c'est des generer les mergblock de cette maniere
for ($i.....)
{
   $TBS->MergeBlock('qualites$i',......);
}

By: samy
Date: 2007-08-07
Time: 09:11

Re: Réutiliser un mergeBlock

Désolé pour le double poste il ya aussi la solution avec le mergeblock type text qui pourrait faire l'affaire :D autant pour moi
By: samy
Date: 2007-08-07
Time: 09:13

Re: Réutiliser un mergeBlock

non autant pour moi j'ai pas trouver de solutions correcte pour le moment
By: samy
Date: 2007-08-07
Time: 09:17

Re: Réutiliser un mergeBlock

c'est bon ce que j'utilise la technique a l'ancienne lol
je genere le html via une fonction php et je la reutilise tout simplement.
By: Skrol29
Date: 2007-08-07
Time: 10:09

Re: Réutiliser un mergeBlock

Ben peux-tu détailler ton problème un peu plus ?
Comment veux-tu utiliser ton bloc plusieurs fois ? Que cherches-tu à faire ?
By: samy
Date: 2007-08-07
Time: 10:30

Re: Réutiliser un mergeBlock

Je vais prendre un exemple pour illustrer et que tout le monde puisse en beneficier.

Je veux qu'une même liste de pays (balise "select") apparaisse plusieurs fois dans ma page.
Donc mon merge block est :
$TBS->MergeBlock('pays','mysql','SELECT * FROM PAYS');

Mais le problème est que je peux utiliser mon bloc qu'une seule fois dans la page.
Alors que je voudrais faire apparaitre ma liste de pays autant de fois que je veux.
La solution que j'ai trouver est donc de generer le HTML dans une variable que j'appel avec [var.mavar]
Voila j'espere avoir etait clair :)§[
By: Skrol29
Date: 2007-08-07
Time: 10:57

Re: Réutiliser un mergeBlock

Que veux tu dire par "autant de fois que je veux" ?
Ca veux dire n'importe où dans la page, en plaçant d'autres balises manuellement, ou bien est ce que tu veux répéter cette liste dans un autre bloc ?







By: samy
Date: 2007-08-07
Time: 11:00

Re: Réutiliser un mergeBlock

N'importe où dans la page sans pour autant recreer un mergeblock
By: Skrol29
Date: 2007-08-07
Time: 13:20

Re: Réutiliser un mergeBlock

Avec la première méthode que je t'ai donnée, tu peux fusionner la liste autant de fois que tu veux.
[var.liste_seule;htmlconv=no]
By: samy
Date: 2007-08-07
Time: 13:42

Re: Réutiliser un mergeBlock

ouai c'est ce que j'ai fais

Merci skrol 29