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

  • 1

    Bonjour,
    Je suis totalement novice en spip.
    J’ai installé Spip 2.0.7 sur mon serveur.
    J’ai créé le dossier “plugins” à la racine de mon site.
    J’y ai dézippé les dossiers : “widget_calendar_1_9” et “agenda_2_0”
    Discipliné je continue ma marche à suivre : “Une fois installés, rendez-vous au menu “Configuration” à “Gestion des plugins” et cochez les cases “Activer le plugin” en regard de Agenda et Widget Calendar”

    Et voilà le message d’erreur qui s’affiche sur un bandeau noir au dessus de mes plugins :

    Impossible d’activer le plugin agenda_2_0
    Nécessite le plugin SPIP_BONUX en version [1.3;] minimum.
    Impossible d’activer le plugin widget_calendar_1_9
    Nécessite SPIP en version [1.9.0;2.0.0) minimum.

    Qu’ai-je zappé dans ma démarche ?
    Mercie d’avance

    • Je viens de rajouter une phrase en gras en debut de page :
      “La version 2.0 du plugin agenda ne nécessite plus le plugin Widget Calendar, mais nécessite le plugin SPIP Bonux”

    Reply to this message

  • 8

    Bonjour,
    Merci pour ces différentes contrib et remarques qui m’ont largement aidée. Seul l’affichage des événements à partir du mini calendrier me perturbe encore.
    Aussi, je persiste un peu et reprends l’idée de Pimousse car j’ai le même désir !

    •31 décembre 2008 11:55 , par Pimousse
    Agenda 2.0
    Bonjour, Je cherche à faire apparaître les événements d’un jour en dessous du mini-agenda, lors du clic de la date correspondante. Le clic sur un événement renvoyant à l’article correspondant.
    J’ai vu cela sur un site (http://www.diocese-frejus-toulon.com/) et j’essaie d’éplucher la page...
    Si quelqu’un peut me donner un coup de pouce, car j’ai un peu de mal avec mes noisettes... ce serait super. Et bonne année !

    Mais comme je n’y connais rien en php, je suis coincée.
    Merci à ceux qui auraient l’énergie de se plonger sur le problème.

    • bonjour,
      voila en attache un exemple de calendrier-mini.html qui fait en gros ce que fait le site (http://www.diocese-frejus-toulon.com/). Il y a quand meme une petite difference c’est que par defaut, les evenements du jour courant (si il y en a) seront affichés.

      Je pense qu’il y a moyen (toujours sans toucher le PHP) de faire en sorte que ca ne soit pas le cas, mais je ne trouvait pas ca génant. Si c’est un vrai probleme, fais moi savoir.

      En gros le principe c’est:

      • premierement de ne passer à la fonction Agenda_memo_full de la boucle calendrier aucun parametre d’affichage (#TITRE, #DESCRIPTIF etc...) et surtout l’url de la page courante. (#SELF), ce qui permet, quand on cliques sur une date de rester sur la page.
      • ensuite on récupère dans une div placée sous la table du mini calendrier et par une boucle EVENEMENTS, tous les evenements du jour (soit le jour courant si rien n’est specifié, soit passé en parametre dans l’url par un clic dans le mini calendrier). Ensuite on n’a qu’a placer le texte qu’on veut et un lien vers les articles, dans mon exemple seul le titre (#TITRE) de l’evenement apparait mais rien n’empeche d’utiliser d’autres champs de l’evenement ou meme de l’article. J’ai ajouté dans le lien vers l’article le parametre de date courant - parametre_url(...) - pour que le mini calendrier (qui est affiché en navigation sur toutes les pages chez moi) reste à la bonne date, mais si le mini calendrier n’apparait pas sur les pages d’articles, c’est inutile de le faire.
    • Merci Jeannot pour tes conseils éclairés.
      Je zappe encore quelque chose car j’ai créé deux boucles dissociées sans correspondance...
      Et évidemment, ce sont tous les événements du mois qui s’affichent !
      Voici mes boucles :

      ...
      <:date_jour_1|spip_substr{0,1}|strtoupper:>
      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,'', '', '', [(#SELF)],''}) ]
      /BOUCLE_calendrier
      [(#ENV{date}|agenda_mini)]
      B_agenda
      Evénéments du [(#ENV{date}|affdate_jourcourt)]
      BOUCLE_agenda(EVENEMENTS){id_article?}{id_mot?}{agendafull date_debut, date_fin, mois, (#ENV{date}|annee), (#ENV{date}|mois)}
      #TITRE #LIEU [(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})]
      /BOUCLE_agenda
      /B_agenda
    • le probleme se trouve dans la seconde boucle (qui par ailleurs et j’avais oublié de le préciser dans mon message precedent, doit avoir les meme criteres que la première - hors agendafull bien entendu- , comme tu l’as fait). le probleme donc se trouve dans l’appel au filtre agendafull, tu lui precises comme periode ’mois’ et tu ne lui donnes pas de date de jour:

      <BOUCLE_agenda(EVENEMENTS){id_article?}{id_mot?}{agendafull date_debut, date_fin, mois, (#ENV{date}|annee), (#ENV{date}|mois)}>

      en remplacant la ligne par:

      <BOUCLE_agenda(EVENEMENTS){id_article?}{id_mot?}{agendafull date_debut, date_fin, jour, (#ENV{date}|annee), (#ENV{date}|mois), (#ENV{date}|jour)}>

      ca devrait marcher

    • :( Il prend toujours l’ensemble des événements du mois (mais ça avance :-) ).

    • Pimousse

      Bonjour Jeannot,
      Merci pour cette solution, ça marche très bien... à un petit détail près : depuis ma page sommaire, pas de souci. Mais depuis les autres pages, l’affichage des événements du jour ne se fait pas... Quelque chose à rectifier dans l’url, peut-être ?...

    • Jeannot

      ca devrait pourtant marcher, peut-etre un probleme de passage de variable d’environement quand tu inclus le mini-calendrier?
      L’URL des liens dans le calendrier me semble correcte, c’est a croire qu’il ne recoit pas la variable date quand il est inclus dans des pages qui ne sont pas le sommaire, c’est etrange.

      Si tu peux, laisse l’acces a ton dossier squelette, j’y jetterai un coup d’oeil.

    • Pimousse

      Merci Jeannot,
      j’ai fait une manip pour ça, je ne sais pas si ça suffira ?

    • Jeannot

      Salut Pimousse,

      tu noteras aussi que les autres mois ne sont pas accessible quand tu n’es pas sur le sommaire, en fait je pense que ca vient de l’endroit ou tu insères la balise #CALENDRIER_MINI. J’ai juste regardé pour ton rubrique.html et tu insères la balise à l’intérieur de la boucle _principal(RUBRIQUES) et du coup le paramètre #ENV(date) du mini calendrier n’est pas le paramètre date de l’URL mais la date du contexte de la boucle(dernière modification de la rubrique). Voir la section contexte de date.

      Il faudrait donc que tu sortes

      <div id="droite">
      #CALENDRIER_MINI{#ENV{date},'date',#SELF}
      <INCLURE{fond="menu_droit"}>
      </div>

      de la boucle _principal.

      et avec peut-être un petit tripatouillage dans tes css pour récupérer la mise en page ca devrait marcher. J’imagine que le problème est identique sur les autres pages.

      En fait une autre solution serait d’utiliser une autre variable que ’date’ pour le mini calendrier, mais ca ne marche pas pour l’instant.

    Reply to this message

  • jérome

    hey!

    pour le #CALENDRIER qu’on ne peut pas personnaliser comme avec la version 1.9.2, on fait comment?
    quelqu’un aurait une piste?

    merci

    Reply to this message

  • Bonjour,
    Il semble y avoir incompatibilité entre ces deux plugins. Versions de spip 2.0.7.
    Cordialement,

    Reply to this message

  • Hello,

    J’ai cherché (peut-être mal, dans quel cas je m’excuse)

    et je n’ai pas trouvé un moyen pour afficher une date en cours quand elle est répartie sur plusieurs jours,

    c’est à dire que lorsque le jour de début de l’événement est passé, l’évènement disparait (passe dans les archives dans mon cas...à

    y aurait-il une solution simple?

    merci d’avance

    Vince

    Reply to this message

  • penchaki

    Bonjour,

    je souhaite que les admin restreint du site puissent editer des évenements directement depuis l’espace public ...
    J’utilise donc : #FORMULAIRE_EDITION_EVENEMENT dans une boucle ARTICLE ...
    le formulaire d’édition n’apparait pas ...
    je me répond à moi-même cela peut servir


    dans le dossier formulaire du plugin : editer_evenement.html
    Donc le #FORMULAIRE_EDITION_EVENEMENT ==> devrait être #FORMULAIRE_EDITER_EVENEMENT
    avec ce nouveau nom ça marche ...


    le lien
    <:agenda:titre_cadre_ajouter_evenement:>

    ne fonctionne pas ... mais là je n’ai pas d’idée ?
    Ce serait mieux d’avoir un lien pour ajouter l’événement et aussi récupérer l’id de l’article de la page en cours ...

    merci de vos réponses

    Reply to this message

  • Bonjour, hier soir j’avais un problème pour l’affichage des évènements dans le mini calendrier.
    Cela venait en fait, des conditions des boucles dans la page “calendrier_mini.html”. L’erreur que j’avais fait c’est que j’avais nommé ma page agenda.html à la racine de mon squelette, hors dans le squelette par défaut de spip il y a une page agenda.html, il y avait donc un conflit !! Par conséquent, si je modifiais la boucle, j’obtenais un affichage bizzard dans toute la page (mélange de l’agenda par défaut...).
    Donc à retenir :
    -  faire attention a ne pas nommer la page “agenda.html”
    -  si vous utilisez le mini calendrier dans une rubrique faire attention car possibilité de conflit avec #ENVdate !! (il vaut mieux créer une page à la racine de votre squelette)

    voilà !!

    Reply to this message

  • Bonjour à tous, j’ai installé ce plugin sans problème seulement j’ai un problème avec le mini calendrier, il ne détecte pas les dates entrées. J’ai bien une distinction du jour mais aucune concernant les dates entrées et ça ne vient pas du CSS, puisque dans le code source que génère la page je n’ai aucune une ligne avec la classe “occupe”. Quelqu’un a déjà rencontré ce problème ? merci d’avance

    Reply to this message

  • joseluis

    Qu-est que j’ai de faire pour montrer les evenements et ne pas l’activité editorial dans la parte publique de la agenda 2.0 sur spip 2.0.6?

    Merci

    Reply to this message

  • Bonjour,

    je débute en SPIP alors désolé si mes questions sont un peu à coté de la plaque, je suis en plene phase d’apprentissage.

    Je voudrais utiliser le mini-calendrier mais j’ai quelques problèmes. J’ai utilisé la balise #CALENDRIER_MINI#ENVdate,’date’,#SELF . Voici les problèmes que je rencontre :
    -  le 1er affichage se fait bien mais si je veux changer de mois il réaffiche toujours le mois courant. En cherchant un peu, j’ai vu que le squelette formulaires/calendrier_mini.html utilisait #ENVdate un peu partout, et cela affiche la date courante, du coup ça expliquerait mon problème. En changeant tous les #ENVdate en #ENVcal et tous les #ENVvar_date en ’cal’ par exemple, ça fonctionne.
    -  j’ai remarqué que l’affichage des jours se fait à l’aide de la fonction agenda_mini qu se trouve dans agenda_fonctions.php. J’aimerais pouvoir personnalisé cette partie (par exemple faire en sorte que les jours des mois suivants et précédents ne soient pas des liens). En modification directement ce fichier ça fonctionne, mais je ne suis pas sûr que ce soit la meilleure façon de faire de modifiier directement le plugin. Y a t il un mécanisme de surcharge, comme pour les squelettes ?
    -  par rapport à ma question précédente, j’aimerais également comprendre pourquoi cette partie est faite avec une fonction PHP. Cela n’aurait-il pas été réalisable avec un squelette ?
    -  enfin dernière question : lorsqu’un evenement est présent dans le mois, le jour en question est bien cliquable dans il ne renvoit vers aucun article. A priori cela viendrait du fait que la valeur de $evts[0][’URL’] est vide ($evts[0][’SUMMARY’] contient bien le titre de larticle associé). Quelle variable dois-je utiliser ?

    Désolé ça fait beaucoup de questions !

    Merci d’avance

    Thomas

    Reply to this message

Add a comment

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom