SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 310 visiteurs en ce moment

Accueil > Dates, calendriers et agendas > Plugin Agenda > Agenda 2.0

Agenda 2.0

3 novembre 2008 – par Cerdic – 1019 commentaires

Toutes les versions de cet article : [Español] [français]

241 votes

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.

Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda et FullCalendar. 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

Navigation dans les événements du site

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

PNG - 26.9 ko

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

PNG - 48.3 ko

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 :

PNG - 112.1 ko

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

PNG - 104.5 ko

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 :

PNG - 44.6 ko

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

PNG - 75.9 ko

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

PNG - 4 ko

Modifier un événement

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

PNG - 17 ko

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 :

PNG - 30.9 ko

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énements 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 :

PNG - 14.1 ko

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.

Voir en ligne : http://plugins.spip.net/agenda

Dernière modification de cette page le 5 avril 2015

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 6 septembre à 17:35, par jbtours En réponse à : Agenda 2.0

    Bonjour,
    j’utilise agenda 2.0 en l’ayant un peu adapté àmon besoin, et dans la partie genie j’ai rajouter à coté de agenda_nettoyer_base.php un fichier agenda_envoi_confirmation.php avec une fonction php qui met à jour un champs en base et envoie un mail suivant différents critères.
    Depuis la mise à jour en spip 2.1.29 ça ne fonctionne plus, j’ai l’impression que qu’on ne passe jamais sur la fonction. une modif de ce coté, un lien avec la version php ??
    merci pour votre aide

    <?php
    /**
     * Plugin Agenda pour Spip 2.0
     * Licence GPL
     * 
     *
     */

    function genie_agenda_envoi_confirmation_dist($t){


        
    $listemail '';
        
    $listenom '';
        
    $nomseminaire '';
        
    $oldid '';
        
    $res sql_query("SELECT spip_evenements.id_evenement,DATE_FORMAT(spip_evenements.date_debut, '%d/%m/%Y - %H:%i') AS date_temps,spip_evenements.titre,spip_auteurs.email,spip_auteurs.nom FROM spip_evenements LEFT JOIN ( spip_evenements_participants, spip_auteurs) ON (spip_evenements.id_evenement = spip_evenements_participants.id_evenement AND spip_evenements_participants.id_auteur = spip_auteurs.id_auteur) WHERE (TO_DAYS(spip_evenements.date_debut) - TO_DAYS(now()) < 7) AND ( spip_evenements.clos = 'non') AND (spip_evenements_participants.reponse = 'oui')" );

       if(
    mysql_num_rows($res)!=0){
        while(
    $row mysql_fetch_array($res)){
           
    $id $row['id_evenement'];
           
           if(
    $id != $oldid){
              
              
    $bodyadmin html_entity_decode('Chers administrateurs,')."\r\n"
              
    .html_entity_decode('Voici la liste definitive des inscrits au séminaire : ')
              .
    utf8_decode($nomseminaire)."\r\n\n"
              
    .utf8_decode($listenom)."\r\n"
              
    .html_entity_decode('e-mails envoy&eacute;s &agrave;:')."\r\n"
              
    .utf8_decode($listemail);


              if (
    $oldid != ''){
                 
    mail('toto@tit.com',$subject_admin,$bodyadmin,$headers);
                
    $res2 sql_query("UPDATE spip_evenements SET clos = 'oui' where id_evenement =".$oldid);
              }
              
    $listenom '';
              
    $listemail '';
              
           }
           
    $listenom $listenom.$row['nom'].' - ';
           
    $listemail $listemail.$row['email'].',';
           
    //$to = 'eb@titi.fr';
           
    $to utf8_decode($row['email']);
           
    $from 'seminairestoursimg.org';
           
    $nomseminaire =$row['titre'].' du '.$row['date_temps'];
           
    // Headers
           
    $headers 'From: seminairestoursimg.org <contact@titi.com>'."\r\n";
           
    $subject html_entity_decode('Validation d&eacute;finitive de votre inscription au seminaire ').utf8_decode($row['titre']);
           
    $subject_admin html_entity_decode('Liste d&eacute;finitive des inscriptions au seminaire ').utf8_decode($row['titre']);
           
           
    $body html_entity_decode('Bonjour ').utf8_decode($row['nom'])."\r\n"
                  
    .html_entity_decode('Ceci est un message automatique.')."\r\n\n"
                  
    .html_entity_decode('Votre inscription au s&eacute;minaire "').utf8_decode($nomseminaire).html_entity_decode('" est valid&eacute;e !');
           
    mail($to$subject$body$headers);
           
    $oldid $id;
        } 
        
    $res2 sql_query("UPDATE spip_evenements SET clos = 'oui' where id_evenement =".$id);
        
              
    $bodyadmin html_entity_decode('Chers administrateurs,')."\r\n"
              
    .html_entity_decode('Voici la liste definitive des inscrits au seminaire : ')
              .
    utf8_decode($nomseminaire)."\r\n\n"
              
    .utf8_decode($listenom)."\r\n"
              
    .html_entity_decode('e-mails envoy&eacute;s &agrave;:')."\r\n"
              
    .utf8_decode($listemail);
        
    mail('toto@titi.com',$subject_admin,$bodyadmin,$headers);
        
       }
    return 
    1;

    }
    ?>

    Répondre à ce message

  • Le 30 août à 10:44, par handigrafik En réponse à : Agenda 2.0

    evenement_a_venir pour sélectionner les événements pas encore commencés à la date courante

    evenement_a_venir #ENVdate pour sélectionner les événements pas encore commencés à la date #ENVdate

     !evenement_a_venir #ENVdate pour sélectionner les événements finis ou en cours à la date #ENVdate

    evenement_en_cours pour sélectionner les événements en cours à la date courante

    evenement_en_cours #ENVdate pour sélectionner les événements en cours à la date #ENVdate

     !evenement_en_cours #ENVdate pour sélectionner les événements *pas* en cours à la date #ENVdate

    evenement_passe pour sélectionner les événements passés/finis à la date courante

    evenement_passe #ENVdate pour sélectionner les événements passés/finis à la date #ENVdate

     !evenement_passe #ENVdate pour sélectionner les événements en cours ou pas encore
    commencés à

    la date #ENVdate

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

    Je n’arrive pas combiné evenement_en_cours et evenement_a_venir . quand un seul critère sur ma boucle ça marche mais quand je met 2 critères y a plus rien qui marche. Je suis sous spip 2.1

    Répondre à ce message

  • Le 17 août à 13:56, par Altea En réponse à : Agenda 2.0

    Bonjour,
    J’essaie d’utiliser mini calendrier et agenda pour me faire un calendrier de certains évènements.
    Le problème est que quand je clic sur la case qui a un évènement ça me retourne une erreur au lieu de l’article lié à l’évènement.
    Du coup est-ce que j’aurais écris faux ma boucle ?

    [(#CALENDRIER_MINI#ENVdate,
    date,
    #URL_PAGEjour,
    #URL_PAGEcalendrier_mini_event.json
    )]

    PNG - 12.6 ko

    Répondre à ce message

  • Le 22 juillet à 15:53, par dut En réponse à : Agenda 2.0

    Bonjour,

    J’utilise le formulaire #FORMULAIRE_EDITER_EVENEMENT sur un sur un site en SPIP 3.0

    Je constate deux soucis de présentation :

    -  les dates picker s’affiche sur un cadre transparent donc superposition avec ce qui est en dessous (et mauvaise visibilité)
    -  le multipicker est ouvert directement au chargement de la page et n’attends pas qu’on clique sur ajouter des répétitions.

    Voilà, ce ne sont pas des points bloquants, mais ça peut troubler l’utilisateur et tant qu’a faire.

    Merci d’avance de vos retours là dessus

    Répondre à ce message

  • Le 21 juillet à 11:49, par dut En réponse à : Agenda 2.0

    Je cherche à visualiser les evenement proposés et non publiés

    la boucle suivant n’affiche rien, ni en tentant avec  !evenement_passe ni avec tout

    1. <BOUCLE_evtspip(EVENEMENTS){age_debut<=0}{age_debut>-6}{statut=prop}>

    y a t’il un mécanisme qui empéche d’obtenir un resultat ? pourquoi ? est-il surmontable ?

    • Le 21 juillet à 11:57, par Maïeul En réponse à : Agenda 2.0

      aucun problème avec statut=prop de mon côté. je vérifierai plutot les critères de date

    • Le 21 juillet à 12:53, par dut En réponse à : Agenda 2.0

      même en réduisant à un seul critère, ça me ramène rien ! (et je vois des événements prop en base

      <BOUCLE_evtspip(EVENEMENTS){statut=prop}>       

      Je suis en 3.0.22 [22914] et la version du plugin evenement est 3.15.0 et preneur de toute possibilité pour cela

    • Le 21 juillet à 14:10, par Maïeul En réponse à : Agenda 2.0

      chez moi j’ai bien la chose :) (même config)

      A vérifier avec les plugins non nécessaire désactivé. Et regarder aussi ce que donne un var_mode=debug

    • Le 21 juillet à 17:12, par dut En réponse à : Agenda 2.0

      Merci Maieul de ta suggestion.

      Cela m’a permis de constater que la boucle ramenait bien les événements, mais que ceux ci ne s’affichaient pas dans l’inclure qui suivait, et dont le rôle était d’en assurer la présentation.

      c’était faute d’ajouter un

      statut !=poubelle

      dans la boucle initiale de cet inclure (il prenait publié par défaut). Cela à tout fait réapparaitre.

      Encore merci de ta piste.

    • Le 21 juillet à 17:56, par dut En réponse à : Agenda 2.0

      Merci pour le conseil

      var_debug m’a permis de constater que ma boucle sort bien les événements voulus, simplement un inclure de présentation filtrait le statut., ne gardant que les publiés. En mettant dans cet inclure statut !=poubelle, j’affiche bien tous les événements.

    Répondre à ce message

  • Le 6 juillet à 09:07, par Macaron En réponse à : Agenda 2.0

    Bonjour,

    Depuis le commit 98158, dans la fonction autoriser_article_creerevenementdans_dist du fichier agenda_autoriser.php, ligne 45, il manque un guillemet simple fermant dans la requête SQL (juste après publie).

    Un patch est sur http://pastebin.com/uC5Sk69y.

    Merci !

    Répondre à ce message

  • Le 22 juin à 21:20, par GIL En réponse à : Agenda 2.0

    Bonjour,

    Suite à une mise à jour vers Spip 3.1 et de la dernière version du plugin Agenda, plus rien ne s’affiche après la date d’aujourd’hui.

    Avez-vous rencontré ce problème ?

    Merci.

    PNG - 12 ko
    • Le 27 juin à 12:14, par RealET En réponse à : Agenda 2.0

      Pour compléter, testé avec SPIP 3.1.1 + juste plugin Agenda et MiniCalendrier, le débug donne pour la boucle dans calendrier_mini.json.html :

      1. SELECT articles.id_article, articles.titre, articles.date, articles.texte, articles.descriptif, articles.chapo, articles.lang
      2. FROM spip_articles AS `articles`
      3. WHERE (articles.statut = 'publie')
      4. AND ((articles.id_rubrique IN (0,1,2,3,4,5,6,18,21,22,24,27,7,8,9,10,11,12,13,14,15,16,26,28,29,30,38,39,31,32,33,34,35,36,37)))
      5. AND ((DATE_FORMAT(articles.date, '%Y%m%d') >= '20160624') AND (DATE_FORMAT(articles.date, '%Y%m%d') <= '20160808'))
      6. GROUP BY articles.id_article

      Télécharger

      Ce qui montre clairement que la boucle se fait sur la date de publication des articles et absolument pas sur les événements (date_debut).

      Donc, si ça a jamais marché un jour, ça ne peut pas marcher en 3.1.1 :(

    • Le 27 juin à 12:48, par RealET En réponse à : Agenda 2.0

      Une lecture plus attentive de http://contrib.spip.net/Calendrier-Mini-2-0 m’’a fait découvrir calendrier_mini_event.json.html

      Du coup, et pour éviter une méprise aussi triviale, ne serait-il pas pertinent que le plugin Agenda surcharge inc_calendrier_mini.html pour appeler un agenda avec des événements ?

    • Le 27 juin à 14:24, par RealET En réponse à : Agenda 2.0

      Et que le squelette jour décrit dans la doc existe effectivement aussi dans sa version dist, et pas seulement pour Z ?

    Répondre à ce message

  • Le 3 juillet 2012 à 17:00, par Pierre-Jean En réponse à : Agenda 2.0

    Bonjour,

    Est-il possible de se passer de l’association d’un article à un évènement ?
    Je ne comprend pas cette limitation.
    Dans le sens contraire aussi : pourquoi ne serait-il pas logique de pouvoir associer plusieurs articles à un évènement ?

    Je vois l’évènement comme un objet éditorial à part entière qui devrait aussi pouvoir se suffire à lui-même. Pourquoi complexifier si j’ai une asso et que je veux simplement afficher nos prochaines rencontres ? Je dois aussi écrire un article ?

    Je passe à côté de quelque chose ou ce sont bien les mécanismes actuels de l’agenda ?

    • Le 3 juillet 2012 à 17:12, par Cerdic En réponse à : Agenda 2.0

      Je vois l’évènement comme un objet éditorial à part entière qui devrait aussi pouvoir se suffire à lui-même

      C’est une possibilité en effet. Mais ce n’est pas ce qui avait été retenu lors du développement initial du plugin pour des raisons de lourdeur de développement que cela aurait entrainé.

      Aujourd’hui cette limitation n’a plus de justification technique forte car SPIP 3.0 permet de faire de nouveaux objets éditoriaux beaucoup plus facilement. Mais pour le moment cette évolution du plugin reste à faire (en prenant soin de ne rien casser des sites existants qui utilisent déjà le plugin)

    • Le 3 juillet 2012 à 20:23, par Julien Lanfrey En réponse à : Agenda 2.0

      @Pierre-Jean : Pour information, la vocation du plugin simple-calendrier était justement d’avoir un simple objet éditorial. Son champ fonctionnel est très différent et plus restreint que celui de l’agenda2, et une compatibilité ’restreinte’. Bien lire la doc à ce sujet. Peut être cela peut t-il correspondre à ce que tu recherches ? C’est pour SPIP 2.1 pour le moment. La version SPIP 3 (svn) est en cours.

      @Cedric : Je ne sais pas quel chemin prendra Agenda2. Objet autonome (avec migration ?) vs article lié, + histoire de maintient de compatibilité... surement pas mal de réflexion à avoir en effet. Selon le chemin pris, je ne sais pas si simple-calendrier aura encore une raison d’évoluer. à voir. S’il peut servir à qqch dans le dev d’Agenda2, il n’y a pas de pb, même si je pense que le diff doit être trop grand et qu’un coup de fabrique serait plus simple encore !

    • Le 4 juillet 2012 à 08:08, par Pierre-Jean En réponse à : Agenda 2.0

      @Cédric : je viens de lire la prez d’agenda, effectivement je comprend mieux, et effectivement les possibilités de SPIP 3.0 devrait pousser vers un workflow indépendant et ses liaisons ou non avec les autres objets.
      Pour ne pas tout casser... J’imagine qu’il faudrait une procédure de transition des articles liés à un évènement en EVENEMENT tout court. Plus simlple à dire qu’à faire, je le conçois.

      @Julien : Simple Calendrier semble vraiment correspondre à ce/mon besoin :)
      Installé sur une RC, il fonctionne, je vais le tester sur 3.03 grandeur nature...
      Et je viens sur le fil du plugin pour plus de détails et pas polluer celui-ci !

    • Le 28 janvier à 15:19, par graphie En réponse à : Agenda 2.0

      Bonjour cerdic,

      Qu’en penses-tu aujourd’hui ? Ce serait-envisageable avec la 3.1 ?
      Ce serait vraiment super comme évolution ;)

      françois

    • Le 15 mars à 06:24, par Spipmalion En réponse à : Agenda 2.0

      Bonjour,

      +1

      ça serait super d’avoir des événements non liés à des articles

    • Le 14 juin à 12:10, par Théo En réponse à : Agenda 2.0

      Ah que oui !

      Je n’utilise plus cet excellent outil car plus moyen de l’utiliser sans lier un événement à un article !

      J’ai « fouiné » dans les fichiers pour tenter de supprimer cette option mais sans réussir… :(

    • Le 20 juin à 06:46, par Aldo En réponse à : Agenda 2.0

      + 1 à cette demande pour ce formidable plugin !

    Répondre à ce message

  • Le 11 juin à 20:06, par pyrouette En réponse à : Agenda 2.0

    Bonjour,
    La fonction agenda_affdate_debut_fin induit une erreur de validation w3 par l’introduction d’un abbr dans une balise time.
    est ce un probleme ?
    et quel serait ce probleme, a part l’erreur affichée par https://validator.w3.org ?

    Merci d’avance de vos indications

    Répondre à ce message

  • Le 12 juin à 13:51, par pyrouette En réponse à : Agenda 2.0

    Bonjour

    la fonction agenda_affdate_debut_fin utilise la balise abbr. le soucis (?) est qu’elle est utilisée, par exemple dans le fichier inclure/resume/evenement.html dans une balise time.
    cela provoque une erreur de validation du standard w3c (https://validator.w3.org/)

    est ce un « gros » probleme ?
    et quels en sont les effets le cas échéant ?

    Merci d’avance pour vos indications !

    ps : désolé, je pinaille peut etre mais on m’a fait remarqué ces erreurs de validation et j’aimerai bien pouvoir répondre à ces remarques. en tout cas merci pour tout le travail sur ce plugin qui est vraiment très pratique !

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Édition directe 3

    16 octobre 2011 – 12 commentaires

    Ce plugin permet d’éditer directement l’article depuis la page de l’objet dans l’espace privé. Principe Adaptation à SPIP 3 du plugin Edition directe Quand on désire éditer un objet spip, on arrive d’abord sur sa page d’accueil où est affiché (...)

  • ScolaSPIP 4

    19 janvier – 94 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 1963 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Ne pas voir apparaître les notes de bas de pages attachées à un champ

    16 juin 2004 – 16 commentaires

    Nous envisageons le cas où des notes sont introduites dans un champ, de manière voulue ou erronée, mais que l’on ne veut pas les faire apparaître sur la page publiée sur le site.

  • Dictionnaires

    31 octobre 2013 – 44 commentaires

    Présentation Le plugin Dictionnaires sert à définir des choses, regroupées dans des dictionnaires. Une définition peut avoir plusieurs statuts comme les articles, tandis qu’un dictionnaire peut juste être actif ou inactif. Lorsqu’un dictionnaire est (...)