[1.9.2g][Agenda_1_9_2] Compteur nombres de jours avant début de l'événement

Bonjour,

Presque toutes les infos sont données dans le titre. Je résume:
J’ai un site sous SPIP 1.9.2g avec le plugin Agenda 1.9.2. Je voudrai pour ma rubrique agenda, mettre le nombre de jours restant avant le début des prochains événements.
Comment puis-je faire?

Par la suite, je voudrai mettre cette donnée en priorité pour mon sitemap google… Plus l’événement est proche, plus il est prioritaire…
Pour ce besoin précis, on peut limiter le tout à 100 jours… Le reste sera en priorité 0…

Cordialement,

Teddy.
http://www.maloya.org/

Bonjour,

Autre piste, comment déterminer la date d’aujourd’hui alors que je suis dans une boucle événement (ou article, etc.)?
De là, je pourrai faire une soustraction non?

Le 26 février 2009 12:09, Teddy Payet <teddy.payet@gmail.com> a écrit :

Bonjour,

Presque toutes les infos sont données dans le titre. Je résume:
J’ai un site sous SPIP 1.9.2g avec le plugin Agenda 1.9.2. Je voudrai pour ma rubrique agenda, mettre le nombre de jours restant avant le début des prochains événements.
Comment puis-je faire?

Par la suite, je voudrai mettre cette donnée en priorité pour mon sitemap google… Plus l’événement est proche, plus il est prioritaire…
Pour ce besoin précis, on peut limiter le tout à 100 jours… Le reste sera en priorité 0…

Cordialement,

Teddy.
http://www.maloya.org/

Teddy Payet wrote:

Bonjour,

Autre piste, comment déterminer la date d'aujourd'hui alors que je suis dans une boucle événement (ou article, etc.)?
De là, je pourrai faire une soustraction non?

un truc avec #EVAL{time()-date("U",#DATE)} ? si cette solution convient, il ne reste "plus qu'à" écrire la formule de calcul en php avec le différentiel en jours...

--
Chryjs

Je viens de faire un test. J’ai pu déterminer la date d’aujourd’hui grâce à un #SET que je peux rappeler dans la boucle événement.
J’essaie pour le moment de trouver une solution tout en boucle spipienne.
J’essaie de faire un truc du genre:
Hors boucle:
[(#SET{today,[(#DATE|affdate{‹ Y-m-d ›})]})]
[(#SET{proche,100})]

Dans ma boucle événements:
[(#GET{proche}|moins{#GET{today}|moins{#DATE_DEBUT|affdate{‹ Y-m-d ›}}})]

mais bien entendu, ça ne marche pas…

Le 26 février 2009 13:40, chryjs <chryjs@free.fr> a écrit :

Teddy Payet wrote:

Bonjour,

Autre piste, comment déterminer la date d’aujourd’hui alors que je suis dans une boucle événement (ou article, etc.)?
De là, je pourrai faire une soustraction non?

un truc avec #EVAL{time()-date(« U »,#DATE)} ? si cette solution convient, il ne reste « plus qu’à » écrire la formule de calcul en php avec le différentiel en jours…


Chryjs

Teddy Payet wrote:

Je viens de faire un test. J'ai pu déterminer la date d'aujourd'hui grâce à un #SET que je peux rappeler dans la boucle événement.
J'essaie pour le moment de trouver une solution tout en boucle spipienne.
J'essaie de faire un truc du genre:
Hors boucle:
[(#SET{today,[(#DATE|affdate{'Y-m-d'})]})]
[(#SET{proche,100})]

Dans ma boucle événements:
[(#GET{proche}|moins{#GET{today}|moins{#DATE_DEBUT|affdate{'Y-m-d'}}})]

mais bien entendu, ça ne marche pas...

Non ça ne peut pas marcher car la soustraction se fait sur une chaine de caractère (Y-m-d) même si elle comprend des valeurs numériques. Le passage par une unité comme les secondes est obligatoire. D'où la suggestion du format U. Je n'ai pas trop réfléchi, mais il y a surement plus sioux à faire que de passer par les secondes (car il faut reconvertir en jours après... certes c'est une simple division mais quand meme).

Je pense qu'on ne peut pas éviter #EVAL (au sein de la boucle) pour ce type de besoin à moins de créer un filtre/ fonction de calcul en php du genre :

#DATE_DEBUT|ecartjours

et un truc du genre (à vérifier) dans mes_fonctions.php :
function ecartjours ($date) {
return (intval( time() - date("U",$date) ) / (24 * 3600) )
}

--
Chryjs

bonne idée, mais justement j’étais parti sur strtotime ce qui donne:
Pour mes #SET:
[(#SET{today,#DATE|affdate{‹ Y-m-d ›}|strtotime})]
[(#SET{proche,100})]

Dans ma boucle:
[(#DATE_DEBUT|affdate{‹ Y-m-d ›}|strtotime|moins{#GET{today}}|div{86400})]
Et donc me donnera le nombre de jours avant le début de mon événement… Et tout ça en SPIP et pas de mes_fonctions.php

Le 26 février 2009 14:05, chryjs <chryjs@free.fr> a écrit :

Teddy Payet wrote:

Je viens de faire un test. J’ai pu déterminer la date d’aujourd’hui grâce à un #SET que je peux rappeler dans la boucle événement.
J’essaie pour le moment de trouver une solution tout en boucle spipienne.
J’essaie de faire un truc du genre:
Hors boucle:
[(#SET{today,[(#DATE|affdate{‹ Y-m-d ›})]})]
[(#SET{proche,100})]

Dans ma boucle événements:
[(#GET{proche}|moins{#GET{today}|moins{#DATE_DEBUT|affdate{‹ Y-m-d ›}}})]

mais bien entendu, ça ne marche pas…

Non ça ne peut pas marcher car la soustraction se fait sur une chaine de caractère (Y-m-d) même si elle comprend des valeurs numériques. Le passage par une unité comme les secondes est obligatoire. D’où la suggestion du format U. Je n’ai pas trop réfléchi, mais il y a surement plus sioux à faire que de passer par les secondes (car il faut reconvertir en jours après… certes c’est une simple division mais quand meme).

Je pense qu’on ne peut pas éviter #EVAL (au sein de la boucle) pour ce type de besoin à moins de créer un filtre/ fonction de calcul en php du genre :

#DATE_DEBUT|ecartjours

et un truc du genre (à vérifier) dans mes_fonctions.php :
function ecartjours ($date) {
return (intval( time() - date(« U »,$date) ) / (24 * 3600) )
}


Chryjs