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

  • 5

    Merci fanch pour l’info,

    tu installes cette commande a quel endroit exactement pour qu’elle soit visible ?

    • L’agenda fonctionne enfin correctement (semble-t-il) dans la zone publique. J’ai modifié la fonction agenda_affiche_full dans le fichier agenda_2_0/inc/agenda_filtres.php, des lignes 208 à 222, qui deviennent :

      	if ($type != 'periode'){
      		$evt = array($evt_sans, $evt_avec);
      		$j=_request('jour'); $m=_request('mois'); $a=_request('annee');
      		if ($j != NULL && $j != NULL && $j != NULL)
      			$start = mktime(0,0,0, $m, $j, $a);
      		else $start = mktime(0,0,0);
      	} else {
      		$d = array_keys($evt_avec);
      		$mindate = min($d);
      		$min = substr($mindate,6,2);
      		$max = $min + ((strtotime(max($d)) - strtotime($mindate)) / (3600 * 24));
      		if ($max < 31) $max = 0;
      			$evt = array($evt_sans, $evt_avec, $min, $max);
      		$start = strtotime($mindate);
      	}
      
      	include_spip('inc/agenda');
      	$texte=http_calendrier_init($start, $type,  _request('echelle'), _request('partie_cal'), self('&'), $evt);

      Remarques : a priori, on peut copier et modifier le code de la fonction agenda_affiche_full dans le fichier mes_fonctions.php à la racine des squelettes. Je ne sais pas exactement ce que que l’on attends du type période, je n’y ai pas apporté de modifications.

      Si cela peut aider quelqu’un en attendant une mise à jour de ce plugin fort pratique...

    • fifizen, si j’ai bien compris ta question :

      A priori, tu peux la placer où tu veux. Pour ma part, j’ai un onglet Agenda dans ma page sommaire qui ouvre une page spécifique dans laquelle le calendrier occupe simplement la partie contenu. La voici :

      <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
      <head>
      	<title>[(#NOM_SITE_SPIP|textebrut)] - [(#URL_SITE_SPIP|textebrut)]</title>
      	[<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|textebrut)" />]
      	<INCLURE{fond=inc-head}>
         <link rel="stylesheet" href="#CHEMIN{css/agenda.css}" type="text/css" />
         <meta name="robots" content="none" />
      </head>
      <body id="top">
      <INCLURE{fond=inc-entete}>
      <div id="contenu">
      <INCLURE{fond=hierarchie}{id_rubrique}{nompage=<:agenda:>}>
      <div id="agenda_#ENV{type, mois}">
      [(#ENV{type, mois}|agenda_connu)<INCLURE {fond=noisettes/agenda_#ENV{type,mois}}{type}{delais=900}{annee}{mois}{jour}{echelle}{partie_cal}{theme}>]
      </div><!-- fin agenda -->
      </div><!-- fin contenu -->
      <INCLURE{fond=inc-pied}>
      </body>
      </html>

      À noter l’appel au fichier d’aspect agenda.css, qui se trouve dans squelettes-dist/css que tu peux copier dans un répertoire css de ton squelette pour le modifier à loisir.

    • Bonsoir fanch, pas facile quand on n’a pas les bases ...

      Je vais teste demain, la je pige pas trop ce soir ! Passer trop d’heure sans succes.

      Pour ma part ce sera aussi de la meme façon :

      Rubrique agenda avec un article a l’interieur pour pouvoir voir l’agenda.
      Dans ce cas, quel est le fichier html qu’il faut modifier.

      J’ai bien compris qu’on pouvait mettre le code a peu pres n’importe ou mais j’ai peur de faire une annerie !

      merci encore !

    • Alain F

      Bonjour,

      J’ai fait un bête copier-coller de la solution de Fanch, (merci Fanch) et brusquement, l’agenda fonctionne, on retrouve la navigation dans les mois et l’affichage du mois, d’ailleurs... Mais j’ai un autre problème. Les titres des événements s’affichent sans retour ligne, ce qui créé un tableau immense ! Et j’ai donc le plus grand mal à l’insérer dans mon squelette...

      Spip 2.0.6
      http://www.angouleme.fr/museeba/spip.php?page=agenda

      Si quelqu’un a une solution... il sauverait plusieurs sites d’un coup !

      Merci,

      Alain

    • Alain F, pour la longueur des textes j’utilise le filtre couper pour les limiter. Par exemple dans la noisette agenda_mois.html :

      ...enda_memo_full{#DATE_FIN,[(#TITRE|couper{22})],#DESCRIPTIF,...

      la petite fenêtre dynamique donnant plus de détails en montrant le texte #DESCRIPTIF au passage de la souris. L’aspect de l’agenda peut être adapté en utilisant et modifiant agenda.css.

      Fanch

    Répondre à ce message

  • 1
    philippe

    Bonjour,

    Lorsque je crèe un nouvel évènement , j’ai une case à cocher ’Inscription’ et une zone de saisie ’Limiter le nombre de places’ qui apparaissent dans le formulaire entre ’descriptif’ et ’lieu’, l’idée semble sympatique pour gérer des évènements avec un nombre de places limitées mais comment celà marche-t-il ?

    Merci d’avance

    • je suis aussi interressé par cette fonction afin de gérer un calendrier de stages par exemple

    Répondre à ce message

  • 2

    Bonjour, svp j’ai l’affichage de cette erreur sur ma page d’accueille du sommaire concernant l’affichage de l’agenda. S’il y’a quelqu’un qui peu m’aider s’il te plais.

    Erreur : filtre « Agenda_moisdecal2 » non défini

    • Bonjour,

      J’ai toujourcle problème de l’affichage de l’agenda dans l’espace public qui se fait de façon incomplet, ci joint une image d’ecran illustrant ce que la page du sommaire me sort comme message d’erreur.
      Je remercie d’avance celles ou ceux qui essai de m’aider à resoudre ce problème.

    • Si tu es sur un système unix, peux-tu lancer à la racine de ton site une commande de type :

      find . -name "*.*" -exec grep -l moisdecal2 {} \;

      qui te donnera le fichier qui utilise ce filtre ?

      Cela vient peut-être d’une erreur de syntaxe dans la noisette d’affichage du mini calendrier ou de l’utilisation d’un ancien filtre personnalisé...

    Répondre à ce message

  • 2

    Agenda 2.0 sur spip 2.0.6
    Sur l’interface privée, lorsque l’on est dans le menu activité éditoriale et que l’on souhaite afficher la semaine précédente ou le calendrier mensuel,... il y a un deuxième menu de navigation qui apparait – et c’est le mode agenda qui apparaît par défaut et pas l’activité éditoriale.
    Merci
    Sinuhe

    • Jeannot

      bonjour,

      je n’ai pas trouvé de moyen simple de résoudre le problème de l’affichage d’une autre semaine dans l’activité éditoriale que de modifier un fichier de spip. Il y aurait bien un autre moyen d’arriver a faire fonctionner ca correctement mais ca necessite plus de modifs dans le plugin. Il faudrait voir avec les gens qui s’occupent de ce plugin si la solution que je propose ici est satisfaisante et peut etre integrée à spip ou si il faut en trouver une autre.

      Pour faire court et si vous voulez résoudre le probleme au moins temporairement :

      Dans votre dossier squelettes, creer un dossier exec, y copier le fichier joint et le renommer calendrier.php à la place de calendrier.html, ca aura pour effet de detourner l’utilisation du ficher spip/exec/calendrier.php vers celui la. Par la suite, si le probleme est resolu(regarder les logs des mises a jour du plug in), penser a effacer ce fichier pour reutiliser le calendrier.php de spip et ainsi profiter des mises à jour.

      Ce que ca fait dans le detail :

      pour afficher l’activité editoriale ou l’agenda, le plugin verifie la valeur du parametre mode dans l’URL, il appelle ensuite une fonction : exec_calendrier_dist (dans le fichier exec/calendrier.php) qui va construire le calendrier et passer l’url qui va bien pour servir de base aux liens partant du calendrier. Malheuresement, le parametre mode qui est specifique au plugin agenda n’etait pas pris en compte. J’ai donc juste ajouté la propagation de ce parametre quand il est présent.

      L’autre solution serait d’avoir un parametre mode=agenda pour afficher l’agenda et d’avoir donc par defaut l’activité éditoriale, on n’aurait donc pas besoin de toucher a exec/calendrier.php.

    • Jeannot

      et si comme moi ca vous agace que au chargement le calendrier de navigation sur 3 mois s’affiche alors qu’il est plus agreable qu’il reste cache et n’apparaisse que quand on survole le logo a gauche de la barre de navigation dans le calendrier, il vous faut aller trafiquer un peu le fichier spip/ecrire/inc/agenda.php
      Attention, la modif disparaitra a la prochaine mise a jour de SPIP (ou sinon vous pouvez faire comme expliqué avec calendrier.php dans mon post precedent et dupliquer le fichier dans votre repertoire squelette en creant cette fois ci un dossier inc pour le mettre)

      Bref il s’agit de remplacer la ligne 1025 (j’utilise spip2.06 et je ne sais pas si cette ligne est au meme numero dans les versions precedentes, quoiqu’il en soit elle se trouve dans la fonction http_calendrier_invisible) :

      . "<table id='$id' class='calendrier-cadreagenda'>\n<tr><td colspan='3' style='text-align:$spip_lang_left;'>";

      par

      . "<table id='$id' class='calendrier-cadreagenda' style='display:none'>\n<tr><td colspan='3' style='text-align:$spip_lang_left;'>";

      en gros on ajoute style=’display:none’ a la table qui est la cible du show/hide de jQuery au survol du logo, ce qui a pour effet de ne pas l’afficher au chargement.

    Répondre à ce message

  • 1

    Bonjour, à tous

    Je m’occupe de la mise en ligne d’un site associatif sous SPIP 2.06 + Sarkaspip 3.
    J’ai installe l’AGENDA sans encombre et fais un essai.

    J’ai creer un evenement pour un article, mais il ne s’affiche pas en public.
    Il y a je suppose quelque chose que j’ai louper.

    Une ligne de commande a rajoute quelque part ?

    merci d’avance ;)

    • J’appelle les noisettes d’affichage de l’agenda par :

      [(#ENV{type, mois}|agenda_connu)<INCLURE {fond=noisettes/agenda_#ENV{type,mois}}{type}{delais=900}{annee}{mois}{jour}{echelle}{partie_cal}{theme}>]

      et les événements du mois ou de la semaine s’affichent ... mais le calendrier reste figé dans mon cas.

    Répondre à ce message

  • Cela fait plusieurs que j’essaye d’utiliser les noisettes agenda_* dans la zone publique. L’agenda s’affiche mais reste complètement figé : les changements de mois, de jour, d’echelle n’ont aucun effet (je peux par-contre passer changer de mode semaine-jour-mois).

    Je viens de résoudre à la serpe mon problème en modifiant le filtre agenda_affiche_full, en fait l’appel à la fonction d’affichage :

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

    qui devient :

    if (count($d))
    $mindate = min($d) ;
    $start = strtotime($mindate) ;
    else
    $mindate = ($j=_request(’jour’)) * ($m=_request(’mois’)) * ($a=_request(’annee’)) ;
    if ($mindate)
    $start = mktime(0,0,0, $m, $j, $a) ;
    else $start = mktime(0,0,0) ;

    http_calendrier_init($start, $type, _request(’echelle’), _request(’partie_cal’), self(’&’), $evt) ;

    qui tient compte de la date demandée $start et qui est tiré du filtre agenda_affiche de spip.

    Je ne connais pas PHP, est-ce que cette modification est juste ? en tout cas elle semble fonctionner...

    Répondre à ce message

  • Sinuhe - Italy

    Bonjour et merci pour le boulot !
    Est-ce qu’il est possibile de me donner les cohordonnées pour traduire le plugin (la partie privée) en italian ? J’ai essaié de le faire, en trasformant le fichier agenda_fr.php en agenda_it.php et en le traduisant mais cela ne marche pas, et le site entier se plante. Meme en traduisant en italien agenda_en.php etc.
    Merci

    Répondre à ce message

  • Il fut un temps où on pouvait enregistrer plusieurs événements en une seule fois. Je ne trouve plus cette fonction très utile dans cette version. A-t-elle été supprimée ? est-elle cachée ? !

    Répondre à ce message

  • 4

    Bonjour à tous,
    Ce plugin me semble très intéressant mais je n’arrive pas à le faire fonctionner (avec spip 2.0.5.) :
    -  Dans la partie privée, l’affichage présente de nombreuses aberrations : par exemple si je clique sur « activité éditoriale » les boutons de navigation ne sont plus actifs ou plutôt renvoient un 2e affichage de « agenda » ; dans la saisie d’un évènement, les petits calendriers ne sont pas actifs, etc.
    -  Quant à la partie publique, je peux ouvrir une page agenda, mais elle reste figée et les boutons de navigation par date ne sont pas actifs.

    Est-ce que quelqu’un à testé ce plugin avec spip 2.0.5 et a pu le faire fonctionner ?
    Merci par avance de votre aide.
    Jean-François

    • il fonctionne très bien de mon côté sur du 2.0.5...

    • Merci de votre réponse.
      J’ai refait l’installation du plugin, mais je continue d’avoir des aberrations d’affichage dans la section privée.
      Pour l’affichage public, pourriez-vous m’indiquer quels fichiers ou boucles vous avez incorporé dans le squelette, et où ? J’ai essayé de suivre le mode d’emploi indiqué (cf le renvoi sur spip 1.9.2), mais sans succès !
      En espérant ne pas abuser de votre aide...
      Jean-François

    • J’ai eu le même souci et je viens de le résoudre en supprimant, par FTP, des plugins non utilisés (notamment fckeditor).

    • Cecilou

      Salut,
      Je pense que j’ai le même problème que toi ? Sur l’interface privée, lorsque l’on est dans le menu activité éditoriale et que l’on souhaite afficher la semaine précédente ou le calendrier mensuel,... il y a un deuxième menu de navigation qui apparait – et c’est le mode agenda qui apparaît par défaut et pas l’activité éditoriale. Un gros bug quoi !!!

      Y a quelqu’un qui planche sur la question et qui sait comment on fait pour afficher correctement l’activité éditoriale et cet agenda que je trouve vraiment très pratique à utiliser ?

      S’il n’y a pas de solution c’est la galère ! Faut revenir à la version antérieure de l’agenda (1.9) qui ne fonctionne que sur les versions 1.9 de SPIP ?! Gllupsss...

    Répondre à ce message

  • Bonjour

    Il semblerait que dans le cas de répétition, le lieu est bien répété mais pas l’adresse.

    A part aller bidouiller dans les tables directement avez vous une solution ?

    Merci d’avance.

    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