affichage de l'article sous condition

J'essaie d'afficher certains articles à partir de la première date de rédaction et enlever l'article dès que la date de publication est passée. Comment faire?

J'ai testé : <? $date_systeme = date('Y', time())."-".date('m', time())."-".date('d', time())." ".date('H',time()).":".date('i', time()).":".date('s', time()); ?>
<BOUCLE_rubrique3(RUBRIQUES){id_rubrique}{date < $date_systeme}{date_redac > $date_systeme}>

Cette technique ne fonctionne pas.

Merci

Seb

@ Choblet Sébastien (devess@mire.net) :

J'essaie d'afficher certains articles à partir de la première date de rédaction et enlever l'article dès que la date de publication est passée. Comment faire?

J'ai testé : <? $date_systeme = date('Y', time())."-".date('m', time())."-".date('d', time())." ".date('H',time()).":".date('i', time()).":".date('s', time()); ?>
<BOUCLE_rubrique3(RUBRIQUES){id_rubrique}{date < $date_systeme}{date_redac > $date_systeme}>

Cette technique ne fonctionne pas.

Non, iol faut jouer sur l'age et l'age_redac de l'article
cf. [uZine 3] Les critères communs à toutes les boucles

"Pour faciliter l'utilisation des comparaisons sur les dates, on a ajouté
des critères : age et age_redac correspondent respectivement à l'ancienneté
de la publication et de la première publication d'un article, en jours.
Ainsi {age<30} sélectionne les éléménts publiés depuis un mois. On trouvera
également les critères mois, mois_redac, annee, annee_redacpermettant de
comparer avec des valeurs fixes ({annee<=2000} pour les éléments publiés
avant la fin de l'année 2000). "

-- Fil

At 14:44 +0100 7/12/01, Fil wrote:

@ Choblet Sébastien (devess@mire.net) :

J'essaie d'afficher certains articles à partir de la première date de rédaction et enlever l'article dès que la date de publication est passée. Comment faire?

>

J'ai testé : <? $date_systeme = date('Y', time())."-".date('m', time())."-".date('d', time())." ".date('H',time()).":".date('i', time()).":".date('s', time()); ?>
<BOUCLE_rubrique3(RUBRIQUES){id_rubrique}{date < $date_systeme}{date_redac > $date_systeme}>

> Cette technique ne fonctionne pas.

Je complète l'explication de Fil...

Une des difficultés quand on commence à mélanger les boucles et le PHP, c'est de bien comprendre qu'on ne peut pas utiliser les résultats de fonctions PHP comme critères de boucles. Pour une raison simple: SPIP effectue les boucles, stocke le fichier cache _avec les fonctions PHP en clair, non interprétée_, puis c'est lors de la consultation de ce fichier cache par le visiteur qui provoque l'interprétation des fonctions PHP.

Prenons un exemple plus simple que ta boucle (mais similaire):

<? $larubrique = 23; ?>
<BOUCLE_rubrique(RUBRIQUES){id_rubrique=$id_rubrique}>

(tu peux bien écrire {id_rubrique=<?$id_rubrique?>} ou {id_rubrique=<? echo $id_rubrique; ?>} ça revient au même...)

Ca ne peut pas fonctionner.

Au moment de l'analyse du squelette, SPIP considère les codes PHP comme du texte, rien d'autre. Du coup, {id_rubrique=$id_rubrique} est analysé tel quel, tu essaies de sélectionner une rubrique en fonction d'un _texte_, et non d'une variable.

Le principe est plutôt simple (les boucles sont analysées bien avant que le système commence à s'intéresser au PHP), mais je me suis aussi fait piéger plusieurs fois. J'ai beau savoir que c'est pas possible, c'est tellement simple que je me plante régulièrement :-))

Amicalement,
ARNO*

--
Le Scarabée : http://www.scarabee.com
uZine 2 : http://www.uzine.net

DH/DSS, 0x11930F0B, DEEB 602D B344 644B AF88 BF73 85F4 2297 1193 0F0B