Categories > TinyButStrong general (FR) >

Affichage conditionnel en fct de la position de lecture d'un block

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Georges
Date: 2008-01-28
Time: 17:24

Affichage conditionnel en fct de la position de lecture d'un block

Oui désolé ce titre n'est pas tres parlant, je ne sais pas comment expliquer ce que je cherche en un titre

Voila en gros ce que je voudrais faire :
Je fais un merge block sur par exemple cette element :

$mavar[0]['nom']='nom1';    
$mavar[1]['nom']='nom2';      
(la ca va que jusqu'a 1, mais tout depend des pages, ca peut tres bien aller jusqu'a plusieurs dizaines)

donc je mergeblock :
$TBS->MergeBlock ("exemple", $mavar);

je l'affiche de maniere incroyable :
<li> [exemple.nom; block=li] - > </li>

Donc ca me donne :
nom1 -> nom2 ->

Ma question est simple, comment reperer que j'affiche le dernier element (ici "nom2") pour ne pas qu'a la fin de ma chaine il m'affiche le " -> ". (je ne sais pas, qqchose du genre if exemple=lastid ?)

Ce qui me donen une autre question, y a t il possibilite de savoir si je suis sur le premier element ? (ici "nom1")

Voila, en attendant une reponse de votre part
codialement

Georges
By: Skrol29
Date: 2008-01-29
Time: 11:21

Re: Affichage conditionnel en fct de la position de lecture d'un block

Salut,

Pour savoir si tu es sur le premier élément tu as [exemple.#]=1.
Par contre pour le denier élément tu n'as pas de moyen de le connaitre pendant le MergeBlock(). Mais tu peux utiliser une section "splittergrp", c'est une section qui s'affiche entre chaque enregsitrement ou chaque groupe d'enregistrement. C'est pile poile ce que tu charche à faire avec ton "->".
By: Georges
Date: 2008-01-29
Time: 16:44

Re: Affichage conditionnel en fct de la position de lecture d'un block

Daccord, cela semble convenir, mais je suis désolé je ne comprend pas du tout comment ca marche.

J'ai beau regarder dans la doc je ne vois aucun exemple concret.
Quel serait dans ce cas la syntaxe ?

<li> [exemple.nom; block=li; splittergrp=nom] - > </li> ????
<li> [exemple.nom; block=li; splittergrp=nom; then "->"]</li> ????
(ca ne marche pas evidement^^)

Non la dsl j'ai beau tester je ne vois pas comment ca marche
By: Skrol29
Date: 2008-01-31
Time: 01:01

Re: Affichage conditionnel en fct de la position de lecture d'un block

Salut Georges,

A tout bien regarder, la solution des "splittergrp" n'est pas bonne. je n'avais pas fait attention à ce que ta section était encadrée par des <li>.
Désolé pour la perte de teps que cela aurait pu occasionner.

Le plus simple c'est d'exploiter ton tableau PHP $mavar en lui ajoutant carrément le texte "->" pour chaque item qui convient, ou une autre valeur qui permet d'afficher ou masquer cet item. Idée :
$mavar[count($mavar)]['aff'] = 0;
HTML:
[exemple.aff;noerr; when [val]=0;then ''; else '- >']


Une autre solution serait d'utiliser un bloc conditionnel qui retirerait ou laisserait la "->" à la fin de la fusion. Ca donnerait un truc comme ça:
<span> -> [onshow;when [var.total]=[exemple.#]]</span>


By: Georges
Date: 2008-02-04
Time: 15:17

Re: Affichage conditionnel en fct de la position de lecture d'un block

ok, au final je me suis servie du 1er truc que tu m'avais passé, celui ou je peut savoir si je suis sur la premiere entrée, ce qui donne :
<li>[onshow; if [exemple.#]=1;then ''; else '->'][exemple.nom; block=li]</li>

Voila, merci encore pour l'aide
By: Georges
Date: 2008-02-29
Time: 16:10

Re: Affichage conditionnel en fct de la position de lecture d'un block

Re, je me pose encore une question^^

Est il possible de faire une sorte de double if dans le html
Par exemple :

<li>[onshow; if [exemple.#]=1;then ''; else '->'][exemple.nom; block=li]</li>

Me dit si nous nous trouvons sur le premier element ou pas
Maintenant j'aimerais aussi savoir si ce premier element ce nomme accueil.

Il faut donc que je verifie si je suis sur le premier element, et ensuite que je verifie si il s'appel "Accueil"
Est-ce possible ?
By: Skrol29
Date: 2008-03-07
Time: 15:15

Re: Affichage conditionnel en fct de la position de lecture d'un block

Je ne comprends pas bien, mais en tout cas tu peux enchaner les if dans un même champ.

[var.x;if ...;then ...;if ... ;then ...;else ...]
By: Georges
Date: 2008-03-21
Time: 16:43

Re: Affichage conditionnel en fct de la position de lecture d'un block

daccord merci, je n'avais pas pensé à ca, c'est utile^^