[SPIP Zone] [Spip-zone-commit] r27566 - in /_plugins_/_stable_/agenda/2_0_0: agenda_fonctions.php formulaires/calendrier_mini.html

Le 30 mars 09 à 01:40, Gilles VINCENT a écrit :

Bonsoir à tous,

en fait le dernier commit que j'ai fais sur Agenda2 n'apporte qu'une
solution partielle au problème d'affichage des événements sur
plusieurs mois.

Cela fonctionne correctement s'il est sur janvier / février,
mais pas sur janvier / février / mars : alors, le mois de février
n'affichera aucune information.

Pour palier à ce problème, j'utilise d'habitude un marqueur de 12bits
consécutifs : 1 pour chaque mois. La recherche des événements du mois
se fait alors simplement avec un opérateur binaire.
Il me faut seulement rajouter un nouvel attribut à la table spip_evenements.

Y voyez-vous un inconvénient ?

Oui, c'est incompréhensible au commun des mortels, et c'est une redondance avec les infos de date qui sont deja dans date_debut et date_fin.
Tout ce que cela risque est d'entraîner des incohérences d'info.

Par ailleurs, le mini calendrier contenu dans le plugin agenda est obsolète et devrait être supprimé au profit d'une dépendance avec la version à jour de james.

Enfin, il me semble que ce qui manque ce sont les 3 critères
{passe}
{en_cours}
{futur}
qui permettent de selectionner les evenements passé, en cours ou futur à la date du jour, où à toute autre date avec un argument optionnel :

{passe #ENV{date}}
{en_cours #ENV{date}}
{futur #ENV{date}}

Cédric

d'autant qu'il suffit d'utiliser le critère agendafull et non pas agenda pour que ca marche tout à fait correctement sans qu'il y ait besoin de faire plusieurs boucles ou ajouter quoi que ce soit dans des tables.

La boucle EVENEMENTS dans le mini calendrier devient quelquechose dans ce style:

BOUCLE_calendrier(EVENEMENTS)
            {id_article}{id_mot?}
            {agendafull date_debut, date_fin, mois, (#ENV{date}|annee), (#ENV{date}|mois)}>[
            (#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,[(#TITRE|addslashes)],
                    #DESCRIPTIF,#LIEU,
                    [(#ENV{self}|parametre_url{#ENV{var_date},[(#DATE_DEBUT|affdate{'Y-m-d'})]})]})
            ]</BOUCLE_calendrier>[
            (#ENV{date}|agenda_mini)

Je pense que le probleme d'une dependance du mini_calendrier de l'agenda2.0 avec la version toute seule du mini calendrier, c'est que la version toute seule n'utilisera pas le critère agendafull mais agenda et ni agenda_memo_full mais agenda_memo et on retrouvera le probleme d'evenements qui ne s'affichent que sur un mois. Mais peut-etre que je me trompe.

Jeannot

cedric.morin@yterium.com wrote:

Le 30 mars 09 à 01:40, Gilles VINCENT a écrit :

Bonsoir à tous,

en fait le dernier commit que j'ai fais sur Agenda2 n'apporte qu'une
solution partielle au problème d'affichage des événements sur
plusieurs mois.

Cela fonctionne correctement s'il est sur janvier / février,
mais pas sur janvier / février / mars : alors, le mois de février
n'affichera aucune information.

Pour palier à ce problème, j'utilise d'habitude un marqueur de 12bits
consécutifs : 1 pour chaque mois. La recherche des événements du mois
se fait alors simplement avec un opérateur binaire.
Il me faut seulement rajouter un nouvel attribut à la table spip_evenements.

Y voyez-vous un inconvénient ?

Oui, c'est incompréhensible au commun des mortels, et c'est une redondance avec les infos de date qui sont deja dans date_debut et date_fin.
Tout ce que cela risque est d'entraîner des incohérences d'info.

Par ailleurs, le mini calendrier contenu dans le plugin agenda est obsolète et devrait être supprimé au profit d'une dépendance avec la version à jour de james.

Enfin, il me semble que ce qui manque ce sont les 3 critères
{passe}
{en_cours}
{futur}
qui permettent de selectionner les evenements passé, en cours ou futur à la date du jour, où à toute autre date avec un argument optionnel :

{passe #ENV{date}}
{en_cours #ENV{date}}
{futur #ENV{date}}

Cédric

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

2009/3/30 cedric.morin@yterium.com <cedric.morin@yterium.com>:

Le 30 mars 09 à 01:40, Gilles VINCENT a écrit :

Bonsoir à tous,

en fait le dernier commit que j'ai fais sur Agenda2 n'apporte qu'une
solution partielle au problème d'affichage des événements sur
plusieurs mois.

Cela fonctionne correctement s'il est sur janvier / février,
mais pas sur janvier / février / mars : alors, le mois de février
n'affichera aucune information.

En fait la solution était simple :
les différentes boucles sur les evenements, qui précèdent l'affichage
du calendrier, permettent de les empiler, grâce à une variable
statique.
Il suffit donc de rajouter une 3e boucle qui vérifie la valeur de
date_debut et date_fin.

c'est tout fait dans le commit 27580
http://trac.rezo.net/trac/spip-zone/changeset/27580

Au passage, on pourrait simplifier l'écriture des 2 boucles
précédentes, en se basant sur #GET{'borne_debut_mois'} et
#GET{'borne_fin_mois'}

Le seul élément qui n'est pas visible en lisant le code du squelette
c'est qu'en fin de compte on retrouve le même comportement qu'un
doublon nommé

Pour palier à ce problème, j'utilise d'habitude un marqueur de 12bits
consécutifs : 1 pour chaque mois. La recherche des événements du > Oui, c'est incompréhensible au commun des mortels, et c'est une redondance

avec les infos de date qui sont deja dans date_debut et date_fin.
Tout ce que cela risque est d'entraîner des incohérences d'info.

Oui, tout à fait raison

Par ailleurs, le mini calendrier contenu dans le plugin agenda est obsolète
et devrait être supprimé au profit d'une dépendance avec la version à jour
de james.

Argh, je ne savais pas
(si ce n'est que j'avais vu qu'il n'était effectivement pas trop utilisé)

Enfin, il me semble que ce qui manque ce sont les 3 critères
{passe}
{en_cours}
{futur}
qui permettent de selectionner les evenements passé, en cours ou futur à la
date du jour, où à toute autre date avec un argument optionnel :

{passe #ENV{date}}
{en_cours #ENV{date}}
{futur #ENV{date}}

C'est +/- ce que j'ai voulu faire

.Gilles

2009/3/30 jeannot lapin <jeannolapin@laposte.net>:

d'autant qu'il suffit d'utiliser le critère agendafull et non pas agenda
pour que ca marche tout à fait correctement sans qu'il y ait besoin de faire
plusieurs boucles ou ajouter quoi que ce soit dans des tables.

Arf ! Je n'avais pas vu ce critère !
Je n'avais pas complètement décortiqué le code de SPIP :wink:
Ca semble plus court, en effet, mais ça reste un peut "magique", des
critères à 4 paramètres :slight_smile:

Du coup, Agenda 2 n'est plus du tout compatible avec spip 1.9.2, c'est
bien cela ? Bon, je ne l'ai jamais testé sur cette config, mais je
sais que certain l'utilisent sur des version 1.9.3 SVN.

.Gilles
---

La boucle EVENEMENTS dans le mini calendrier devient quelquechose dans ce
style:

BOUCLE_calendrier(EVENEMENTS)
{id_article}{id_mot?}
{agendafull date_debut, date_fin, mois, (#ENV{date}|annee),
(#ENV{date}|mois)}>[
(#DATE_DEBUT|Agenda_memo_full{#DATE_FIN,[(#TITRE|addslashes)],
#DESCRIPTIF,#LIEU,

[(#ENV{self}|parametre_url{#ENV{var_date},[(#DATE_DEBUT|affdate{'Y-m-d'})]})]})
]</BOUCLE_calendrier>[
(#ENV{date}|agenda_mini)

Je pense que le probleme d'une dependance du mini_calendrier de l'agenda2.0
avec la version toute seule du mini calendrier, c'est que la version toute
seule n'utilisera pas le critère agendafull mais agenda et ni
agenda_memo_full mais agenda_memo et on retrouvera le probleme d'evenements
qui ne s'affichent que sur un mois. Mais peut-etre que je me trompe.

Jeannot

cedric.morin@yterium.com wrote:

Le 30 mars 09 à 01:40, Gilles VINCENT a écrit :

Bonsoir à tous,

en fait le dernier commit que j'ai fais sur Agenda2 n'apporte qu'une
solution partielle au problème d'affichage des événements sur
plusieurs mois.

Cela fonctionne correctement s'il est sur janvier / février,
mais pas sur janvier / février / mars : alors, le mois de février
n'affichera aucune information.

Pour palier à ce problème, j'utilise d'habitude un marqueur de 12bits
consécutifs : 1 pour chaque mois. La recherche des événements du mois
se fait alors simplement avec un opérateur binaire.
Il me faut seulement rajouter un nouvel attribut à la table
spip_evenements.

Y voyez-vous un inconvénient ?

Oui, c'est incompréhensible au commun des mortels, et c'est une redondance
avec les infos de date qui sont deja dans date_debut et date_fin.
Tout ce que cela risque est d'entraîner des incohérences d'info.

Par ailleurs, le mini calendrier contenu dans le plugin agenda est
obsolète et devrait être supprimé au profit d'une dépendance avec la version
à jour de james.

Enfin, il me semble que ce qui manque ce sont les 3 critères
{passe}
{en_cours}
{futur}
qui permettent de selectionner les evenements passé, en cours ou futur à
la date du jour, où à toute autre date avec un argument optionnel :

{passe #ENV{date}}
{en_cours #ENV{date}}
{futur #ENV{date}}

Cédric

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 30 mars 09 à 12:37, Gilles VINCENT a écrit :

2009/3/30 jeannot lapin <jeannolapin@laposte.net>:

d'autant qu'il suffit d'utiliser le critère agendafull et non pas agenda
pour que ca marche tout à fait correctement sans qu'il y ait besoin de faire
plusieurs boucles ou ajouter quoi que ce soit dans des tables.

Arf ! Je n'avais pas vu ce critère !
Je n'avais pas complètement décortiqué le code de SPIP :wink:
Ca semble plus court, en effet, mais ça reste un peut "magique", des
critères à 4 paramètres :slight_smile:

Du coup, Agenda 2 n'est plus du tout compatible avec spip 1.9.2, c'est
bien cela ? Bon, je ne l'ai jamais testé sur cette config, mais je
sais que certain l'utilisent sur des version 1.9.3 SVN.

Non, agenda 2.0 c'est pour SPIP 2.0
Cédric