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.
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.
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.
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 ...
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
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) ?
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