[spip-dev] Re[2]: Gestion des dates dans les boucles ...

Hello,

afin d'améliorer la dernière version de mon agenda [1], je voudrais
utiliser les dernières fonctionnalités de dates ajoutées à la 1.6 [2].

[1] http://www.uzine.net/spip_contrib/ecrire/articles.php3?id_article=113
[2] http://www.uzine.net/ecrire/articles.php3?id_article=1965

En fait, j'ai en gros ça :

<BOUCLE_principale(RUBRIQUES){id_rubrique}{doublons}>
  <BOUCLE_evenements(ARTICLES){branche}{age_redac_relatif < 30}{age_relatif > -30}>
    <?php
    ... je remplis mon tableau PHP ...
    ?>
  </BOUCLE_evenements>
</BOUCLE_principale>

Et je voudrais que le fameux age relatif soit calculé par rapport à un
paramètre en URL ou la date courante s'il n'y en a pas. Bon, en plus
c'est sur la date_redac que je veux tester. J'ai beau tester plein de
variantes, je comprends pas le nouveau système... :wink:

Et ça, c'est pas très clair :

"Tous les critères de date permettent désormais de comparer des
date_redac entre elles ou à la date passée en URL (ajouter _redac à la
fin)"

Quelqu'un saurait m'aider ???

Merci.

-Nicolas

si tu mets ?date=25may2003 dans ton url,
#DATE vaudra 2003-05-25 00:00:00

et le critère mois_relatif te permettra de sélectionner les articles du même mois.

par contre, pour comparer avec date_redac, tu devras utiliser mois_relatif_redac

...enfin il me semble...

Tu veux les événements (articles) dont la date_redac se trouve dans le mois
courant ? Dans le squelette tu mets {mois_relatif_redac=0} ; et dans
article.php3 tu ajoutes une ligne de php :
    if (!$date) $date = 'today';

article.php3 tu ajoutes une ligne de php :
    if (!$date) $date = 'today';

On peut mettre ça par défaut, d'ailleurs...

-- Fil

Tu veux les événements (articles) dont la date_redac se trouve dans
le mois courant ?

C'est pour l'agenda, donc ce sont les articles qui se trouvent dans la
{branche} de la rubrique courante, et dont la date_redac est comprise
entre une semaine avant le début du mois et une semaine après sa fin,
sachant que le mois en question est en paramètre ...

Dans le squelette tu mets {mois_relatif_redac=0}

Le problème est que je suis déjà dans une boucle RUBRIQUES et que donc
il prend la date de modif de la rubrique en référence plutôt que la
date passée en URL ...

et dans article.php3 tu ajoutes une ligne de php :
if (!$date) $date = 'today';

$date_redac, plutôt, non ?

-Nicolas

> Dans le squelette tu mets {mois_relatif_redac=0}

Le problème est que je suis déjà dans une boucle RUBRIQUES et que donc
il prend la date de modif de la rubrique en référence plutôt que la
date passée en URL ...

Ah, oui. Pas de chance. Il faut trouver une autre astuce

> et dans article.php3 tu ajoutes une ligne de php :
> if (!$date) $date = 'today';

$date_redac, plutôt, non ?

Non, c'est bien $date. Ce paramètre sert de point de comparaison à la
fois pour les date et les date_redac. Mais je viens de définir $date=today
par défaut (dans la CVS).

-- Fil

Ah, oui. Pas de chance. Il faut trouver une autre astuce

Bon bin je vais continuer à m'en passer pour l'instant, le squelette
restera compatible SPIP 1.4 ... :wink:

Il serait pas mal de toute façon qu'on puisse toujours accéder, même à
l'intérieur d'une boucle, au contexte global, c'est à dire notamment
les paramètres d'URL ...

$date_redac, plutôt, non ?

Non, c'est bien $date. Ce paramètre sert de point de comparaison à
la fois pour les date et les date_redac.

OK

-Nicolas

Nicolas Hoizey wrote:

Le problème est que je suis déjà dans une boucle RUBRIQUES et que donc
il prend la date de modif de la rubrique en référence plutôt que la
date passée en URL ...

Pourquoi tu ne fais pas qu'une seule boucle ?

au lieu de :
<BOUCLE_principale(RUBRIQUES){id_rubrique}{doublons}>
<BOUCLE_evenements(ARTICLES){branche}>
...
</BOUCLE_evenements>
<table cellpadding="5" cellspacing="0" align="center" border="1" class="agenda">
<form method="get">
...
</BOUCLE_principale>

tu fais :
<BOUCLE_evenements(ARTICLES){id_rubrique}{branche}>
...
</BOUCLE_evenements>
<table cellpadding="5" cellspacing="0" align="center" border="1" class="agenda">
<form method="get">
...
</B_evenements>

les #URL_RUBRIQUE et #ID_RUBRIQUE fonctionnent dans une boucle article

-Nicolas

James