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

621 discussions

  • 4
    Jérôme

    Bonjour,

    J’utilise la dernière version de Spip (4.4.4) et la dernière version du plugin Agenda (5.1.0).
    Comment afficher l’événement ? Il ne s’affiche pas avec l’article avec lequel il est lié.

    • ca depend du squelette utilisé. quel est celui que vous utilisez?

    • Jérôme

      Bonjour,

      J’utilise «article.htm»l.

    • Non mais je veux dire: c’est votre squelette personnalisé ? ou bien c’est un jeu de squelette existant par ailelurs ?

      si c’est personnalisé, et ben il faut mettre les bonnes boucles et balises dedans (cf la documentation).

    • Non, ce n’est pas un squelette personnalisé.

    Reply to this message

  • 3
    Etienne

    Bonjour,
    Sur une site avec un formulaire de création d’événement dans l’espace public. Jusqu’ici les événements étaient publiés sans modération, ce que je souhaite changer.
    Dans la configuration d’agenda, j’ai donc décoché « publier automatiquement avec l’article lié » et coché « notifier les propositions aux admins ».
    Effectivement les événements ne sont plus publiés automatiquement et apparaissent en attente de validation dans l’espace privé.
    Mais je ne reçois pas de notification par mail. Quelqu’un a une idée pourquoi ?
    Conflit possible avec mailshot et/ou facteur configuré pour mailjet ? (par ailleurs les envois de newsletter fonctionnent.)
    Merci de vos lumières !

    • Juste pour vérifier : tu as coché la case notification sur ecrire/?exec=configurer_agenda ?

      dd

    • Etienne

      J’ai coché “notifier aux admins les propositions et publications d’évenements”.

    • Bonjour,

      Il vous faut utiliser le plugin champ extra, éventuellement à l’aide de champ extra interface.

    Reply to this message

  • Bonjour, serait-il possible d’ajouter des champs à ce plugin comme un champ tarifs... ?

    Reply to this message

  • 2

    Bonjour,
    dans une boucle, je souhaite afficher les événements lié à un mot clé particulier d’un ou plusieurs articles. Voici ma boucle :

    <BOUCLE_ARTICLES(ARTICLES){id_mot=93}><B_EVENT_AVENIR2><BOUCLE_EVENT_AVENIR(EVENEMENTS){id_article}{age_fin<=0}{age_debut>=-90}{par date_debut}{statut=publie}>#TITRE</BOUCLE_EVENT_AVENIR></B_EVENT_AVENIR></BOUCLE_ARTICLES>

    Mais le résultat affiché ne me convient pas car je souhaite afficher le résultat par date de début de l’événement. Pourriez vous m’aider ?

    Reply to this message

  • 8

    Bonjour

    Suite à une mise à jour, il n’est plus possible de sélectionner des événements dans un formulaires généré par formidable.

    Voilà l’erreur que j’ai sur l’interface privée

    Erreur d’exécution ../plugins/auto/agenda/v5.1.0/saisies/evenements.html | File […]/ecrire/inc/filtres.php Line 2248 : Unsupported operand types: string - int

    Ma configuration
    * PHP 8.3 (testé aussi avec le même problème en php 8.2)
    * SPIP 4.3.4
    * Agenda 5.1.0
    * Formidable 6.6.0
    * Saisies pour formulaires 5.9.0

    L’erreur apparaît sur un champ existant (et fonctionnel en spip 4.2/Agenda 5.0.3/php 7.4 ), ainsi que dès que l’on ajoute un nouveau champ de type événements

    Avez-vous une idée d’où vient le problème ?

    • Je suis étonné parce que j’utilise agrément cette saisie, et je n’ai pas constaté. J’imagine que cela doit arriver dans des cas spécifiques.

      Un export yaml du formulaire permettrait d’y voir plus clair.

    • Ca le fait aussi sur un formulaire tout juste créé. Je ne peux même pas éditer le champ.

      id_formulaire: '7'
      identifiant: test
      titre: 'test '
      descriptif: ''
      css: ''
      message_retour: ''
      saisies:
        -
          saisie: evenements
          options: { nom: evenements_1, label: Événement, sql: 'TEXT DEFAULT '''' NOT NULL' }
          identifiant: '@6740a56db6d73'
      traitements:
        enregistrement:
          moderation: posteriori
          moderer_admins: ''
          multiple: 'on'
          modifiable: ''
          effacement: ''
          effacement_delai: ''
          identification: ''
          variable_php: ''
          unicite: ''
          message_erreur_unicite: ''
          anonymiser: ''
          ip: ''
          invalider: ''
          resume_reponse: ''
          analyse_exclure_champs: ''
          identification_reponses: ''
      public: non
      apres: formulaire
      url_redirect: ''
      statut: publie
      date_creation: '2024-11-22 15:38:36'
      maj: '2024-11-22 16:39:03'
      
      
    • J’ai essayé avec la meme configuration, et je ne reproduis pas. En plus il y n’a pas eu de modification sur la ligne concernés depuis belle lurette.

      La fonction PHP qui couine est celle là. https://git.spip.net/spip/spip/-/blob/v4.3.4/ecrire/inc/filtres.php?ref_type=tags#L2248

      Ca semble correspondre à cette ligne https://git.spip.net/spip-contrib-extensions/agenda/-/blob/5.1.0/saisies/evenements.html?ref_type=tags#L36

      tout se passe comme si le nombre d’inscription n’était pas un nombre, mais une chaine. Ce qui n’a pas de sens vu la structure de la BDD:

      Avez vous vous tenté de vider le cache ? peut être un souci quelconque de cache corrompu ? je suis très très perplexe.

    • Quel est le moteur sql utilisé? est-il possible d’obtenir l’extraction de la table spip_evenements ? j’ai une piste, mais comme je ne ’arrive pas à reproduire, je veux etre sur de bien patché pour de bonnes raisons et que le pb se trouve pas en amont de mon patch.

    • C’est un Mysql (mariadb)

      mysql  Ver 15.1 Distrib 10.11.9-MariaDB, for osx12.0 (arm64) using readline 5.1
      

      J’ai déposé un zip de la table spip_evenements à cet endroit

      https://zendto.obspm.fr/pickup?claimID=keuxRBonsmfqWa7w&claimPasscode=Mh3TTBjEjA2vvvN6

    • Oki. Votre base à un certain historique, avec des types de colonne incorrect qui n’ont pas été migrés. C’est pour ca que vous avez le bug et pas moi.

      Je viens de faire une demande de correction pour migrer a posteriori les types, cf

      https://git.spip.net/spip-contrib-extensions/agenda/-/merge_requests/91

      mais je ne sais pas quand cedric se penchera dessus.

      Donc si urgence : avec phpmyadmin ou autre système d’administration sql, il faut executer la requette suivante

      ALTER TABLE spip_evenements MODIFY places int(11) DEFAULT 0 NOT NULL
      

      et tout rentrea dans l’ordre pour ce bug précis.

    • Presque.

      La commande échoue :

      ALTER TABLE spip_evenements MODIFY places int(11) DEFAULT 0 NOT NULL ;
      ERROR 1292 (22007): Truncated incorrect INTEGER value: ''
      

      sans doute car il y a des valeurs égales à '' dans ma table pour la colonne places.

      Avec cette commande là :

      update spip_evenements set places = 0 where places = '';

      je peux ensuite faire le alter table.

      Et ça remarche. Merci !

      (et je confirme c’est une table qui date au moins de spip 1.9 !)

    • Bizarre, ca a marché chez moi. Mais sans doute que le cast de ce qui existe n’est pas tout à fait le même selon les version de mysql/mariadb.

      Mais dans tous les cas il faudrait quand même passer la colonne en int, c’est plus cohérent et optimisée.

    Reply to this message

  • 2

    Bonjour,
    petite “subtilité” à “corriger” dans l’espace privé de Agenda :
    Dans le cas d’un site multilingue (par secteur), les articles traduits sont séparés, et ont donc leur propre ID. Un événement ne pouvant être relié qu’à un seul article, cet événement n’apparait pour l’instant que sur l’article directement lié, et non ses traductions (ce qui est pourtant indirectement le cas)...
    Merci pour votre attention _||_

    • Oulà, tu ouvres là un sujet sensible, celui de la hierarchie des evenements... ce n’est pas près d’etre résolu je pense...

    • Je ne pense pas que ça aille aussi loin...
      Il s’agit “juste” d’afficher, sur un article, les événements des articles traduits et rattachés à lui... bien conscient que c’est facile à dire, moins facile à faire _||_

    Reply to this message

  • J’ai l’impression qu’il y a un bug dans la répétition des événements.
    Il n’est plus possible de sélectionner les dates ultérieures et les inscrire manuellement les limite à 1 ou 2 dates.

    Reply to this message

  • 2

    Bonjour à tous,

    Je suis en train de refaire mon site avec le plugin Agenda, et je me demandais s’il était possible de créer des événements sans les rattacher à des articles. Par exemple, est-ce que je peux associer des événements directement à des rubriques, et ensuite afficher tous les événements de plusieurs rubriques dans un même calendrier ?

    Par exemple, si j’ai des rubriques pour chaque département, et que je veux afficher tous les événements qui ont lieu dans ces départements, comment puis-je faire ?

    Merci d’avance pour votre aide.

    • Salut,

      alors il faut distinguer deux choses (dans ton cas).

      -  le fait de pouvoir attacher des evenements à autre chose que des articles -> non ce n’est pas possible, même s’il y a des projets pour y arriver
      -  le fait de pouvoir afficher des evenements de plusieurs articles de plusieurs rubriques : là c’est possible en jouant sur les jointures

    • Bonjour,

      Le dernier message de Maïeul évoque la possibilité projetée de pouvoir gérer des évènements dans un Agenda non obligatoirement liés à un Article (avec la limitation actuelle que le statut de l’évènement «suit» le statut de l’article).
      J’aimerais connaître le degré d’avancement de ce projet :
      -  est-il envisagé de pouvoir lier plutôt à une rubrique ?
      (puisque la rubrique optionnelle est déjà gérée en configuration)
      => sans doute faudrait-il déjà rajouter un champ id_rubrique ?
      -  pourrait-on forcer /par configuration/ de limiter le choix à une liste d’articles de liaison,
      (par exemple pour chainer facilement toutes les séances de deux créneaux d’ateliers).
      Ou bien faut-il “forker” ou surcharger ce plugin...
      Merci de m’éclairer sur les pistes d’informations...
      Yann

    Reply to this message

  • Bonjour,
    J’ai fait une mise à jour d’un site spip2 vers la version 4.2.6 ainsi que l’ensemble des plugins tout fonctionne bien... sauf le calendrier qui s’affiche bien dans la page mais les événements n’apparaissent pas ! J’ai juste le jour actuel qui est grisé mais c’est tout...
    Avez vous une idée sur l’origine du problème que je pourrais avoir ?
    Merci

    Reply to this message

  • Bonjour,
    Après une mise à jour vers SPIP4.2.4, j’ai du mettre à jour le plugin agenda vers la version 5.0.1.

    Depuis, j’ai des erreurs d’affichage importante en particulier le emssage suivant "Table SQL « EVENEMENTS » inconnue.
    Auriez-vous une idée?
    Merci
    Jérôme

    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