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

  • Bonjour
    Merci pour cet excellent plugin.
    J’ai pour un article plusieurs événements qui ont lieu le même jour à différents horaires.
    Avec la boucle suivante :

    	<ul>
    	<BOUCLE_eventtest(EVENEMENTS){id_article}{par date}{evenement_a_venir}>
    	<li>Le [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|affdate)] à [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)]</li>
    	</BOUCLE_eventtest>
    	</ul>

    J’ai un affichage public comme ceci :
    Le lundi 18 février 2019 à 14h15
    Le lundi 18 février 2019 à 16h15
    Le mardi 19 février 2019 à 14h15
    Le mardi 19 février 2019 à 16h15
    ...

    alors que je voudrais voir ceci
    Le lundi 18 février 2019 à 14h15, 16h15
    Le mardi 19 février 2019 à 14h15, 16h15

    Merci de votre aide !

    Répondre à ce message

  • Salut cédric :-)
    Et merci pour le plug !
    Dans une futur évolution du plug, comme il y a un necessite « calendriermini », il ne serait pas possible d’avoir une interface de config, quitte à ce qu’elle ne soit que pour les webmestres ?
    Franck

    Répondre à ce message

  • 3

    Bonjour
    Depuis que j’ai fait une maj du plugin agenda ( de 3.18.7 à 3.27.4) les événements liés à un article ne s’affiche plus sur la page article . Le code pour les afficher sur cette page est :

      <!-- les évènements associés à l'article -->
    		
    		<B_lesevenements>
    		<div class="texte">
    		<h2><:evenements_associes:></h2>
    		<ul>
    		<BOUCLE_lesevenements(EVENEMENTS) {par date} {id_article}>
    			<li class="spip"><strong>[(#TITRE|supprimer_numero|couper{80})]&nbsp;</strong></br>
    			[(#DATE_DEBUT|jour|=={[(#DATE_FIN|jour)]}|?
    			{ Le [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|affdate)] [(#HORAIRE|=={oui}|?{
    			[(#REM) memes heures ?]
    			[(#DATE_DEBUT|=={#DATE_FIN}|?{&agrave 
    			[(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)],''})]
    			[(#REM) pas memes heures ?]
    			[(#DATE_DEBUT|!={#DATE_FIN}|?{ de [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)] &agrave; 
    			[(#DATE_FIN|heures)]h[(#DATE_FIN|minutes)],''})],''})], du [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|affdate)] 
    			[(#HORAIRE|=={oui}|?{&agrave; partir de [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)],''})] au [(#DATE_FIN|nom_jour)]
    			[(#DATE_FIN|affdate)] [(#HORAIRE|=={oui}|?{jusqu'&agrave; [(#DATE_FIN|heures)]h[(#DATE_FIN|minutes)],''})]  })]</br>
    			#LIEU</br>
    			#ADRESSE</br>
    			#DESCRIPTIF</br>
    			</li>

    Version de SPIP : 3.2.0 avec le squelette Ahuntsic version 2.0.7 .
    Merci de votre aide

    • Pardon, j’ai oublié la fin du code :

                      </BOUCLE_lesevenements>
      		</ul>
      		</div>
      		</B_lesevenements> 
    • C’est très bizarre, la structure de table n’a pas changé, à ma connaissance

      Que donne les résultats du var_mode=debug

    • Et maintenant, cela remarche...
      Mystère, j’avais essayé de remplacer ce code par le code de l’exemple 2 de la page Agenda pour spip 1.9.2 et toujours pas d’événements sur la page de l’article avec dans le debug, à la ligne de la boucle événements, pas de présence de la table. J’ai remis alors ce code et bonne surprise en lisant le debug, la table est signalée, et les événements de nouveau présents sur la page de l’article.
      Merci quand même pour l’invitation à lire la page de debug.

    Répondre à ce message

  • 2

    Bonjour,

    depuis un intranet admin et rédacteurs doivent pouvoir créer de nouveaux événements. Or, je constate que les rédacteurs n’ont pas cette possibilité... notamment en formulaire public. Comment autoriser sur le mes_options ?

    Question à Maïeul s’il passe par là, j’ai installé votre plugin auteurs aux événements, et si j’ai bien possibilité de le faire manuellement, malheureusement l’auteur qui créé un événement n’est pas automatiquement greffé à celui-ci ? Je suis en PHP 7.0... dernière version du plug in Agenda et en 3.2

    • Je passe par là mais je ne suis pas l’auteur du plugin « auteur evenements ». C’est Rainer Muller (qu’on peut trouver facilement en contact sur ce site)

    • Merci du coup j’ai pris Auteurs Partout... mais même soucis, aucun auteur n’est automatiquement inscrit après création d’un événement :( Je peux le faire que manuellement.

    Répondre à ce message

  • Salut cédric :-)
    Merci pour le plug :-)
    Sinon avant de faire la correction, je voulais avoir ton avis :-)
    Je crois qu’il y a une coquille dans paquet.xml
    Le plug

     <utilise nom="urls_etendues" compatibilite="[1.4.12;[" />

    https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/agenda/trunk/paquet.xml#L52
    Sauf que qu’il n’y a pas de plugin avec le prefix « urls_etendues » https://plugins.spip.net/spip.php?page=prefixes#lettre_u
    Il ne faudrait pas plutôt mettre

    <utilise nom="urls" compatibilite="[1.4.12;[" />

     ???
    https://zone.spip.net/trac/spip-zone/browser/spip-zone/_core_/tags/spip-3.0.0/plugins/urls_etendues/paquet.xml#L2
    Franck

    Répondre à ce message

  • Bonjour,
    Est-il possible ou envisageable d’associer un évènement également à une brève ?
    Merci pour votre retour
    Cordialement
    jérôme

    Répondre à ce message

  • 1

    Bonsoir,

    J’ai une boucle qui liste tout les évènements présents et futurs (voir ci-dessous) et, pour chaque évènement, j’aimerais afficher le titre et le lien vers l’article auquel il est attaché.

    afficher les évènements d’un article, je sais le faire, mais affiché l’article dont dépend l’évènement je ne trouve pas.
    Une hypothèse :
    ajouter à l’intérieur de la boucle évènement

    <BOUCLE_articles(ARTICLES) {id_parent}> #TITRE 
    ...
    </BOUCLE_articles>
    [(#REM) Évènements de la rubrique ]
    			<B_lesevenements>
    
    		<div class="menu menu_articles" id="actualites_toutes">			
    				<BOUCLE_lesevenements(EVENEMENTS) {!evenement_passe #ENV{date}} {par date} >
    
    			<div class="actualite">
    
    
    					<div class="logoSlide">[(#LOGO_EVENEMENT|image_reduire{150}|inserer_attribut{alt, #TITRE|attribut_html})]</div>
    
    
    						<h2 style="margin-bottom:0;">[(#TITRE|supprimer_numero|couper{200})]&nbsp;:</h2>
    							<div class="texte small">
    							  <span style="color:darkgreen;"><strong><em>[(#DATE_DEBUT|jour|=={[(#DATE_FIN|jour)]}|?{
    							  le [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|affdate)] 
    							[(#HORAIRE|=={oui}|?{
    							   [(#REM) memes heures ?]
    							     [(#DATE_DEBUT|=={#DATE_FIN}|?{&agrave 
    							[(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)],''})]
    							   [(#REM) pas memes heures ?]
    							     [(#DATE_DEBUT|!={#DATE_FIN}|?{de 
    							[(#DATE_DEBUT|heures)]:[(#DATE_DEBUT|minutes)] &agrave; 
    							[(#DATE_FIN|heures)]:[(#DATE_FIN|minutes)],''})]
    							,''})]
    							,
    							  du [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|affdate)] 
    							[(#HORAIRE|=={oui}|?{&agrave; partir de
    							  [(#DATE_DEBUT|heures)]H[(#DATE_DEBUT|minutes)],''})] au 
    							[(#DATE_FIN|nom_jour)]
    							  [(#DATE_FIN|affdate)] [(#HORAIRE|=={oui}|?{jusqu'&agrave;
    							  [(#DATE_FIN|heures)]H[(#DATE_FIN|minutes)],''})]  })]</em></strong></span><!-- color:darkgreen; -->
    							  [<br>-&nbsp;<strong>Lieu</strong>&nbsp;: (#LIEU)][<br>-&nbsp;<strong>Adresse</strong>&nbsp;: (#ADRESSE)]
    							  #DESCRIPTIF
    							</div><!-- texte small -->
    
    
    			</div><!--  class="actualite" -->
    
    				 </BOUCLE_lesevenements>
    
    		</div> <!-- class="menu menu_articles" id="actualites_toutes" -->
    
    			</B_lesevenements>

    Merci d’avance,

    Cordialement,

    Hervé

    • Jaseur Boreal

      Bonjour,
      Selon les besoins, si l’article est lié à un seul événement ou si plusieurs événements sont reliés à l’article, les astuces peuvent différer.

      Incorporer automatiquement dans un article une boucle qui ajoute l’événement lié - Sous squelette Escal, nous avons résolu ce besoin.
      Exemple ici en bas de l’article : https://www.lettonie-francija.fr/1643

      Quand l’événement a son descriptif vide, cliquer sur l’événement dans l’agenda renvoi directement sur l’article. Quand le descriptif de l’événement est rempli nous ajoutons manuellement le modèle « choix_article » invitant à lire l’article lié, et/ou d’autres.

      Pour afficher le titre et le lien d’un article dans l’événement auquel il est attaché nous utilisons le modèle « Choix_article » qui permet d’inclure des articles dans un autre article ou dans un événement.
      Exemple d’une box Choix_article avec le lien vers un article ou plusieurs ici

      Cela vous conviendrait ?
      @+

    Répondre à ce message

  • 1

    Bonjour,

    Beaucoup de spipiens et de spipiennes utilisent le plugin Agenda... C’est un très bon plugin, riche d’outils pour ceux qui peuvent jongler avec les différents squelettes du placard !...
    D’autres ont abandonné pour utiliser le plugin Simple Calendrier...

    Le problème, je pense, avec Agenda est le manque de flexibilité et la maintenance en amont avec la table ’evenements’. Pourtant, il lui arrive d’évoluer. Par exemple lorsque spip a modifié sa manière de gérer les ’mots-clés’.

    Ce serait une belle évolution si une table ’événements_liens’ venait s’ajouter. Un champ ’id_objet’ plutôt que ’id_article’ de la table ’evenements’ et un champ ’objet’ permettraient d’associer les événements à tout type d’objet de la famille spip. Bien entendu, il faudrait gérer cela aussi au niveau du formulaire ’editer_evenement’ et de ses dépendances ainsi que les différents appels des fichiers se trouvant dans les différents dossiers du plugin.

    Je vais essayer de m’y attaquer, mais j’avoue que je suis plus un bidouilleur qu’un programmeur... :-)

    • Le problème n’est pas tant technique qu’un choix d’orientation du développement du plugin.
      A ce jour les évènements ont été conçus non mas comme des objets éditoriaux autonomes mais comme une sorte de meta-donnée qui vient enrichir les articles.

      Par construction donc, tout est orienté en fonction de ce choix initial. Notamment par exemple, les évènements n’ont pas de statut autonome.

      Sortir les évènements de ce schéma pour en faire des objets éditoriaux à part entière est tout à fait possible, et partant de là également de les associer à n’importe quel objet, mais c’est un gros changement philosophique qui implique :

      • les modifications techniques concernées (ce qui n’est pas très dur)
      • la transition de l’existant : assurer que tous les sites construit en supposant cette liaison article-évènement continuent de fonctionner comme prévu initialement

      C’est sur ce second point qu’est le vrai challenge, qui suppose de vérifier/traiter proprement tous les cas possibles pour ne rien casser.

      Pour information il y a déjà une branche expérimentale pour rendre les évènements autonomes, mais je n’ai pas du tout suivi ni utilisé ni supporté car cette problématique de continuité de l’existant n’a me semble-t-il pas été traitée

      https://zone.spip.org/trac/spip-zone/browser/spip-zone/_plugins_/agenda/branches/experimentale-evenement-autonome?order=date

    Répondre à ce message

  • Bonjour,

    Je souhaite afficher les événements du prochain jour pour lequel il y a au moins un événement d’enregistré.

    Exemple, le prochain jour ou il y a des événements est le 20 septembre et il y a 3 événements à 3 horaires différents ce jour là.

    Une petite astuce à me fournir ?

    Merci par avance.

    Répondre à ce message

  • Bonjour,

    Je souhaite utiliser le plugin agenda pour des réservations de salles.
    Existe-t’il un mode opératoire pour cocher les dates où c’est déjà réservé et afficher une couleur spécifique ne empêchant le clic sur cette date, ou un autre plugin fait-il l’affaire ? Pas trouvé en tout cas.

    J’ai pensé aussi à cocher toutes les dates de disponibilité en mode répétition, ce qui permettra de n’afficher que celles qui sont disponibles en décochant simplement celles réservées.

    Merci de votre aide.

    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