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}
où
-
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}
où
-
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 passerdate
en 2e 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.
Discussions par date d’activité
11 discussions
Bonjour,
merci pour vos efforts sur ce plugin.
J’ai une question concernant un fonctionnement légèrement embêtant. J’utilise Calendrier_mini 2.4.1avec Agenda 3.31.2 pour présenter un calendrier contenant les évènements du mois en cours sur la page d’accueil.
Le souci est que tous les évènements s’affichent une fraction de seconde avant le calendrier, ce qui entraine un allongement de la taille de la hauteur du site.
Sauriez-vous m’aider ?
Merci d’avance,
ARRO
... ensuite s’affiche bien le calendrier, mais la taille de hauteur de la page reste la même.
Bonjour,
je réponds à mon post en donnant une solution de contournement.
En fait, j’ai rajouté des parenthèses autour de la boucle des évènements (fichier « calendrier_mini_event.json.html ».
Cela n’affiche plus que le message : "Rien pour ce mois", et ne modifie pas la hauteur de page.
Par contre, comment pourrait-on faire pour ne pas voir apparaitre le texte avant mise en forme (cf. image) ?
Cordialement,
ARRO
Bonjour,
Je réponds à mon message afin de donner une autre solution pour mon problème initial.
J’ai finalement remis la version originale du fichier « calendrier_mini_event.json.html » ; donc retiré les « () », et opté pour la mise en commentaire du code de « calendrier_mini.html » concernant les navigateurs sans JS.
Mon problème est donc résolu.
Si cela peut être utile à d’autres...
Cordialement,
ARRO.
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 :
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.
Suivre les commentaires : |