#TOTAL_BOUCLE ?

Bonjour,

J'affiche via une boucle les 3 dernier articles d'une rubrique :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse} {age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
</BOUCLE_article_agenda>

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si la boucle a plus de 3 résultats.
Je suppose qu'on doit pouvoir le faire avec #TOTAL_BOUCLE.
Cependant je n'ai sait pas comment !!!!

Un peu d'aide svp...

Merci d'avance.

Le 22 févr. 08 à 13:20, Thomas Lamarche a écrit :

Bonjour,

J'affiche via une boucle les 3 dernier articles d'une rubrique :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse}
{age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|
mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
</BOUCLE_article_agenda>

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si
la boucle a plus de 3 résultats.
Je suppose qu'on doit pouvoir le faire avec #TOTAL_BOUCLE.

euh, non !

modifie celà :

  <BOUCLE_articles_titre(ARTICLES) {id_mot} {par hasard} {0,3}>
    <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>&bull; <BOUCLE_zarticles2(MOTS) {id_article} {id_groupe} {0,1}>#TITRE</BOUCLE_zarticles2>#TITRE</a>
  </BOUCLE_articles_titre>
  
  <BOUCLE_articles_titre2(ARTICLES) {id_mot} {par titre} {3,1}>
    <a href="#URL_MOT"><sub>&deg;</sub> (...)</a>
  </BOUCLE_articles_titre2>
  

Cependant je n'ai sait pas comment !!!!

Un peu d'aide svp...

Merci d'avance.
______________________

Thomas Lamarche wrote:

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si la boucle a plus de 3 résultats.

si tu demandes à ta boucle de remonter 3 résultats, elle ne pourra jamais t'informer sur l'existence d'un hypotétique 4ème...

tu devrais lui demander de te remonter 4 résultats :
<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse} {age<0} {0,4} {doublons}>

puis de tester la variable #COMPTEUR_BOUCLE et, si elle est égale à 4, ne faire afficher que le lien voulu.

#COMPTEUR_BOUCLE|<4|?{ mon affichage seul, mon affichage + mon lien }

Heu ....

J'ai pas de mots clés sur les articles....

???

Le 22 févr. 08 à 13:39, dlatr a écrit :

Le 22 févr. 08 à 13:20, Thomas Lamarche a écrit :

Bonjour,

J'affiche via une boucle les 3 dernier articles d'une rubrique :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse}
{age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|
mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
</BOUCLE_article_agenda>

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si
la boucle a plus de 3 résultats.
Je suppose qu'on doit pouvoir le faire avec #TOTAL_BOUCLE.

euh, non !

modifie celà :

  <BOUCLE_articles_titre(ARTICLES) {id_mot} {par hasard} {0,3}>
    <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>&bull; <BOUCLE_zarticles2(MOTS) {id_article} {id_groupe} {0,1}>#TITRE</BOUCLE_zarticles2>#TITRE</a>
  </BOUCLE_articles_titre>
  
  <BOUCLE_articles_titre2(ARTICLES) {id_mot} {par titre} {3,1}>
    <a href="#URL_MOT"><sub>&deg;</sub> (...)</a>
  </BOUCLE_articles_titre2>
  

Cependant je n'ai sait pas comment !!!!

Un peu d'aide svp...

Merci d'avance.
______________________

heu..

J'suis perdu là :

#COMPTEUR_BOUCLE|<4|?{ mon affichage seul, mon affichage + mon lien }

Le 22 févr. 08 à 13:40, denisb a écrit :

Thomas Lamarche wrote:

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si
la boucle a plus de 3 résultats.

si tu demandes à ta boucle de remonter 3 résultats, elle ne pourra
jamais t'informer sur l'existence d'un hypotétique 4ème...

tu devrais lui demander de te remonter 4 résultats :
<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse}
{age<0} {0,4} {doublons}>

puis de tester la variable #COMPTEUR_BOUCLE et, si elle est égale à 4,
ne faire afficher que le lien voulu.

#COMPTEUR_BOUCLE|<4|?{ mon affichage seul, mon affichage + mon lien }

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : FAQ webmestre - SPIP
---------------------------------------------------------------------------------------

Le 22 févr. 08 à 13:45, Thomas Lamarche a écrit :

Heu ....

J'ai pas de mots clés sur les articles....

c'est pour celà qu'il faut modifier

???

Le 22 févr. 08 à 13:39, dlatr a écrit :

Le 22 févr. 08 à 13:20, Thomas Lamarche a écrit :

Bonjour,

J'affiche via une boucle les 3 dernier articles d'une rubrique :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse}
{age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|
mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
</BOUCLE_article_agenda>

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si
la boucle a plus de 3 résultats.
Je suppose qu'on doit pouvoir le faire avec #TOTAL_BOUCLE.

euh, non !

modifie celà :

  <BOUCLE_articles_titre(ARTICLES) {id_mot} {par hasard} {0,3}>
    <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>&bull; <BOUCLE_zarticles2(MOTS) {id_article} {id_groupe} {0,1}>#TITRE</BOUCLE_zarticles2>#TITRE</a>
  </BOUCLE_articles_titre>
  
  <BOUCLE_articles_titre2(ARTICLES) {id_mot} {par titre} {3,1}>
    <a href="#URL_MOT"><sub>&deg;</sub> (...)</a>
  </BOUCLE_articles_titre2>
  

Cependant je n'ai sait pas comment !!!!

Un peu d'aide svp...

Merci d'avance.
______________________

Thomas Lamarche a écrit :

Bonjour,

J'affiche via une boucle les 3 dernier articles d'une rubrique :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse} {age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE| mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
</BOUCLE_article_agenda>

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si la boucle a plus de 3 résultats.
Je suppose qu'on doit pouvoir le faire avec #TOTAL_BOUCLE.
Cependant je n'ai sait pas comment !!!!

tu peux tout simplement essayer de reprendre le 4 eme (un article en exploitant le doublons créé plus haut) :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse} {age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|
mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
</BOUCLE_article_agenda>

  <BOUCLE_agenda(ARTICLES) {id_rubrique} {par date} {inverse} {age<0} {0,1} {doublons}>
ic le lien vers l'agenda car il y a un quatrieme article...
</BOUCLE_agenda>

</B_article_agenda>

@++

Thomas Lamarche a écrit :

heu..

J'suis perdu là :

#COMPTEUR_BOUCLE|<4|?{ mon affichage seul, mon affichage + mon lien }

si <4 affichage seul, sinon affichage + lien

Thomas Lamarche wrote:

J'suis perdu là :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse}
                                  {age < 0} {0, 4} {doublons}>

[(#COMPTEUR_BOUCLE|<4|?{' ',''})
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|mois)]
<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>#DESCRIPTIF
]

[(#COMPTEUR_BOUCLE|<4|?{'',' '})
[(#MON_LIEN)]
]

</BOUCLE_article_agenda>

explications :

soit le bloc [(#COMPTEUR_BOUCLE|<4|?{' ',''}) infos à afficher ]

si #COMPTEUR_BOUCLE est inférieur à 4 (c'est le cas des 3 premiers retours), alors l'expression retourne ' ' (un espace, donc quelque chose) et fait afficher la partie conditionnelle postérieure du bloc (les date, titre et descriptif).
sinon #COMPTEUR_BOUCLE n'est pas inférieur à 4 (donc il s'agit du 4ème résultat), alors l'expression retourne '' (rien) et rien n'est affiché dans la partie conditionnelle postérieure du bloc.

soit le bloc [(#COMPTEUR_BOUCLE|<4|?{'',' '}) lien à afficher ]

si #COMPTEUR_BOUCLE est inférieur à 4 (c'est le cas des 3 premiers retours), alors l'expression retourne '' (rien) et rien n'est affiché dans la partie conditionnelle postérieure du bloc.
sinon #COMPTEUR_BOUCLE n'est pas inférieur à 4 (donc il s'agit du 4ème résultat), alors l'expression retourne ' ' (un espace, donc quelque chose) et fait afficher la partie conditionnelle postérieure du bloc (ton lien)

explications :

soit le bloc [(#COMPTEUR_BOUCLE|<4|?{' ',''}) infos à afficher ]

Mais le code proposé par dlatr est beaucoup plus simple...

Olivier GENDRIN a écrit :

explications :

soit le bloc [(#COMPTEUR_BOUCLE|<4|?{' ',''}) infos à afficher ]

Mais le code proposé par dlatr est beaucoup plus simple...

oui, il vaut mieux faire du code qu'on comprend pour pouvoir le maintenir, mais ca fait une requete de plus au rechargement.

Si on comprend cette syntaxe et si l'affichage est simple, il vaut mieux travailler sur le compteur, par contre, ca ne permet pas de mettre une boucle à l'interieur (ou alors via #INCLURE).

@++

Le 22 févr. 08 à 17:29, Stephane a écrit :

Olivier GENDRIN a écrit :

explications :

soit le bloc [(#COMPTEUR_BOUCLE|<4|?{' ',''}) infos à afficher ]

Mais le code proposé par dlatr est beaucoup plus simple...

oui, il vaut mieux faire du code qu'on comprend pour pouvoir le
maintenir, mais ca fait une requete de plus au rechargement.

Si on comprend cette syntaxe et si l'affichage est simple, il vaut mieux
travailler sur le compteur, par contre, ca ne permet pas de mettre une
boucle à l'interieur (ou alors via #INCLURE).

@++
___________

oui, ça date de la 1.4.6 ou 1.5.2, donc d'avant ces balises
Claude

Olivier GENDRIN wrote:

Mais le code proposé par dlatr est beaucoup plus simple...

ben...
- une requête sql de plus,
(bon. une de plus sur les 250 nécessaires à l'affichage de la page...)
- mise en place de mots-clè
(ça par contre pour les mises-à-jour, suivi... ce peut être un peu plus enquiquinant...)

l'usage du filtre |condition {si oui, si non}, une fois compris est utile dans bien des situations (souvent pour éviter justement des appels de boucle superflus).

... et ce n'est pas si compliqué que ça, allez...

Le 22 févr. 08 à 13:45, Thomas Lamarche a écrit :

Heu ....

J'ai pas de mots clés sur les articles....

bon :

  <BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|
mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
  </BOUCLE_article_agenda>
  
  <BOUCLE_article_agenda_lien(ARTICLES) {id_rubrique} {age<0} {3,1}>
    <a href="#URL_MA_PAGE_AGENDA"><sub>&deg;</sub> (... suite dans l'agenda)</a>
  </BOUCLE_article_agenda_lien>

le doublons ne sert pas pour l'exemple mais il te sert peut-être ailleurs.

une boucle qui choisi trois articles selon tes critères
une autre qui affiche un lien s'il et seulement si y a une autre article (au moins un 4e, donc) selon tes critères. Ici le {par date} est superflu dans cette deuxième boucle.

Claude

???

Le 22 févr. 08 à 13:39, dlatr a écrit :

Le 22 févr. 08 à 13:20, Thomas Lamarche a écrit :

Bonjour,

J'affiche via une boucle les 3 dernier articles d'une rubrique :

<BOUCLE_article_agenda(ARTICLES) {id_rubrique} {par date} {inverse}
{age<0} {0,3} {doublons}>
[(#DATE_REDAC|jour)][/(#DATE_REDAC|mois) |] [(#DATE|jour)]/[(#DATE|
mois)]<br />
<a href="#URL_ARTICLE" class="titre">[(#TITRE|liens_ouvrants)]</a>
#DESCRIPTIF
</BOUCLE_article_agenda>

Je souhaiterai pouvoir faire en plus un lien vers une page agenda si
la boucle a plus de 3 résultats.
Je suppose qu'on doit pouvoir le faire avec #TOTAL_BOUCLE.

euh, non !

modifie celà :

  <BOUCLE_articles_titre(ARTICLES) {id_mot} {par hasard} {0,3}>
    <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>&bull; <BOUCLE_zarticles2(MOTS) {id_article} {id_groupe} {0,1}>#TITRE</BOUCLE_zarticles2>#TITRE</a>
  </BOUCLE_articles_titre>
  
  <BOUCLE_articles_titre2(ARTICLES) {id_mot} {par titre} {3,1}>
    <a href="#URL_MOT"><sub>&deg;</sub> (...)</a>
  </BOUCLE_articles_titre2>
  

Cependant je n'ai sait pas comment !!!!

Un peu d'aide svp...

Merci d'avance.
______________________