Calendrier Mini 2.0

Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements.

Fonctionnement du mini calendrier

Le mini calendrier présente un mois à la fois. Les jours du mois comportant des évènements sont surlignés. Un clic sur l’un de ces jours permet de naviguer vers une page qui présentera les évènements de ce jour.

Le mini calendrier comporte deux liens de navigation pour passer au mois précédent ou au mois suivant, ainsi que deux champs de sélection pour aller directement à n’importe quel autre mois ou année.

La navigation d’un mois à un autre se fait immédiatement, sans rechargement de la page. La liste des évènements pour le mois en cours est rechargée en tâche de fond et mise à jour sur le mini calendrier (chargement asynchrone au format JSON).

Les évènements affichés par le mini calendrier peuvent être de n’importe quelle nature (publication des articles du site, commentaires, objets évènements du plugin agenda).

A partir de la version 2.3.0, la liste des événements d’une journée est affichée au survol (tooltip).

Accessibilité et alternative
Le mini calendrier insère également une alternative qui permet aux utilisateurs sans javascript ainsi qu’aux robots d’indexation de disposer des liens vers chaque jour (pour peu qu’il contienne un évènement) du mois en cours ainsi que vers le mois précédent ou le mois suivant.

Insertion du mini calendrier

Le mini-calendrier est inséré simplement dans vos squelettes au moyen de la balise #CALENDRIER_MINI

Cette version 2.0 du plugin reprend la syntaxe des versions précédentes du plugin «Calendrier mini» : #CALENDRIER_MINI{url, url_json}

  • url désigne l’URL de la page sur laquelle envoyer le visiteur lorsqu’il clique sur un jour (#SELF par défaut)
  • url_json désigne l’URL appelée pour charger la liste en JSON des évènements entre deux dates (#URL_PAGE{calendrier_mini.json} par défaut).

Dans cette syntaxe courte, la variable date utilisée est nommée archives et la date courante est automatiquement capturée d’après #ENV{archives}.
Un exemple d’utilisation est :

#CALENDRIER_MINI{#SELF, #URL_PAGE{mes_evenements.json}}

Le plugin supporte également la syntaxe longue utilisée dans le plugin «Agenda» :
#CALENDRIER_MINI{date, var_date, url, url_json}

  • date est la valeur courante de la date ; le mini calendrier se positionnera sur le mois correspondant ;
  • var_date est le nom de la variable date qui sera passée en argument à la page appelée quand le visiteur clique sur un jour ;
  • url désigne l’URL de la page sur laquelle envoyer le visiteur lorsqu’il clique sur un jour (#SELF par défaut) ;
  • url_json désigne l’URL appelée pour charger la liste en JSON des évènements entre deux dates (#URL_PAGE{calendrier_mini.json} par défaut).

Un exemple d’utilisation de cette syntaxe est :

#CALENDRIER_MINI{#ENV{date}, date, #SELF, #URL_PAGE{evenements_mini.json}}

Exemple: afficher les évènements créés dans le plugin «Agenda»

[(#CALENDRIER_MINI{#ENV{date},
  date, 
  #URL_PAGE{jour},
  #URL_PAGE{calendrier_mini_event.json}})]

Dans cet exemple :

  • on utilise le squelette «calendrier_mini_event.json.html» fourni par le plugin «Agenda» pour récupérer les évènements créés dans l’agenda ;
  • la page d’affichage des évènements lorsque l’on clique sur une date (avec au moins un évènement!) utilise le squelette «jour.html», lui aussi fourni dans le plugin «Agenda» ;
  • le squelette «jour.html» utilisant le paramètre d’environnement date pour boucler dans les évènements, on prend soin de passer date en 2ème paramètre de la balise.

Liste des évènements

Les évènements affichés dans le mini-calendrier sont fournis au format JSON par un squelette qui est appelé à chaque changement de mois du mini calendrier.

Par défaut c’est calendrier_mini.json.html qui génère la liste des articles publiés entre start et end fournis tous deux au format «timestamp» (nombre de secondes depuis 1970) dans l’URL.

Pour modifier la liste des évènements affichés dans le mini calendrier, il suffit de modifier le squelette calendrier_mini.json.html (ou de le copier sous un autre nom en passant ensuite la valeur correspondante pour l’argument url_json).

Le title de chaque événement envoyé par le squelette sert à afficher le tooltip au survol de chaque date. Vous pouvez le personnaliser en le préfixant de l’heure de début par exemple, quand cela est pertinent.

Collecte automatique de id_article, id_rubrique et id_mot

Quand elle est utilisée avec la syntaxe sans l’url de la page JSON, la balise #CALENDRIER_MINI collecte automatiquement (comme elle le faisait auparavant) les #ID_ARTICLE, #ID_RUBRIQUE et #ID_MOT du contexte où elle est appelée. Les valeurs de id_article, id_rubrique et id_mot sont alors passées à l’url de la page JSON par défaut.

Dès que vous précisez en dernier argument de #CALENDRIER_MINI l’url de la page JSON qui fournit les événements, il vous appartient d’y préciser les id_article, id_rubrique ou id_mot que vous souhaitez prendre en compte, car ceux-ci ne sont plus transmis automatiquement.
Ce fonctionnement vous permet ainsi de désactiver la transmission automatique au besoin.

Personnalisation de l’apparence

L’apparence du mini-calendrier est prise en charge par la feuille de style css/minical.css. La feuille de style est minimale afin que le mini-calendrier hérite au maximum de l’apparence de votre site. Cette feuille de style peut être personnalisée dans votre dossier squelettes/.
Voici un autre exemple d’insertion du mini-calendrier sans modification de la feuille de style :

Pour des raisons de performance, la feuille de style est insérée inline dans le HTML de la page qui contient le mini calendrier. Si elle référence des images, celles-ci doivent donc être référencées avec leur URL absolue.

Les boutons pour passer vers les mois précédents ou suivants utilisent l’image css/img/month_prev_next-32x16.png qui peut être personalisée dans votre dossier squelettes/.

Le pied du mini-calendrier qui contient le bouton aujourd’hui peut-être masqué simplement en CSS.

En dernier recours, si c’est vraiment nécessaire pour la personnalisation, vous pouvez aussi modifier le squelette formulaires/calendrier_mini.html. Toutefois ceci est déconseillé car hypothèque la compatibilité de votre squelette avec les évolutions futures du plugin.

updated on 6 April 2020

Discussion

104 discussions

  • 4
    Marie-Claude Saliceti

    Bonjour.
    Mon site est sous SPIP 2.1.27
    j’ai installé le plugin agenda 2.0
    et le calendrier mini 2.0
    Version du client de base de données: libmysql - 5.1.73

    tout fonctionne parfaitement sur la partie privée du site
    sur la partie publique la seule chose qui ne fonctionne pas c’est l’impossibilité d’afficher les articles si on clique sur le mois suivant. cela renvoie “Evénement terminé.”
    je ne trouve pas ce que je dois faire pour résoudre ce problème, bien que j’aie beaucoup cherché.

    Mon calendrier public est ici : http://mcinformactions.net/spip.php?rubrique172

    J’ai vraiment besoin d’aide, là, car je bloque complètement !!

    • Bonjour,

      Avez-vous créé des événements sur le mois de mars par exemple ?

    • Marie-Claude Saliceti

      Bonjour,

      Après divers essais et modifications :

      je suis passée à spip 3.1

      En local
      j’ai installé agenda_3_5
      et calendrier_mini-2.0

      j’ai créé page-jour.html

      le calendrier affiche maintenant correctement les événements aux dates correspondantes, et même pour les mois à venir.

      mais quand je clique sur un événement, la page jour s’affiche et présente un meli-melo de dates pas du tout pertinent.

      je joins la boucle événements de ma page-jour

    • Marie-Claude Saliceti

      Bonjour
      j’ai résolu mon problème mais j’en ai un autre :

      maintenant quand je clique sur un jour dans le calendrier j’ai bien la liste des événements du jour.
      mais ensuite, si je clique sur le titre d’un événement, ça me renvoie à une page evenement.html
      j’ai donc créé cette page dans mon dossier squelette.
      mais ça ne m’avance pas, car le titre apparemment cliquable ne renvoie sur rien.
      Comment faire pour accéder à l’article correspondant au titre ?

    • Marie-Claude Saliceti

      problème résolu avec la mise à jour du plugin Agenda.

    Reply to this message

  • 3

    Bonjour,
    J’ai toujours un souci avec le mini-calendrier. Quand je crée un événement celui-ci apparaît bien au survol sur le mini calendrier, mais lorsque je clique sur la date j’obtien une page erreur 404 avec le message :

    Aucun squelette jour.html n’est disponible...

    Or le fichier jour.html est bien présent dans le dossier content du plugin agenda.

    Quel est le souci ?
    Merci
    Yann

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

      J’ai enfin trouvé ce qui n’allait pas. Tout fonctionne correctement.

    • bonjour
      tu peux même expliquer comment tu as résolu ton problème ...

    • Bonjour,

      Effectivement...

      En fait mon fichier jour.html n’était pas au bon endroit ! Je l’ai placé dans mon dossier squelettes et depuis tout fonctionne. Comme c’est la dernière manipulation que j’ai faite, j’en conclus que cela venait de là !

    Reply to this message

  • Bonjour,

    Toujours pas de réponse à mon souci de mini calendrier !
    Dois-je en conclure que ce plugin ne vaut rien ?
    Yann

    Reply to this message

  • Bonjour,
    Pas de réponse pour mon petit souci d’affichage des événements dans le mini calendrier ?

    j’ai installé le plugin et j’ai créé des événements dans l’agenda. Le calendrier mini s’affiche bien mais aucun événement n’apparaît.
    Je ne trouve pas d’où ça vient.

    Quelqu’un a t-il une idée ?

    merci
    yann

    Reply to this message

  • Bonjour j’ai installé le plugin et j’ai créé des événements dans l’agenda. Le calendrier mini s’affiche bien mais aucun événement n’apparaît.
    Je ne trouve pas d’où ça vient.

    Quelqu’un te il une idée ?

    merci
    yann

    Reply to this message

  • 2

    Bonsoir, je découvre ce plugin et j’ai tenté de l’installer mais en vain.
    J’ai bien inséré la balise #CALENDRIER_MINI dans mon squelette mais il n’apparaît pas.
    En revanche quand j’active la visualisation des squelettes et CSS en mode admin celui-ci apparait. Je ne comprends pas! :’-(
    Je suis sous spip 3.1
    Quelqu’un est en mesure de m’aiguiller ou m’aider?

    • Après avoir changer de thème Zspip sans comprendre pourquoi celui-ci est apparu.

    • Bonjour,
      pour ma part le mini calendrier s’affiche bien mais aucun événement n’apparaît alors que j’ai pourtant créé des événements à plusieurs dates diffèrentes ! Une idée ?
      merci et cordialement
      Yann

    Reply to this message

  • Christine D.

    Bonjour,
    Je rencontre un problème d’affichage des dates du calendrier.
    Au moment de la création d’événements et de la sélection des dates de début et fin, l’ouverture du minicalendrier pour la sélection rapide du mois début m’affiche un format comme ceci.
    date mois 1 abbr
    date mois 2 abbr
    ...
    au lieu de
    janvier
    février...
    C’est assez gênant pour mes co-rédacteurs à venir.
    De plus, le choix de la date début n’entraine pas automatiquement une date de fin au moins égale à celle du début, comme c’était le cas avant. (un événement peut finir plus tôt qu’il n’a commencé).
    Cela se produit depuis mon passage en spip3 et la mise à jour des plugins minicalendrier et agenda.
    Pouvez-vous me dire d’où cela peut provenir et comment le résoudre ?
    Merci d’avance,

    Reply to this message

  • Bonjour,

    Lors de l’édition en privé d’un évènement, après enregistrement, nous avons dans la colonne de gauche, le bouton VOIR EN LIGNE.
    En cliquant dessus je tombe sur une URL de type ..../spip.php?evenement197 et avec une belle erreur 404 avec en rouge AUCUN SQUELETTE evenement.html n’est disponible.

    Par defaut effectivmeent je n’en ai pas.
    J’en ai donc rajouté UN à la racine de squelettes et c’est exactement la même chose.

    Le lien VOIR EN LIGNE est il réellement lisible avec le type “evemenent”?
    Avez vous une idée de la problématique ?

    Merci.
    aRT

    Reply to this message

  • 2

    Bonjour,

    je n’arrive pas à supprimer le bouton ’aujourd’hui’. Il est dit qu’on peut le faire en css mais je ne trouve pas.

    merci pour votre aide.

    • Hello,

      Si tu ajoutes à ton fichier css

      .calendriermini .ui-datepicker-buttonpane  {display:none;}

      ça devrait fonctionner

      dd

    • merci DD. ça fonctionne. :-)

      Et bonne année !

    Reply to this message

  • Alexandre

    Bonjour,

    J’ai le même problème que Lisa plus haut. J’ai bien installé les plugins Agenda 2.0 et Mini-calendrier. J’ai crée des évènements et activez cette rubrique comme étant source d’évènement pour le mini calendrier. Lorsque j’insère la balise #CALENDRIER_MINI le calendrier ne s’affiche pas?? J’ai le titre, j’ai le texte (aucun élément ce jour) mais pas d’habillage ?? Je me demande si ce n’est pas lié à une version de Jquery.. J’ai mis la 1.9.1 pour pouvoir utiliser Bootstrap...

    Quelqu’un aurait eu ce problème svp ?

    Une idée ?

    Merci.

    Alexandre

    Reply to this message

Ajouter un commentaire

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