SPIP-Contrib

SPIP-Contrib

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

278 Plugins, 195 contribs sur SPIP-Zone, 142 visiteurs en ce moment

Accueil > Dates, calendriers et agendas > Calendriers > Calendrier Mini > Calendrier Mini 2.0

Calendrier Mini 2.0

19 mai 2012 – par Cedric Morin, James – 125 commentaires

10 votes

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 :

  1. #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 :

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

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

  1. [(#CALENDRIER_MINI{#ENV{date},
  2.  date,
  3.  #URL_PAGE{jour},
  4.  #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 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.

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

Retour en haut de la page

Vos commentaires

  • Le 20 mai à 16:21, par tos87280 En réponse à : Calendrier Mini 2.0

    Bonjour ,

    J’ai mis à jour les derniers plugins agenda et mini calendrier mais rien n’y fait le calendrier ne s’affiche plus.

    Y-a t-il une solution ?

    Merci d’avance pour votre aide.

    http://www.ec-wallon-limay.ac-versailles.fr/

    Répondre à ce message

  • Le 30 avril à 16:21, par crissi_mad En réponse à : Calendrier Mini 2.0

    J’ai installées les version du plugin Agenda 3.11.8 et Calendrier Mini 2.3.4 sur mon site, qui roule sur SPIP 3.0.8.

    Sur le site public le calendrier se montre mais la page se charge avec beaucoup de lenteur (1 min environ) :
    http://www.maristas.es/spip/spip.php?article347

    Des que je suis loguée je reçois le message d’erreur suivant :
    //www.maristas.es/spip/spip.php?page=calendrier mini event.json&lang=es&start=1364767200&end=1367359200, json] 404

    On a un peu tout essayé (on a fourni un squelette jour.html, on a désactivé le caché, le réactivé, effacé l’archive .htaccess, le retourné...), mais rien ne change. La vitesse a charger la page est seulement normale quand on vient d’effacer le cache, mais la deuxieme fois qu’on la charge après, lenteur a nouveau.

    S’il vous plaît une mot d’aide... :-(

    • Le 18 mai à 12:53, par Mist. GraphX En réponse à : Calendrier Mini 2.0

      Après avoir patinéer quelques heures sur une site avec le même message, je me suis rendu compte que c’était le plugin entravaux qui me créait le problème.

      Une fois désactivé tout rentre dans l’ordre.

      Voila si ça peut servir à certains.

    Répondre à ce message

  • Le 17 mai à 17:52, par Fab001 En réponse à : Calendrier Mini 2.0

    Je lis sur la page : « Le pied du mini-calendrier qui contient le bouton aujourd’hui peut-être masqué simplement en CSS. »

    Génial, c’est ce que je veux mais comment on fait concrètement ? parce que la page css est pour le moins obscure ...

    Merci d’avance !

    • Le 18 mai à 08:33, par alain cousin En réponse à : Calendrier Mini 2.0

      dans le plugins
      css/minical.css
      mettre le fichier minical.css dans
      squelettes/css/minical.css
      changer
      .calendriermini .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible;}
      par
      .calendriermini .ui-datepicker-buttonpane button { display : none; }

    Répondre à ce message

  • Le 18 avril à 10:40, par Piero d’Houin En réponse à : Calendrier Mini 2.0

    Bonjour.
    Je fais appel à vous pour résoudre un problème, maintes fois évoqué dans ces colonnes, que j’ai lues avec attention, mais qui ne résout pas mon problème.
    Sur le site http://emploi.spf75.org je suis passé de la version 2.1.20 à la version 3.0.7. Le mini-calendrier s’affiche maintenant avec les nouveau plugins Agenda et Mini-calendrier, les événements s’affichenet sous le mini-calendrier ; dans le mini-calendrier les événement se colorent en jaune et l’infobulle indique le titre de l’événement mais ... quand je clique sur une date d’événement ... je reviens à la page d’accueil alors que je souhaiterai pouvoir aller à la page de l’article concerné.
    Dans la page sommaire j’ai placé ce qui est indiqué :
    [(#CALENDRIER_MINI#ENVdate,
    date,
    #URL_PAGEjour,
    #URL_PAGEcalendrier_mini_event.json)]

    Dans le dossier squelettes j’ai bien une page jour.html et une page calendrier_mini_event.json.html.
    La page jour est idendique à celle qu’a indiqué Cedric dans Spip-Party : http://zone.spip.org/trac/spip-zone/browser/_galaxie_/party.spip.net/squelettes/2012/jour.html#L30

    Donc je ne vois pas ce qui pèche ?
    Comme je ne m’y connais pas trop en programmation, quelqu’un pourrait-il m’aider ? Merci davance.
    Cordialement
    Piero d’Houin

    Répondre à ce message

  • Le 2 mars à 10:40, par vanso En réponse à : Calendrier Mini 2.0

    Bonjour,

    Merci pour ce plugin bien utile notamment pour des associations qui ont besoin de communiquer facilement sur les évènements qu’elles organisent.

    Néanmoins, je rencontre un problème évoqué sur ce forum mais que je n’arrive pas à régler.

    Comme d’autres, j’ai inséré dans « article.html » le code :

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

    et lorsque je clique sur un évènement, je tombe sur une erreur 404. J’ai essayé quelques autres alternatives (copie de « jour.html » et « evenement.html » dans mes squelettes, entre autres), rien ne se passe comme prévu.

    C’est comme si le plugin n’était pas reconnu, ou trouvé.

    C’est là que ça coince : http://www.fdmjc95.org/spip.php?article1

    Le site est en développement, donc le graphisme est ... hum ...

    Merci de bien vouloir me tendre la main, je suis bien ennuyé par ce problème.

    Vanso

    SPIP version 3.0.5 [19905] , pas de thème, pas de Zpip, rien que du SPIP basique

    Agenda 3.11.3
    Mini Calendrier 2.3.4
    CFG 3.0.0
    Facteur 2.3.1
    Saisies 1.28.4
    SPIP Bonux 3.0.4

    PHP et MySQL à jour

    • Le 15 mars à 22:48, par Franck En réponse à : Calendrier Mini 2.0

      Je pense que la solution se trouve sur le forum dans la réponse de cédric du 4 juin 2012 à 12:18.

      En faite, je pense que c’est la doc qui ne l’explique pas assez :

      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 » ;

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

      Ne fonctionne pas, car après insertion du code, dans le squelette de la dist, spip m’a indiqué : "erreur 404", mais aussi comme quoi "Aucun squelette jour.html n’est disponible.."

      Donc soit la doc est "trompeuse", soit il y a un bug
      Essayer de voir sont exemple dans sont explication :)

    • Le 16 mars à 00:01, par Franck En réponse à : Calendrier Mini 2.0

      Dans ton fichier « jour », tu peux mettre par exemple ce que j’ai dans mon fichier :
      C’est pas géniale, mais cela fonctionne y compris quand il y a deux événements le même jour !

      C’est le code que j’avais utilisé en spip 2.1 et le squelette multiflex.
      Maintenant, si tu trouves un moyen pour que cela soit un peu mieux comme présentation (liste des événements dans une rubrique « fantome » par exemple ou lorsqu’il n’y a qu’un article, l’on tombe directement dessus, je veux bien des info)

      <BOUCLE_event_list(EVENEMENTS) {!evenement_passe #ENV{date}|agenda_jourdecal{-1}}{!evenement_a_venir #ENV{date}|agenda_jourdecal{1}}{par date_fin}>
      <!-- {agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)} -->
      [(#LOGO_ARTICLE_RUBRIQUE|#URL_ARTICLE)]
      <a href="#URL_ARTICLE" class="titre">#TITRE</a><br>
      <em> [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|jour)]
      [(#DATE_DEBUT|affdate_mois_annee)]
      <!-- &agrave; [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)] -->
      </em><br> #LIEU<br>
      [
      <div class="#EDIT{intro} texte">(#DESCRIPTIF)</div>
      ]<br>
      </BOUCLE_event_list>
    • Le 16 mars à 09:33, par vanso En réponse à : Calendrier Mini 2.0

      Merci pour ton aide, je vais tester.

    • Le 19 mars à 17:39, par vanso En réponse à : Calendrier Mini 2.0

      Bonsoir,

      J’avance doucement mais j’avoue me perdre dans les fichiers et les boucles.

      Voila ce que j’ai fait :

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

      dans article.html, puis jour.html et calendrier_mini_event.json.html placés dans mon dossier squelettes.

      L’affichage du calendrier est correct (pas d’erreur 404 ni rien) mais le calendrier est inerte, apparemment ça boucle sur l’article en cours. Donc, j’ai bien sûr loupé quelque chose.

      Pour préciser : j’ai essayé ta boucle, dans jour.html, j’ai aussi lu le message de cédric du 4 juin 2012 et essayé diverses insertions dans mes fichiers, rien n’y fait.

      Autrement dit, je suis paumé...

      Merci pour toute aide, je souhaite mourir moins idiot.

    • Le 19 mars à 18:48, par Franck En réponse à : Calendrier Mini 2.0

      Bonjour
      Je crois qu’il faut que tu commences par lire :
      http://www.spip.net/fr_article4453.html
      et
      http://www.spip.net/fr_article3347.html

      Parce que, cela ne me semble logique de mettre du code dans article.html
      Cette page contient se qui sera afficher quand les gens liront un article. cela dit, je connais très mal la dist, donc possible que je me plante aussi :-D

      Bref, tu devrais mettre le code

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

      Dans, par exemple la page sommaire.html que tu enregistres dans le dossier squelettes que tu as créer à la racine de t’on site. (c’est moche, mais ça marche et c’est juste pour l’exemple)

      Ensuite dans un fichier que tu nommes jour.html, tu mets le code que je t’ai donner :

      <BOUCLE_event_list(EVENEMENTS) {!evenement_passe #ENV{date}|agenda_jourdecal{-1}}{!evenement_a_venir #ENV{date}|agenda_jourdecal{1}}{par date_fin}>
      <!-- {agenda date_debut, mois, (#ENV{date}|annee), (#ENV{date}|mois)} -->
      [(#LOGO_ARTICLE_RUBRIQUE|#URL_ARTICLE)]
      <a href="#URL_ARTICLE" class="titre">#TITRE</a><br>
      <em> [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|jour)]
      [(#DATE_DEBUT|affdate_mois_annee)]
      <!-- &agrave; [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)] -->
      </em><br> #LIEU<br>
      [
      <div class="#EDIT{intro} texte">(#DESCRIPTIF)</div>
      ]<br>
      </BOUCLE_event_list>

      Tu l’enregistres dans le dossier « squelettes » que tu as fait également !
      Tu vides le caches de spip et celui de ton navigateur et c’est bon :-)
      Après, pour la présentation, c’est juste une histoire de css, mais là, chaque site est unique
      Perso, à ta place, si tu débutes, le mieux est de prendre un squelette déjà fait (escale, sarkaspip, etc) et l’adapter à tes besoin, cela sera sans doute plus simple que de partir de zéro :-)

    Répondre à ce message

  • Le 17 mars à 12:54, par jlg13 En réponse à : Calendrier Mini 2.0

    Yop,

    Je voudrais afficher les événements sous le mini calendrier qui est dans un

    Répondre à ce message

  • Le 13 mars à 17:07, par jlg13 En réponse à : Calendrier Mini 2.0

    Salut,

    Mon mini-calendrier affiche une date bizarre dans la rubrique où je l’ai installé.
    Lorsque j’appelle l’événement alors la date est juste et mise à celle du jour.

    Des idées ?

    • Le 13 mars à 18:16, par jlg13 En réponse à : Calendrier Mini 2.0

      Autoréponse :

      Au fait j’avais une boucle de RUBRIQUE qui tapait dans le mini-calendrier. J’ai donc sorti le mini-calendrier et c’est bon.

    Répondre à ce message

  • Le 8 février à 20:21, par arkam En réponse à : Calendrier Mini 2.0

    Bonsoir,

    je cherche la syntaxe pour n’afficher dans le mini calendrier que les événements propre à un article...

    a+

    • Le 8 février à 21:08, par arkam En réponse à : Calendrier Mini 2.0

      Pour l’instant j’utilise
      [(#CALENDRIER_MINI#SELF, #URL_PAGEcalendrier_mini_event.json )]

      mais ceci affiche dans le calendrier joli les dates d’événements liés à tous les articles

    • Le 8 février à 21:16, par arkam En réponse à : Calendrier Mini 2.0

      désolé pour le codage

      [(#CALENDRIER_MINI{ #SELF, #URL_PAGE{calendrier_mini_event.json}})]
    • Le 11 février à 22:07, par arkam En réponse à : Calendrier Mini 2.0

      je me réponds après qqs tentatives empiriques

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

    Répondre à ce message

  • Le 5 février à 03:00, par yohannp En réponse à : Calendrier Mini 2.0

    Hello,
    J’ai un petit problème en SPIP 3.0.5. Le message suivant apparait :
    //test1.cogitstudio.org/spip.php?page=agenda.json&id rubrique=33&var mode=recalcul&lang=fr&start=1359673200&end=1362092400, json] 404

    Je n’ai pas le message en local mais je l’ai en ligne. Une idée ?

    Répondre à ce message

  • Le 28 janvier à 19:29, par XF En réponse à : Calendrier Mini 2.0

    Bonjour,

    Je rencontre également ce message d’erreur, j’ai désinstallé le plugin puis réinstallé mais je rencontre toujours le même problème :

    « spip.php ?page=calendrier mini event.json&lang=fr&start=1356994800&end=1359673200, json] 404 »

    Merci d’avance pour votre aide.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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

  • Plugin Contacts & Organisations

    4 janvier 2010 – 175 commentaires

    Ce plugin ajoute à SPIP des fonctionnalités de gestionnaire de contacts. Distingue les personnes morales (organisations) des personnes physiques (contacts) en conservant tous les attributs des auteurs SPIP. En conjonction avec le plugin (...)

  • Less is more

    30 décembre 2009 – 11 commentaires

    Un thème sobre en 2 colonnes sur fond blanc et des couleurs de polices avec plusieurs ton de gris. Mise en page avec une largeur fixe alignée à gauche de 960px (660px pour la colonne principale et 240px pour la colonne de gauche.) Présentation (...)

  • ScolaSPIP pour SPIP3

    21 mai 2012 – 213 commentaires

    Un plugin-squelette personnalisable pour sites Web d’établissements scolaires

  • La Fabrique

    20 avril 2012 – 138 commentaires

    La Fabrique est un outil pour webmestres ou développeurs qui souhaitent créer des plugins. La Fabrique est capable de générer le code source minimal d’un plugin pour SPIP 3 (elle accélère donc le démarrage d’un plugin) et peut s’occuper également de (...)

  • Importeur / Exporteur de configurations

    29 janvier 2011 – 19 commentaires

    Ce plugin permet à plusieurs plugins de pouvoir exporter leur configuration respective dans un seul et même fichier de configuration au format YAML. Plusieurs systèmes de sauvegarde de configuration existent déjà. SaveCFG permet par exemple de (...)