afficher deux articles seulement si même date

Bonjour à tous,

J'ai besoin d'une petite aide que certains sauront peut-être m'apporter
sans trop se casser la tête.

J'utilise la date de rédaction modifiée l'affichage en page d'accueil
d'un seul article et jusqu'à cette date :

<BOUCLE_prochain(ARTICLES) {par date_redac}{age_redac<0}{0,1} >

Mais je voudrais afficher deux articles si et seulement si ils ont la
même date.

C'est pour annoncer des projections de films. On affiche seulement le
prochain film. Mais il arrive parfois qu'on projette deux films d'un
coup et dans ce cas on voudrait qu'ils apparaissent tous les deux en
page d'accueil.

C'est sur ce site : http://www.peupleetculturecantal.org/

Merci d'avance,

Le 30/01/10 14:47, Etienne a écrit :

Mais je voudrais afficher deux articles si et seulement si ils ont la
même date.

en deux boucles ?

<BOUCLE_prochaine_date(ARTICLES){age_redac<0}{par date_redac}{0,1}>
<BOUCLE_prochains(ARTICLES){date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>
   #DATE_REDAC #ID_ARTICLE <br />
</BOUCLE_prochains>
</BOUCLE_prochaine_date>

Merci, ça fonctionne exactement comme je le voulais, avec ça :
<BOUCLE_prochaine_date(ARTICLES){age_redac<0}{par date_redac}{0,1}>
<BOUCLE_prochains(ARTICLES){date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>
</BOUCLE_prochains>
</BOUCLE_prochaine_date>

Je me doutais bien qu'il y avait une histoire de deux boucles. Mais une
petite explication ne me ferait pas de mal.
Apparemment c'est ce critère là qui est important dans la seconde boucle ?
{date_redac==^(#DATE_REDAC|affdate{Y-m-d})}

Est-ce que tu pourrais me détailler son rôle (notamment pourquoi ==^ et
non seulement =, et pourquoi un affdate) ?

En tous cas, merci beaucoup.

denisb a écrit :

Le 30/01/10 14:47, Etienne a écrit :

Mais je voudrais afficher deux articles si et seulement si ils ont la
même date.

en deux boucles ?

<BOUCLE_prochaine_date(ARTICLES){age_redac<0}{par date_redac}{0,1}>
<BOUCLE_prochains(ARTICLES){date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>
  #DATE_REDAC #ID_ARTICLE <br />
</BOUCLE_prochains>
</BOUCLE_prochaine_date>

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Etienne a écrit :

Merci, ça fonctionne exactement comme je le voulais, avec ça :
<BOUCLE_prochaine_date(ARTICLES){age_redac<0}{par date_redac}{0,1}>
<BOUCLE_prochains(ARTICLES){date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>
</BOUCLE_prochains>
</BOUCLE_prochaine_date>

Je me doutais bien qu'il y avait une histoire de deux boucles. Mais une
petite explication ne me ferait pas de mal.
Apparemment c'est ce critère là qui est important dans la seconde boucle ?
{date_redac==^(#DATE_REDAC|affdate{Y-m-d})}

Est-ce que tu pourrais me détailler son rôle (notamment pourquoi ==^ et
non seulement =, et pourquoi un affdate) ?

En tous cas, merci beaucoup.

denisb a écrit :
  

Le 30/01/10 14:47, Etienne a écrit :
    

Mais je voudrais afficher deux articles si et seulement si ils ont la
même date.
      
en deux boucles ?

<BOUCLE_prochaine_date(ARTICLES){age_redac<0}{par date_redac}{0,1}>
<BOUCLE_prochains(ARTICLES){date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>
  #DATE_REDAC #ID_ARTICLE <br />
</BOUCLE_prochains>
</BOUCLE_prochaine_date>

_______________________________________________
    
le affdate, c'est juste pour l'affichage
|affdate - SPIP

Le 01/02/10 11:01, Etienne a écrit :

Est-ce que tu pourrais me détailler son rôle (notamment pourquoi ==^ et
non seulement =, et pourquoi un affdate) ?

<BOUCLE_prochaine_date(ARTICLES) {age_redac<0} {par date_redac} {0,1}>

   cette première boucle (tu la connais : c'est la tienne) ne sert qu'à
   récupérer la prochaine date_redac la plus proche (sic)

<BOUCLE_prochains(ARTICLES) {date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>

   cette boucle incluse utilise pour son critère de sélection la valeur
   #DATE_REDAC qui est celle retournée par la boucle contenante
   (ci-dessus)

   mais #DATE_REDAC, tout comme le champ sql date_redac, est renseigné
   sous la forme 'aaaa-mm-jj hh:mm:ss' ; or 2 articles différents n'ont
   aucune chance de posséder cette même valeur *à la seconde près*

   il ne faut donc nous en tenir qu'à la partie 'jour' de date_redac
   c'est à dire aaa-mm-jj

   on va donc sélectionner les articles dont la date_redac *commence* par
   les même valeurs d'année, de mois et de jour

   l'opérateur == (double égal) indique à spip que la requête sql qu'il
   va lancer utilisera une expression régulière (REGEXP) dans sa clause
   WHERE

   ^(#DATE_REDAC|affdate{Y-m-d}) est le contenu de cette regexp ; à
   savoir :

     ^ -> commence par
     (#DATE_REDAC|affdate{Y-m-d}) -> nous ne voulons que la partie
                                       aaaa-mm-jj de #DATE_REDAC (puisque
                                       on ne veut que les articles du
                                       même *jour* et pas ceux de la
                                       même heure, ou minute ...

Très bonne explication. C'est toujours plus agréable de faire des manip
en les comprenant.

Mille merci,

Etienne

denisb a écrit :

Le 01/02/10 11:01, Etienne a écrit :

Est-ce que tu pourrais me détailler son rôle (notamment pourquoi ==^ et
non seulement =, et pourquoi un affdate) ?

<BOUCLE_prochaine_date(ARTICLES) {age_redac<0} {par date_redac} {0,1}>

  cette première boucle (tu la connais : c'est la tienne) ne sert qu'à
  récupérer la prochaine date_redac la plus proche (sic)

<BOUCLE_prochains(ARTICLES) {date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>

  cette boucle incluse utilise pour son critère de sélection la valeur
  #DATE_REDAC qui est celle retournée par la boucle contenante
  (ci-dessus)

  mais #DATE_REDAC, tout comme le champ sql date_redac, est renseigné
  sous la forme 'aaaa-mm-jj hh:mm:ss' ; or 2 articles différents n'ont
  aucune chance de posséder cette même valeur *à la seconde près*

  il ne faut donc nous en tenir qu'à la partie 'jour' de date_redac
  c'est à dire aaa-mm-jj

  on va donc sélectionner les articles dont la date_redac *commence* par
  les même valeurs d'année, de mois et de jour

  l'opérateur == (double égal) indique à spip que la requête sql qu'il
  va lancer utilisera une expression régulière (REGEXP) dans sa clause
  WHERE

  ^(#DATE_REDAC|affdate{Y-m-d}) est le contenu de cette regexp ; à
  savoir :

    ^ -> commence par
    (#DATE_REDAC|affdate{Y-m-d}) -> nous ne voulons que la partie
                                      aaaa-mm-jj de #DATE_REDAC (puisque
                                      on ne veut que les articles du
                                      même *jour* et pas ceux de la
                                      même heure, ou minute ...

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Trop fort...
Il y a des jours comme ça où on est content d'être présent sur cette liste. Où on va s'endormir plus content...
Voici LA solution que je cherchais [sans la chercher] depuis longtemps.

Dans le cadre de la gestion d'un mini-agenda, j'avais "depluginné" la solution des squelettes Sarka pour avoir un mini-agenda sans plugin.
Sauf que ce dernier était capable de m'indiquer qu'il y avait plusieurs événements à une date donnée mais je n'avais pas trouvé [ni chercher] comment :
J'affiche l'événement à une date donnée
Mais - si tu veux - je puis te proposer les autres événements pour la même date.

Bravo à celui qui a répondu et aussi [et surtout] à celui qui a posé la question.
Pour philosopher un peu, lequel est le plus important ?

Bien à vous
Tonton BP

C'est dans Star War
"qui est le plus fou, le fou ou celui qui le suit ?"

Le 01/02/2010 12:49, Etienne a écrit :

Très bonne explication. C'est toujours plus agréable de faire des manip
en les comprenant.

Mille merci,

Etienne

denisb a écrit :
   

Le 01/02/10 11:01, Etienne a écrit :
     

Est-ce que tu pourrais me détailler son rôle (notamment pourquoi ==^ et
non seulement =, et pourquoi un affdate) ?
       
<BOUCLE_prochaine_date(ARTICLES) {age_redac<0} {par date_redac} {0,1}>

   cette première boucle (tu la connais : c'est la tienne) ne sert qu'à
   récupérer la prochaine date_redac la plus proche (sic)

<BOUCLE_prochains(ARTICLES) {date_redac==^(#DATE_REDAC|affdate{Y-m-d})}>

   cette boucle incluse utilise pour son critère de sélection la valeur
   #DATE_REDAC qui est celle retournée par la boucle contenante
   (ci-dessus)

   mais #DATE_REDAC, tout comme le champ sql date_redac, est renseigné
   sous la forme 'aaaa-mm-jj hh:mm:ss' ; or 2 articles différents n'ont
   aucune chance de posséder cette même valeur *à la seconde près*

   il ne faut donc nous en tenir qu'à la partie 'jour' de date_redac
   c'est à dire aaa-mm-jj

   on va donc sélectionner les articles dont la date_redac *commence* par
   les même valeurs d'année, de mois et de jour

   l'opérateur == (double égal) indique à spip que la requête sql qu'il
   va lancer utilisera une expression régulière (REGEXP) dans sa clause
   WHERE

   ^(#DATE_REDAC|affdate{Y-m-d}) est le contenu de cette regexp ; à
   savoir :

     ^ -> commence par
     (#DATE_REDAC|affdate{Y-m-d}) -> nous ne voulons que la partie
                                       aaaa-mm-jj de #DATE_REDAC (puisque
                                       on ne veut que les articles du
                                       même *jour* et pas ceux de la
                                       même heure, ou minute ...

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc