age et age_relatif sur un nouvel objet

Bonjour,

Sur un nouvel objet récemment crée, j'aimerai bouclé en fonction de son age et le faire apparaitre ou disparaitre. Mais dans ma nouvelle table , si j'ai bien un champ date_depot, il me manque certainement un champ date_redac comme dans la table articles. Mais je ne veux pas le mettre.
Je pensais donc éviter la fabrication d'un truc en php supplémentaire en faisant :
#SET{d_day,#DATE|affdate{'d'}|moins{30}} #GET{d_day}
Mais bien entendu on obtient le résultat arithmétique de l'opération soit -8
Je pense qu'il y a une solution, mais je ne vois pas comment faire pour l'instant! Vos idées seraient bienvenues...

Merci

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Est-ce ça {age<15} dans ta boucle

Le 22 janvier 2010 10:55, Bernard Blazin <bernard.blazin@free.fr> a écrit :

Bonjour,

Sur un nouvel objet récemment crée, j’aimerai bouclé en fonction de son age et le faire apparaitre ou disparaitre. Mais dans ma nouvelle table , si j’ai bien un champ date_depot, il me manque certainement un champ date_redac comme dans la table articles. Mais je ne veux pas le mettre.
Je pensais donc éviter la fabrication d’un truc en php supplémentaire en faisant :
#SET{d_day,#DATE|affdate{‹ d ›}|moins{30}} #GET{d_day}
Mais bien entendu on obtient le résultat arithmétique de l’opération soit -8
Je pense qu’il y a une solution, mais je ne vois pas comment faire pour l’instant! Vos idées seraient bienvenues…

Merci


Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com
9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com


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

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

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

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


C’est pas parce que je suis venu, qu’il faut croire que je suis là.

Oui mais ça ne marche plus avec mon objet

mailou a écrit :

Est-ce ça {age<15} dans ta boucle

Le 22 janvier 2010 10:55, Bernard Blazin <bernard.blazin@free.fr <mailto:bernard.blazin@free.fr>> a écrit :

    Bonjour,

    Sur un nouvel objet récemment crée, j'aimerai bouclé en fonction
    de son age et le faire apparaitre ou disparaitre. Mais dans ma
    nouvelle table , si j'ai bien un champ date_depot, il me manque
    certainement un champ date_redac comme dans la table articles.
    Mais je ne veux pas le mettre.
    Je pensais donc éviter la fabrication d'un truc en php
    supplémentaire en faisant :
    #SET{d_day,#DATE|affdate{'d'}|moins{30}} #GET{d_day}
    Mais bien entendu on obtient le résultat arithmétique de
    l'opération soit -8
    Je pense qu'il y a une solution, mais je ne vois pas comment faire
    pour l'instant! Vos idées seraient bienvenues...

    Merci

    -- Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

    Bernard Blazin Point Com
    9 rue de la Rose
    77320 Montolivet
    Tel 01 64 20 98 49
    http://www.bernardblazin.com

    _______________________________________________
    liste spip
    spip@rezo.net <mailto:spip@rezo.net> - désabonnement : envoyer un
    mail à spip-off@rezo.net <mailto: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

--
C'est pas parce que je suis venu, qu'il faut croire que je suis là.

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

il me semble que spip et les calculs sur les date, j’ai galéré méchamment. Je me souviens plus comment je m’en étais sorti, je crois en passant par mktime de php.
Si tu arrives à quelque chose, ce serait bien qu’on en conserve une trace ! n’hésite pas à publier sur spip-contrib, ce que j’aurais « dû » faire…

Le 22 janvier 2010 13:43, Bernard Blazin <bernard.blazin@free.fr> a écrit :

Oui mais ça ne marche plus avec mon objet

mailou a écrit :

Est-ce ça {age<15} dans ta boucle

Le 22 janvier 2010 10:55, Bernard Blazin <bernard.blazin@free.fr mailto:[bernard.blazin@free.fr](mailto:bernard.blazin@free.fr)> a écrit :

Bonjour,

Sur un nouvel objet récemment crée, j’aimerai bouclé en fonction
de son age et le faire apparaitre ou disparaitre. Mais dans ma
nouvelle table , si j’ai bien un champ date_depot, il me manque
certainement un champ date_redac comme dans la table articles.
Mais je ne veux pas le mettre.
Je pensais donc éviter la fabrication d’un truc en php
supplémentaire en faisant :
#SET{d_day,#DATE|affdate{‹ d ›}|moins{30}} #GET{d_day}
Mais bien entendu on obtient le résultat arithmétique de
l’opération soit -8
Je pense qu’il y a une solution, mais je ne vois pas comment faire
pour l’instant! Vos idées seraient bienvenues…

Merci

– Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com
9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com


liste spip

spip@rezo.net mailto:[spip@rezo.net](mailto:spip@rezo.net) - désabonnement : envoyer un
mail à spip-off@rezo.net mailto:[spip-off@rezo.net](mailto:spip-off@rezo.net)

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

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

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


C’est pas parce que je suis venu, qu’il faut croire que je suis là.


Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com
9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com


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

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

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

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

Bernard Blazin a écrit :

Oui mais ça ne marche plus avec mon objet

Bernard,
Il faut indiquer à SPIP que les critères age s'appliquent à ton nouveau champ date :

$table_des_traitements['LE_NOM_DE_TON_NOUVEAU_CHAMP_DATE']= 'normaliser_date(%s)';

Cyril

Cyril MARION a écrit :

Bernard Blazin a écrit :

Oui mais ça ne marche plus avec mon objet

Bernard,
Il faut indiquer à SPIP que les critères age s'appliquent à ton nouveau champ date :

$table_des_traitements['LE_NOM_DE_TON_NOUVEAU_CHAMP_DATE']= 'normaliser_date(%s)';

Cyril

Ah ok! C'est dans le dossier base de mon plugin que je passe ça? et dans la déclaration des tables je suppose. Je ne comprends pas le crochet vide, mais d'ailleurs je ne pige pas la syntaxe.
P'tite ch'tiote question? Comment on peut savoir tout çà? C'est écrit nul part!
Bon dis-moi quand même si j'ai tout bon pour l'endroit ?

>Et un GRAND ET IMMENSE MERCI!

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Cyril MARION a écrit :

Bernard Blazin a écrit :

Oui mais ça ne marche plus avec mon objet

Bernard,
Il faut indiquer à SPIP que les critères age s'appliquent à ton nouveau champ date :

$table_des_traitements['LE_NOM_DE_TON_NOUVEAU_CHAMP_DATE']= 'normaliser_date(%s)';

Cyril

Bon voilà ce que j'ai fait:
dans mes_options.php
$table_des_traitements['DATE_DEPOT']= 'normaliser_date(%s)';
comme tu me l'as recommandé..Cependant dans ma boucle {age<30} me retourne champ age n'existe pas.
Il faut faire autre chose?

Merci

Bernard

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Le 22/01/10 19:42, Bernard Blazin a écrit :

P'tite ch'tiote question? Comment on peut savoir tout çà? C'est écrit
nul part!

peut-être jeter un oeil sur la doc :
   http://doc.spip.org/@Declarer-et-ajouter-des-tables

le paragraphe «Spécifier les champs "date" des nouvelles tables»

Le 23/01/2010 11:07, denisb a écrit :

Le 22/01/10 19:42, Bernard Blazin a écrit :

P'tite ch'tiote question? Comment on peut savoir tout çà? C'est écrit
nul part!

peut-être jeter un oeil sur la doc :
http://doc.spip.org/@Declarer-et-ajouter-des-tables

le paragraphe «Spécifier les champs "date" des nouvelles tables»

Y aura t il un jour des liens entre les différents sites de la galaxie ?
C'est certifié schizophrénique qu'il n'y ait pas de liens croisés
entre les pages internes de spip.net et celles des autres sites de documentation !
(doc.spip.org, programmer.spip.org, voire spip-contrib.net)

JLuc

Le 23/01/2010 10:35, Bernard Blazin a écrit :

Bon voilà ce que j'ai fait:
dans mes_options.php
$table_des_traitements['DATE_DEPOT']= 'normaliser_date(%s)';
comme tu me l'as recommandé..Cependant dans ma boucle {age<30} me
retourne champ age n'existe pas.

Non, la table des traitements indique quels traitements spip applique
à la donnée sql brute récupérée avant de la fournir comme résultat
de la balise correspondante (#DATE_DEPOT en l'occurence)
alors que toi tu veux *étendre* un *critère* *standard*.

Il faut faire autre chose?

oui certainement.
Je n'en ai pas l'expérience, mais la moindre des choses pour commencer
serait de faire ce qui est indiqué sur la page qui t'a été recommandée.

Ainsi il y figure :
"Spécifier les champs "date" des nouvelles tables.

Si on crée une table qui contient des champs date, on peut les déclarer à spip pour accélérer les requêtes sql quand on fait des boucles avec des critère sur ces champs..."

et dans ton cas ça donne :
  $interface['table_date']['lenomdetanouvelletable'] = 'date_depot';

Essaie voir...

JLuc

JLuc a écrit :

Le 23/01/2010 10:35, Bernard Blazin a écrit :

Bon voilà ce que j'ai fait:
dans mes_options.php
$table_des_traitements['DATE_DEPOT']= 'normaliser_date(%s)';
comme tu me l'as recommandé..Cependant dans ma boucle {age<30} me
retourne champ age n'existe pas.

Non, la table des traitements indique quels traitements spip applique
à la donnée sql brute récupérée avant de la fournir comme résultat
de la balise correspondante (#DATE_DEPOT en l'occurence)
alors que toi tu veux *étendre* un *critère* *standard*.

Il faut faire autre chose?

oui certainement.
Je n'en ai pas l'expérience, mais la moindre des choses pour commencer
serait de faire ce qui est indiqué sur la page qui t'a été recommandée.

Ainsi il y figure :
"Spécifier les champs "date" des nouvelles tables.

Si on crée une table qui contient des champs date, on peut les déclarer à spip pour accélérer les requêtes sql quand on fait des boucles avec des critère sur ces champs..."

et dans ton cas ça donne :
    $interface['table_date']['lenomdetanouvelletable'] = 'date_depot';

Essaie voir...

JLuc

+1 pour la doc. Bon j'avais fait également ça aussi avant de relancer la chose, donc pas de nouveauté de ce côté là, j'ai toujours mon erreur SQL

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Le 23/01/2010 19:08, Bernard Blazin a écrit :

+1 pour la doc. Bon j'avais fait également ça aussi avant de relancer la
chose, donc pas de nouveauté de ce côté là, j'ai toujours mon erreur SQL

ah, j'ai pas vu que tu parlais d'erreur sql.
c'est quoi ?

JLuc

JLuc a écrit :

Le 23/01/2010 19:08, Bernard Blazin a écrit :

+1 pour la doc. Bon j'avais fait également ça aussi avant de relancer la
chose, donc pas de nouveauté de ce côté là, j'ai toujours mon erreur SQL

ah, j'ai pas vu que tu parlais d'erreur sql.
c'est quoi ?

JLuc

_______________________________________________

Le champ age ou encore selon la boucle, age_relatif n'existe pas. comme c'est un critère de boucle, SPIP voit ça comme un champ de table ce qui semble normal. Par contre ce qui l'est moins c'est qu'en ayant déclaré ce qui est dit depuis le début de ce post, SPIP ne reconnait pas le critère de date age pour un nouvel objet semble t-il.

Bernard

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com

Le 23/01/10 20:56, Bernard Blazin a écrit :

Par contre ce qui l'est moins c'est qu'en ayant déclaré
ce qui est dit depuis le début de ce post, SPIP ne reconnait pas le
critère de date age pour un nouvel objet semble t-il.

regarder le code du plugin agenda (les 2 fichier de agenda/base/)

denisb a écrit :

Le 23/01/10 20:56, Bernard Blazin a écrit :

Par contre ce qui l'est moins c'est qu'en ayant déclaré
ce qui est dit depuis le début de ce post, SPIP ne reconnait pas le
critère de date age pour un nouvel objet semble t-il.

regarder le code du plugin agenda (les 2 fichier de agenda/base/)

_______________________________________________

Ok, l'exemple est parfait . Ca fonctionne en rajoutant dans la fonction adéquate declarer_tables_interfaces ces deux lignes
$interface['table_date']['collections'] = 'date_depot';
    $interface['DATE_DEPOT']= 'normaliser_date(%s)';

Merci à tous pour le coup de main

Bon dimanche

Bernard

--
Bernard Blazin - Développement Internet Ingénieur ENSAM promo 1978

Bernard Blazin Point Com

9 rue de la Rose
77320 Montolivet
Tel 01 64 20 98 49
http://www.bernardblazin.com