besoin d'aide sur une boucle

Bonsoir

Dans mon carrousel, j'ai une bête boucle qui m'affiche dans l'ordre les photos des couvertures de mes bouquins.

<BOUCLE_catalogue(ARTICLES){id_rubrique=1}{par date_redac}{inverse}>
            <li id="mycarousel-item-#COMPTEUR_BOUCLE><a href="#URL_ARTICLE"> blabla.........</li>
</BOUCLE_catalogue>

Dans ma page sommaire, j'affiche donc les bouquins par ordre décroissant de date de parution, du début à la fin. Le paramètre "firstVisible", qui m'indique à partir d'où commencer à afficher est initialisé à "1".

Maintenant, j'ai une page article et j'ai le même carroussel. Mais je voudrais positionner le paramètre "firstVisible" à n, n étant le numéro d'ordre de l'article sur lequel je pointe, dans la boucle d'en haut.

Une idée pour faire cela proprement ?

JMB

Le numéro d'ordre est donc #COMPTEUR_BOUCLE ?
Il faut donc pouvoir le récupérer dans la page article, ceci se faisant en le faisant passer en tant que variable dans l'url et ensuite dans ta page article tu récupères sa valeur avec #ENV{la_variable}.
Si passer une variable en GET dans l'url ne te dérange pas la voie simple serait :
<BOUCLE_catalogue(ARTICLES){id_rubrique=1}{par date_redac}{inverse}>
  <li id="mycarousel-item-#COMPTEUR_BOUCLE><a href="[(#URL_ARTICLE|parametre_url{'nom_de_variable',#COMPTEUR_BOUCLE})]"> blabla.........
  </li>
</BOUCLE_catalogue>

Dans ta page article tu récupères la valeur de la variable avec #ENV{nom_de_variable} qui va servir pour paramétrer ton "FirstVisible"

jmb a écrit :

Bonsoir

Dans mon carrousel, j'ai une bête boucle qui m'affiche dans l'ordre les photos des couvertures de mes bouquins.

<BOUCLE_catalogue(ARTICLES){id_rubrique=1}{par date_redac}{inverse}>
           <li id="mycarousel-item-#COMPTEUR_BOUCLE><a href="#URL_ARTICLE"> blabla.........</li>
</BOUCLE_catalogue>

Dans ma page sommaire, j'affiche donc les bouquins par ordre décroissant de date de parution, du début à la fin. Le paramètre "firstVisible", qui m'indique à partir d'où commencer à afficher est initialisé à "1".

Maintenant, j'ai une page article et j'ai le même carroussel. Mais je voudrais positionner le paramètre "firstVisible" à n, n étant le numéro d'ordre de l'article sur lequel je pointe, dans la boucle d'en haut.

Une idée pour faire cela proprement ?

JMB

Le numéro d'ordre est donc #COMPTEUR_BOUCLE ?
Il faut donc pouvoir le récupérer dans la page article, ceci se faisant
en le faisant passer en tant que variable dans l'url et ensuite dans ta
page article tu récupères sa valeur avec #ENV{la_variable}.

Ca ne va pas le faire car je peux arriver sur la page article de l'importe où et pas spécialement du carroussel. Il faudrait donc que, en affichant la page article, je retrouve son numéro d'ordre dans la boucle.
En fait, il faudrait que, sur la page article, je fasse "jouer la boucle" en incrémentant le compteur et que je puisse en sortir quand je tombe sur mon article. Ca va pas être facile avec une boucle, ça :frowning:

Prenons le problème autrement alors, dans ta boucle précédente tu incrémentes ton id de <li> avec #COMPTEUR_BOUCLE.
Pourquoi ne pas l'incrémenter avec #ID_ARTICLE ?
Comme ça dans tes pages articles tu récupères simplement #ID_ARTICLE de l'article en cours pour paramétrer ton "FirstVisible".

jmb a écrit :

Le numéro d'ordre est donc #COMPTEUR_BOUCLE ?
Il faut donc pouvoir le récupérer dans la page article, ceci se faisant
en le faisant passer en tant que variable dans l'url et ensuite dans ta
page article tu récupères sa valeur avec #ENV{la_variable}.

Ca ne va pas le faire car je peux arriver sur la page article de l'importe où et pas spécialement du carroussel. Il faudrait donc que, en affichant la page article, je retrouve son numéro d'ordre dans la boucle.
En fait, il faudrait que, sur la page article, je fasse "jouer la boucle" en incrémentant le compteur et que je puisse en sortir quand je tombe sur mon article. Ca va pas être facile avec une boucle, ça :frowning:

Prenons le problème autrement alors, dans ta boucle précédente tu
incrémentes ton id de <li> avec #COMPTEUR_BOUCLE.
Pourquoi ne pas l'incrémenter avec #ID_ARTICLE ?
Comme ça dans tes pages articles tu récupères simplement #ID_ARTICLE de
l'article en cours pour paramétrer ton "FirstVisible".

Le problème est qu'il faut que les numéros se suivent. Et #ID_ARTICLE ne suit pas l'ordre des bouquins et il y a des trous car il y a d'autres articles que les lires au catalogue.
Donc #COMPTEUR_BOUCLE m'a bien aidé pour faire ma boucle et incrémenter de 1 à n la liste. Maintenant, il faut que, à partir d'un article au hasard, je retrouve son numéro d'ordre dans la boucle.

Bon, une nuit de sommeil va m'éclaircir le ciboulot mais je ne pense pas que je pourrais le faire sans un peu de php.

Merci d'avoir essayé.

JMB

Le 12 août 08 à 22:41, jmb a écrit :

Le numéro d'ordre est donc #COMPTEUR_BOUCLE ?
Il faut donc pouvoir le récupérer dans la page article, ceci se faisant
en le faisant passer en tant que variable dans l'url et ensuite dans ta
page article tu récupères sa valeur avec #ENV{la_variable}.

Ca ne va pas le faire car je peux arriver sur la page article de l'importe où et pas spécialement du carroussel. Il faudrait donc que, en affichant la page article, je retrouve son numéro d'ordre dans la boucle.
En fait, il faudrait que, sur la page article, je fasse "jouer la boucle" en incrémentant le compteur et que je puisse en sortir quand je tombe sur mon article. Ca va pas être facile avec une boucle, ça :frowning:

Ça pourrait donner quelque chose comme ça :
<BOUCLE_tesou(ARTICLES){id_rubrique}{par ....}>
[(#ID_ARTICLE|=={#_principal:ID_ARTICLE}|?{' ',''})#SET{numero_ordre,#COMPTEUR_BOUCLE}]
</BOUCLE_tesou>

pierre

Ça pourrait donner quelque chose comme ça :
<BOUCLE_tesou(ARTICLES){id_rubrique}{par ....}>
[(#ID_ARTICLE|=={#_principal:ID_ARTICLE}|?{'
',''})#SET{numero_ordre,#COMPTEUR_BOUCLE}]
</BOUCLE_tesou>

Bravo, tu n'étais pas loin :wink:

<BOUCLE_tesou(ARTICLES){id_rubrique=1}{par date_redac}{inverse}>
[(#ID_ARTICLE|=={#_principal:ID_ARTICLE}|?{#SET{numero_ordre,#COMPTEUR_BOUCLE},''})]
</BOUCLE_tesou>

Ca marche bien. Je continue donc.

Merci

JMB