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 pratiqe à 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.

updated on 8 March 2018

Discussion

574 discussions

  • Bonjour à tous,

    On utilise toujours ce plugin sans modération !
    Mais j’observe un petit problème dans la synchronisation des statuts (version 3.32.1) :

    Le cas de figure se présente lorsque l’article a été publié (donc, l’événement aussi) et que le rédacteur change d’avis et dé-publie l’article en le repassant en redac.
    Dans la fonction du pipeline, il semble que le cas ne se soit pas prévu dans le switch.

    On peut faire la manip à la main pour rétablir, mais vous connaissez nos rédacteurs !
    :-)

    Reply to this message

  • Bonjour,
    Je viens de procéder à la mise à jour du plugin Agenda (V3.32.1) en remplacement de la version antérieure.
    Cela provoque le blocage de mon site avec le message :
    Parse error: syntax error, unexpected ’[’ in /web9/cjafa/www/plugins/auto/lesscss/v1.4.3/lesscss_fonctions.php on line 154
    En désactivant le fichier lesscss_fonctions.php, je reviens à un fonctionnement partiel avec le plugin Agenda v3.32.1 inactif (dépendances manquantes), ainsi d’ailleurs que le plugin Scolaspip. La version de Spip est le 3.2.4.
    Auriez-vous une idée de la cause du problème et du moyen d’y remédier ?

    Reply to this message

  • 1

    J’essaye d’afficher les évènements triés par popularité de l’article qui leur correspond avec une jointure entre tables, mais je n’y arrive pas via la boucle suivante (erreur SQL « Unknown column ’article_popularite’ in ’order clause’ ») :

    1. <BOUCLE_articles(EVENEMENTS spip_articles){!par article_popularite}>

    Est-ce que vous avez une idée de ce que je fais mal ? Ou une autre piste ?

    Petite précision : mon ordre de tri sera passé dans l’URL donc idéalement quelque chose de compatible avec {par #ENV{tri}} ;)

    • Une boucle ARTICLES triés par popularité puis à l’intérieur une boucle EVENEMENTS listant les évènements des articles ainsi triés, ça ne le ferait pas ?

    Reply to this message

  • 5

    Bonjour,
    Je relance mon problème :
    Comment faire pour que l’affichage d’un évènement s’affiche aussi le jour où il a lieu.
    Pour être clair, que le feu d’artifice du 14 juillet s’affiche aussi le 14/07 puis, normal, disparaisse le 15/07
    Merci et bonne journée,
    Y

    • S’affiche où, comment? avec quel code/boucles? là c’est un peu obscur pour t’aider :)

    • Bonjour et merci.
      C’est de l’utilisation en standard... J’utilise agenda sur ce site :
      http://www.saint-sulpice-les-feuilles.fr
      Perso, je n’ai touché à rien.
      Heu... Ya que chez moi que les évènements de la journée ne sont pas affichés ?
      Sinon, je veux bien mettre les mains dans le cambouis avec :

      {!evenement_passe #ENV{date}} pour sélectionner les événements en cours ou pas encore commencés à
      la date #ENV{date}

      Ca m’irait impec... Le hic, c’est que je ne connais pas le fichier à modifier :-(
      Bonne soirée,
      Y

    • Ce n’est pas du standard, vous utilisez le squelette Escal.

      je vais regarder ce soir après le boulot pour corriger ca dans le squelette, il vous faudra ensuite le mettre à jour. je vous tient au courant.

    • En fait je ne suis pas responsable de ce squelette, donc je ne suis pas legitime à faire les modifs. Le mieux serait que vous demandier à l’auteur du sqlette en question : https://contrib.spip.net/Escal-4077

    • Ok, merci pour la réponse... Je vais poser la question à J-C V sur la liste “escal”
      Bonne journée,
      Yves

    Reply to this message

  • Bonjour,
    un petit souci sur les répétitions d’événements. Cela ajoute systématiquement la date du jour et on doit modifier la date souhaitée. Si l’on souhaite plusieurs répétitions il ne conserve que la dernière sélectionnée. Gênant, on s’en sort en tapant au clavier les dates souhaitées séparées par des virgules mais pas très user friendly tout ça. Ça fonctionnait mieux avant les dernières mises à jour.
    Yann

    Reply to this message

  • 1

    Hello
    Voici mon souci : je veux afficher les évènements à venir et s’ils ont des répétitions n’afficher que la première occurence dans le futur et afficher les répétitions au-dessous.

    Voici mon code :

    #SET{tableauprochainement,#ARRAY}
    <BOUCLE_prochainementselection(EVENEMENTS){age_fin<=0}{par date_debut}>
    [(#ID_EVENEMENT_SOURCE|=={0}|?{
    #SET{tableauprochainement,#GET{tableauprochainement}|push{#ID_EVENEMENT}},
    #SET{tableauprochainement,#GET{tableauprochainement}|push{#ID_EVENEMENT_SOURCE}}
    })]
    </BOUCLE_prochainementselection>
    
    <BOUCLE_evenements_agenda(EVENEMENTS){id_evenement IN #GET{tableauprochainement}}{"<hr />"}{pagination #GET{nbrpagevent}}{lang}>
    
            <BOUCLE_seul(EVENEMENTS){id_evenement=#ID_EVENEMENT}{par date}{date_fin>=#DATE}{doublons}>
            </BOUCLE_seul>
            
            <BOUCLE_plusieurs(EVENEMENTS){id_evenement_source=#ID_EVENEMENT}{par date}>
                    <BOUCLE_futur(EVENEMENTS){id_evenement}{age<=0}{doublons}>
                    </BOUCLE_futur>
            </BOUCLE_plusieurs>
            
            
            <BOUCLE_affiche(EVENEMENTS){!doublons}{0,1}{doublons affiche}{par date}>
                    affichage de l'évènement
            </BOUCLE_affiche>
            
            <BOUCLE_autres(EVENEMENTS){id_evenement_source=#ID_EVENEMENT}{age<=1}{age>=-365}{par date}{doublons affiche}>
                    affichage des répétitions
            </BOUCLE_autres>
    
    </BOUCLE_evenements_agenda>

    Tout ça fonctionne bien sauf pour les évènements sur la journée qui disparaissent le jour de l’évènement.
    Logique puisque sa date de fin est le jour même à 0h (soit le 6 juillet 2019 à 00h00min) pour un évènement de ce jour.

    Comment afficher malgré tout cet évènement ?

    En espérant avoir été assez clair...

    • hello

      J’avance un peu : en ajoutant cette boucle

      <BOUCLE_jour(EVENEMENTS){id_evenement=#ID_EVENEMENT}{age<=0}{date_fin=#DATE_DEBUT}{doublons}>
      </BOUCLE_jour>

      J’ai bien l’affichage de l’évènement du jour mais uniquement en local et pas en ligne alors que la version de spip est la même (la 3.2.4)

    Reply to this message

  • 1

    Bonjour à tous.

    Je rencontre un petit (gros :-) problème avec ce magnifique plugin agenda et calendrier-mini.
    Je suis sous spip 3.1.10 avec spipr et les dernières versions des plugins.

    Quand je demande
    /spip.php?page=agenda
    Ça marche. (il m’affiche aucun événement mais c’est pas mon sujet du jour).
    quand je clique dans extra, par exemple sur
    /spip.php?page=agenda&date_debut=2019-06-01
    Ça marche également très bien.

    Par contre, dès que je clique sur le calendrier genre
    /spip.php?page=jour&date_debut=2019-06-07

    J’ai un 404 du plus mauvais effet...
    Je précise que je n’ai pas créé de squelette spécifique.

    Auriez-vous une piste ?

    Merci à vous et bonne journée.

    • Bonjour.

      Je me réponds à moi-même.

      C’est le plugin “seminaire” qui coince.
      Agenda et seminaire semblent appeler le même squelette jour...

      Si ça peut aider.

    Reply to this message

  • 1

    Bonjour,

    Je souhaite afficher le calendrier des événements mais seulement à partir du mois où il commence.

    En clair, sur la page https://www.kandidator.fr/festival-des-nouvelles-tetes.html par exemple, commencer le calendrier à juillet car les 1ères dates sont en juillet et pas en juin.

    Les dates sont liées aux articles correspondant. Dans ce cas, à l’article “Festival...”

    Code actuel :

    [(#CALENDRIER_MINI{#DATE_DEBUT,date, #URL_PAGE{jour,id_article=#ID_ARTICLE}, #URL_PAGE{calendrier_mini_event.json,id_article=#ID_ARTICLE}})]

    Merci de vos lumières.

    • Trouvé : Ajouter juste “date_debut”

      <INCLURE{fond=agenda_mini_article,date_debut,self=#SELF} />

    Reply to this message

  • Bonjour,

    Je voudrais afficher le calendrier, mais seulement à partir du mois où commence le prochain événement.
    Exemple page https://www.kandidator.fr/festival-des-nouvelles-tetes.html
    -  > Afficher juillet même si je suis actuellement en juin car la 1ère prochaine date est le 2 juillet

    Code actuel :

    [<div class='ajax'>
    (#CALENDRIER_MINI{#DATE_DEBUT,date, #URL_PAGE{jour,id_article=#ID_ARTICLE}, #URL_PAGE{calendrier_mini_event.json,id_article=#ID_ARTICLE}} )
    </div>]

    Merci de votre aide.

    Gil

    Reply to this message

  • Je voudrais pouvoir cacher sur la page d’édition d’un évènement les champs

    "Inscription en ligne et
    Limiter le nombre de places"

    dans l’espace privé.

    Est-ce que je dois ajouter quelque chose dans mes_fonctions.php ? ou autre ?

    Merci

    Reply to this message

Comment on this article

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