Agenda 2.0 et ultérieur

Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir.
La lecture de Calendrier Mini 2.0 est également chaudement recommandée, étant donné que Agenda 3 est dépendant de ce plugin.

Le portage du plugin Agenda pour SPIP 2.0 a été l’occasion de repenser et améliorer l’ergonomie de son interface. La version 2.0 du plugin agenda ne nécessite plus le plugin Widget Calendar, mais nécessite le plugin SPIP Bonux

La navigation dans les événements est directement accessible par un sous-menu du menu edition :

La présentation de ces événements délaisse le mode calendrier pour un affichage en liste plus pratique à l’usage.
Par défaut seuls les événements à venir sont affichés :

Ce fonctionnement évite d’encombrer l’affichage avec les événements passés toujours plus nombreux.

Un menu de navigation latéral permet d’afficher tous les événements, paginés, triés par date :

Le menu latéral inclut également une navigation antéchronologique par mois calendaire permettant l’affichage de tous les événements d’un mois

La liste centrale présente une vue résumée de chaque événement. Il est possible de voir plus de détails en cliquant sur le titre de l’événement :

Un lien [article] permet d’accéder à l’article qui contient cet événement :

On y retrouve exactement le même type de navigation, mais limitée aux événements de l’article.

Créer un nouvel événement

Le lien situé dans le bandeau titre de la boîte agenda permet de créer un nouvel événement

Modifier un événement

Lorsque vous dépliez un événement, un bouton [modifier] permet d’accéder à l’édition de l’événement.

Si l’événement est une répétition, il n’est pas possible de l’éditer directement. Dans ce cas le lien modifier est remplacé par un lien [source] qui permet d’accéder à l’événement source pour le modifier.

Edition d’un événement

Que ce soit lors de la création ou l’édition d’un événement, la saisie se déroule désormais sur une page indépendante dédiée :

Outre les champs habituels de titre et descriptif, vous y retrouverez la zone d’édition des dates de début et de fin. Une case à cocher toute la journée permet de ne pas sélectionner d’horaire.

Sur chaque champ de saisie de la date, une icone calendrier permet d’accéder à un mini calendrier de saisie.

Les répétitions sont saisies après la date de début et de fin, sur un calendrier de saisie dédié. Le principe des événements répétés et que l’heure de début et la durée sont toujours conservées de l’événement d’origine, mais seul les jours de début changent en prenant les valeurs cochées dans le calendrier des répétitions.

Après saisie, lorsque vous enregistrez votre événement, vous revenez sur la page d’origine avec ce seul événement affiché en détail :

Vous pouvez ainsi vérifier votre saisie.

Vous pouvez retrouver tous les événements, ou les événements à venir seulement, en cliquant sur les liens correspondants.

Squelettes et boucle EVENEMENTS

En ce qui concerne l’utilisation du plugin agenda dans les squelettes, vous pouvez vous référer à la documentation du Plugin Agenda pour SPIP 1.9.2.

Nouveaux critères

{evenement_a_venir} pour sélectionner les événements pas encore commencés à la date courante
{evenement_a_venir #ENV{date}} pour sélectionner les événements pas encore commencés à la date #ENV{date}
{!evenement_a_venir #ENV{date}} pour sélectionner les événements finis ou en cours à la date #ENV{date}

{evenement_en_cours} pour sélectionner les événements en cours à la date courante
{evenement_en_cours #ENV{date}} pour sélectionner les événements en cours à la date #ENV{date}
{!evenement_en_cours #ENV{date}} pour sélectionner les événements *pas* en cours à la date #ENV{date}

{evenement_passe} pour sélectionner les événements passés/finis à la date courante
{evenement_passe #ENV{date}} pour sélectionner les événements passés/finis à la date #ENV{date}
{!evenement_passe #ENV{date}} pour sélectionner les événements en cours ou pas encore commencés à la date #ENV{date}

Il est possible combiner ces 3 critères pour effectuer une sélection fine.

Pour un affichage sous forme d’agenda en case, voir SPIP 3, Agenda et FullCalendar ou encore Agenda Fullcalendar facile.

Discussion

616 discussions

  • 4

    J’ai rajouté le ? pour id_article et les événements s’affichent bien dans le mini-calendrier.

    Cependant dans le calendrier les dates sont bien prises en compte pour le premier mois, mais si l’évènement s’écoule sur 2 mois, les dates sont sans lien dans le calendrier, et sont cependant prises ne compte.

    Exemple : l’évènement du 26/04 au 02/05. Aucun lien en mai et pourtant
    http://www.chessnaute.com/spip.php?page=jour&date=2009-05-02

    <BOUCLE_calendrier(EVENEMENTS)
    			{id_article?}{id_mot?}
    			{agenda date_debut, 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)
    			] 
    • à Chessnaute,
      pour avoir les evenements a cheval sur deux mois, utiliser le critere agendafull et non agenda dans :

      {agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)}>[

      a remplacer par :

      {agendafull date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)}>[

    • Merci Jeannot,
      avec ta proposition j’avais un message d’erreur, aussi ais-je trouvé ceci
      agendafull date_debut,date_fin

      Cependant le dernier jour n’est pas pris en compte

    • oui pardon tu as raison, j’avais juste copié collé ta ligne de code en oubliant de corriger les parametres.
      La bonne ligne est donc bien :

      {agendafull date_debut, date_fin, mois, (#ENV{date}|annee), (#ENV{date}|mois)}>[

      Pour le probleme du dernier jour non pris en compte, voir mon commentaire du 9 février :
      http://www.spip-contrib.net/Agenda-2-0#forum413226

      Ca règle aussi ce probleme. Je n’avais en fait pas remarqué qu’il sucrait systématiquement le dernier jour mais juste qu’il n’affichait pas les evenements sur un jour sans horaires.

    • Bingo, c’est nickel.
      Merci beaucoup, je vais pouvoir corriger quelques sites.

    Répondre à ce message

  • 1

    Bonjour.
    Je suis novice, mais lorsque je clique sur l’installer dans spip, il se décoche tout seul et ne s’installe pas

    • « Bonjour. Je suis novice, mais lorsque je clique sur l’installer dans spip, il se décoche tout seul et ne s’installe pas » Il faut installer spip-bonux

    Répondre à ce message

  • Bonjour,
    Après avoir passé la journée à triturer les boucles, les codes et les diverses solutions proposées, j’en suis finalement au même point :(

    Je voudrais
    -  soit que le mini calendrier affiche l’ensemble des événements du même jour et non pas simplement le premier avec un lien vers l’évènement pour chacun d’entre eux. Au final, quelque chose d’assez près d’ABCalendar http://www.spip-contrib.net/Plugin-ABCalendrier,2686 mais avec affichage à la demande et géré par l’agenda et non un mot-clé. Je suis partie du principe que cela pouvait également être défini dans

    [(#DATE_DEBUT|Agenda_memo_full#DATE_FIN,[(#TITRE|addslashes|supprimer_numero)], #DESCRIPTIF,#LIEU,#URL_ARTICLE,[(#DATE_DEBUT|affdate’Y-m-d’)]])]

    par l’insertion d’une boucle récursive mais mes expériences de débutante ne m’ont pas permis de trouver de solutions ;

    -  soit, première solution de remplacement, adapter la contribution faisant référence à http://blog.jchristophe.fr/post/Installer-un-mini-calendrier-sur-SPIP-192 ;
    -  soit, deuxième solution de remplacement pour faciliter la tâche (du moins c’est ce que je pensais au début...), afficher directement l’agenda correspondant à la journée en cours mais l’agenda se bloque sur la journée en cours et refuse d’aller dans le futur. De même, il s’affiche à la base en mois pour passer en journée en survol

    [(#ENVtype, jour|agenda_connu)]

    Et voilà, je m’avoue vaincu car pas suffisamment agile en développement pour arriver à mes fins.

    Si quelqu’un a une idée, vu passer une contrib que j’aurai sauté...
    Bref, toutes les solutions sont les bienvenues !

    Répondre à ce message

  • En effet la page=agenda, ne marche pas chez moi non plus.

    Apres un rapide coup d’oeil dans le code, il semblerait que ca soit du a une modification dans le comportement de la fonction http_calendrier_init qui fait partie du coeur de SPIP et qui ne va plus chercher de parametre de date quand on l’appelle sans lui en donner.

    En apportant les modifications suivantes a la fonction agenda_affiche_full qui se trouve dans le fichier inc/agenda_filtres.php du plugin agenda2.0 ca marche chez moi :

    ajouter en tout debut de la fonction(vous pouvez bien evidemment supprimer les commentaires) :

    	/* On recupere la date a afficher dans le contexte SPIP */
    	global $contexte;
    	$mois = $contexte['mois'];
    	$jour = $contexte['jour'];
    	$annee = $contexte['annee'];
    	if (!$mois || !$jour || !$annee) {
    		$date_agenda = ''; /* si il manque un des elements, date vide, http_calendrier_init mettra la date courante */
    	}
    	else { /* sinon on cree une date a partir des informations du contexte pour la donner en parametre a http_calendrier_init */
    		$date_agenda = mktime(0,0,0,$mois,$jour,$annee);
    	}

    Qui sert a recuperer dans le contexte SPIP les valeurs de la date passee dans l’URL

    (on aurait pu faire aussi avec $_GET mais ca me semblait plus coherent d’utiliser le contexte SPIP, notez que c’est la premiere fois que je mets le nez dans le code de SPIP et que donc je suis pas forcement trop dans la philosophie de codage du truc, mais j’essaye de respecter autant que faire se peut)

    ensuite il faut donc modifier l’appel a la fonction http_calendrier_init qui se trouve tout a la fin de la fonction agenda_affiche_full (juste avant le return) pour y ajouter le parametre de date crée au début.

    Donc remplacer :

    original :

    $texte=http_calendrier_init('', $type, '', '', self(), $evt);

    par : modifie :

    $texte=http_calendrier_init($date_agenda, $type, '', '', self(), $evt);

    Comme précisé plus haut, je ne fais pas partie de l’équipe de dev du plugin ni de SPIP donc c’est de la réparation provisoire en attendant qu’une version officielle et qui marche sorte.

    Répondre à ce message

  • 1

    Bonsoir,
    mille mercis pour ce plugin qui marche bien chez moi (excepté le mini-calendrier, mais je ne l’utilise pas)

    et ce pb avec la page spip.php ?page=agenda :

    elle n’affiche que le mois courant. et impossible de voir les autres mois.
    auriez-vous une idée ?
    merci d’avance !

    voir ici :http://www.lapoesienuit.com/spip.php?page=agenda

    (spip 2.0.3 / agenda 2.0 du 29/01/09 / spip-bonux d’aujourd’hui)

    • Même problème depuis la mise à jour SPIP 2.0.3 et spip bonux (agenda qui reste sur le mois en cours)
      J’ai remarqué aussi que l’agenda du backofiice ne fonctionne plus correctement, il fait une mise en abime du backoffice au lieu d’afficher le calendrier.

    Répondre à ce message

  • à Eric Luyckx et pixys

    Salut,
    chez moi non plus le mini calendrier ne marchait plus, sans que le problème soit lié a la boucle evenements du mini-calendrier.html que j’avais de toute facon modifié et qui marchait sur SPIP1.9.2

    En fait le mini calendrier ne m’affichait que certains evenements :
    -  ceux qui durent plusieurs jours
    -  ceux qui durent un jour et ont des horaires de debut et de fin avec celui de fin different de 0h00.

    par contre donc il ignorait superbement les evenements sur un seul jour et sans horaires (ou avec debut et fin egal a 0h00)

    Est-ce le cas par chez vous aussi ?

    J’ai legerement modifié le plugin pour qu’il affiche aussi ces evenements la, mais bon je suis pas hyper sur de mon coup :

    remplacer la ligne 129 de inc/agenda_filtres.php :

    originale :

    while (($ts_startday1<$ts_date_fin)&&($maxdays—>0))

    modifiée :

    while (($ts_startday1<=$ts_date_fin)&&($maxdays—>0))

    depuis ca marche nickel mais bon j’utilise pas toutes les fonctionalités etc... donc c’est pas dit que ca n’ait rien cassé ailleurs.

    Répondre à ce message

  • blackbird

    Du coup il n’y a aucun agenda pour la 2.0... snif..

    Répondre à ce message

  • sugardaddy

    Bonjour,
    Je rencontre un souci lors de l’affichage des événéments.
    Je trie par date inverse les événements dont age<0 et je ne sors que les dates principales mais pas les répétitions.
    Est-ce le fonctionnement normal du plugin ?
    Merci d’avance !!

    Répondre à ce message

  • Eric Luyckx

    réponse à Julie

    non ce n’est pas le problème. ne fonctionne ni avec id_article ? ni avec branche ? (config précédente avant passage en 2.0)

    Répondre à ce message

  • Eric Luyckx

    chez moi non plus, il ne fonctionne plus ??? y compris dans demo_calendrier_mini

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom