Agenda Fullcalendar facile

Dans un précédent article, nous expliquions comment afficher un agenda Fullcalendar sur son site avec le plugin agenda.
Cependant, ceci nécessite des manipulation de squelettes, ce qui n’est pas toujours évident lorsqu’on débute.

La présente contribution permet d’intégrer plus facilement un agenda Fullcalendar, sans qu’il ne soit cependant possible d’avoir une configuration avancée [1].

Fonctionnalité

Avec le plugin Agenda activé, le présent plugin permet d’afficher dans un article un agenda Fullcalendar, affichant les évènements par mois, semaine ou jour, et liant chaque évènement à la page de l’article qui lui est associé.

Agenda souhaité au final
Agenda souhaité au final

Installation

Le plugin nécessite SPIP 3.1, il s’installe comme n’importe quel plugin.

Utilisation

Une fois le plugin installé, et les événements créés, il suffit d’insérer le code suivant dans un article:

<agenda_fullcalendar|>

Colorer les évènements

À partir de la version 2.1.0, il est possible de choisir la couleur associé aux événements.

Pour ce faire, il vous faut:

  • avoir le plugin Couleur d’Objet activé, en version 0.3.0 minimum et les couleurs réglées
  • passer en paramètre du modèle l’objet sur lequel on prend la couleur:
    • <agenda_fullcalendar|couleur=rubrique> prend la couleur associé à la rubrique où se trouve l’évènement.
    • <agenda_fullcalendar|couleur=article> prend la couleur associé à l’article où se trouve l’évènement.
    • <agenda_fullcalendar|couleur=evenement > prend la couleur associé à l’évènement lui-même.

Footnotes

[1Si le besoin s’en fait sentir, il est nécessaire d’apprendre des notions de squelettes SPIP, puis de lire mon tutoriel.

updated on 13 February 2019

Discussion

7 discussions

  • 6

    merci, bien pratique pour avoir un outil clé en main.
    J’aurais une question :
    -  Est-il possible, facile, de faire pointer les liens du calendrier directement vers les pages événements (gérées par Agenda et Zpip, Aveline et NoiZetier) plutôt que vers les articles qui les contiennent ? J’ai regardé les fichiers de ce plugin, mais je vois pas du tout comment...

    merci pour toute piste utile

    • A priori, il faudrait surcharger le fichier
      agenda.json.html
      en remplacant #URL_ARTICLE par #URL_EVENEMENT

    • Parfait ! ça marche. (voir page en test sur site en construction)
      j’avais pas trop osé farfouiller...
      bon, me reste plus qu’à modifier un peu les styles, et j’aurai un super calendrier.

      Ca me permet d’aller direct à l’info, surtout qu’il pourrait y avoir plusieurs événements dans un même article pour ne pas multiplier les articles

      merci pour efficacité et rapidité

    • Bonjour,
      je viens de tester, ça fonctionne très très bien, merci beaucoup pour tout le travail effectué.
      Bonne fin de journée

    • J’ai fait la modif :

      surcharger le fichier
      agenda.json.html
      en remplacant #URL_ARTICLE par #URL_EVENEMENT

      dans ma copie de agenda.json.html dans /squelettes et j’ai l’erreur :
      Filtre full_calendar_jplusun non défini        squelettes/agenda.json.html        _evenements        0

      merci

    • Le filtre est défini uniquement dans agenda.json_fonctions.php, il faudrait que tu le duplique aussi.

    • Ah oui, merci
      Entre temps je l’avais mis dans mes_fonctions mais c’est sans doute pas très propre.

    Reply to this message

  • 2

    Bonjour,

    J’ai voulu surcharger le squelette agenda.json.html rapidement.
    Je le place donc dans mon répertoire squelette.

    J’ajoute rendering,’background’, dans le tableau

    	#SET{tableau,#ARRAY{id,#ID_EVENEMENT,
    		title,(#TITRE|html2unicode|unicode2charset),
    		rendering,'background',
    		allDay,(#HORAIRE|=={non}|?{#EVAL{true},#EVAL{false}}),
    		start,#DATE_DEBUT,
    		end,#GET{date_fin},
    		url,#URL_ARTICLE,
    		description,(#DESCRIPTIF|html2unicode|unicode2charset),
    	}}

    Mais j’ai une erreur dans le squelettes : Undefined filter full_calendar_jplusun

    Si je modifie le plugin pour ajouter cette option : ça passe.

    Ma seule solution est d’ajouter cette fonctions

    mes_fonctions.php

    ?

    Merci.
    PS : sinon, oui : je peux améliorer le plugin et proposer un plugin de plugin …

    • Ah c’est bien possible que dans ce cas il faille aussi que tu reprenne le fichier agenda.json_fonctions.php, qui contient la def.

    • Ah zut :)
      Pas très grave mais bon .

      J’ai copié les 2 fichiers dans mon squelettes :)
      Si je trouve le temps, je ferais un plugin de plugin …

      Merci

    Reply to this message

  • 2
    Hanjo

    Bonjour,

    Un soucis avec Fullcalendar facile 2.4.0 dans SPIP 3.2.3.
    Un évenement de 3 jours (toute la journée) est correctement indiqué dans l’article, mais le model de Fullcalendar ne rend que les deux premières journées.

    Reply to this message

  • Avec bootstrap 3.3.7, grille 4 -8 le calendrier fonctionne bien.
    En xs il se comporte comme si le javascript était désactivé. J’ai donc une liste. Comment contourner cela alors que si je mets #TITRE dans un col-sm-3 je peux voir un petit calendrier?

      <div class="container-fluid">
    <div class="row">
    <div class="hidden-xs col-sm-4 ">colonne gauuche</div>
    <div class="hidden-xs col-sm-8 ">#TEXTE </div>
    <div class="visible-xs col-xs-12">tout l'écran</div>
    <div class="visible-xs col-xs-12"> #TEXTE </div>
    </div><!--row-->
     </div><!--.conteneur fluideBS--> 

    NOTE Pour tester j’ai mis #TITRE à la fois dans le sm-4 et le sm-8 et je m’attendais à voir un petit calendrier d’un bord et un grand de l’autre. Mais NON. Seul le sm-4 (le premier) apparaît. Le sm-8 se comporte comme pour le xs-12 il devient une liste sans javascript.

    Reply to this message

  • 11

    Autre bogue: J’ai mis dimanche comme première journée de la semaine dans Agenda, enregistrer, mais fullcalendar reste à lundi
    Pourtant j’ai cru comprendre que agenda et full calendar sont liés?

    • full calendar utiliser les données d’agenda, mais pas forcément les règlages.

      Je vais voir si je peux facilement changer le réglage du premier jour de la semaine dans full calendar facile pour qu’il prenne celui d’agenda-.

    • la prochaine version du plugin prendra en compte les règlages de l’agenda sur ce point.

    • c’est possible que ce soit les réglages d’accps restreint qui mettent le bazar...

    • Je viens de faire la mise à jour et la semaine commence maintenant par dimanche. MERCI

      Sur la rubrique sans autorisation restreinte, avec ou sans la composition article-agenda.html, le message d’erreur apparaît ou disparait selon qu’on est branché ou pas. Le message d’erreur est donc lié au fait que l’on soit branché ou pas (webmestre ou admin restreint).

      Par contre cet erreur n’empêche pas full calendar facile de bien afficher les événements du calendrier. Ainsi, en attendant une solution à ce problème gênant est-ce que je peux camoufler (avec un display:none) le message d’erreur juste pour la page agenda car je dois présenter cette fonctionnalité du site en début de semaine prochaine. Merci

    • a priori oui, on peut toujours camoufler. Mais c’est pas normal qu’il y ait ce message. J’en comprend pas la raison.

    • ok, bon, je sais pas pourquoi il arrive pas à générer le fichier statique, Mais pourquoi? je ne sais pas. Peut être un souci du côté des droits... il faudrait vraiment des accès plus dev pour savoir ce qu’il en est.

    • J’ai fait un test sur le serveur en créant un nouveau spip et seulement agenda et fullcalendar facile . Tout était parfait. Ajout d’accès restreint OK.
      J’ai jeté le site officiel et j’en ai installé un nouveau OK
      Puis j’ai mis le https et j’ai ajouté

      RewriteCond %{HTTPS} !=on
      RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

      dans le .htaccess et la même erreur revient ????
      Après relecture attentive sur le https j’ai déplacé la ligne de code (ci-haut) à la toute fin du fichier .htaccess et l’erreur a disparu! OUF! MERCI POUR TOUT

    • J’ai écrit trop vite. Après un gros 2 heures sans problème, l’erreur est revenue.
      J’ai jeté et ré-installé un spip neuf (http) avec les seuls plugins agenda et fullclendar
      Ça empire avant j’avais l’erreur juste sur la page agenda. Maintenant je l’ai aussi sur la page rubrique.

    • Il se pourrait qu’il y ait un bug dans la config serveur qui empeche de requeter sur le serveur lui même.

      mais comme je n’arrive plus à accéder à l’espace privé, je ne peux tester.

      Il faudrait faire un test simple en essayant de joindre en document distant un document du site lui-même.

    • J’ai une piste, avec cette histoire de https.

      D’abord, un peu d’explication.

      Pour construire la version non javascript du calendrier (pour des raisons d’accessibilités et d’indexation), fullcalendar facile va chercher le fichier json du site pour en faire une boucle DATAS dessus. Donc il fait une requete http(s). C’est cette requête qui visiblement échoue (cf le message 404).

      Or, cela peut être lié à un bug de SPIP qui n’arrive pas à faire des requetes https en tls 1.2, ce qui est visiblement le cas de ton site.
      Donc pour corriger cela il faudrait appliquer le patch qui a été préparé pour SPIP.

      Donc remplacer le fichier ecrire/inc/distant.php par cette version https://core.spip.net/projects/spip/repository/revisions/24018/entry/branches/spip-3.2/ecrire/inc/distant.php.

      Si jamais cela ne suffit pas, je ne sais vraiment pas.

    • Cela fonctionne! Merci mille fois!

    Reply to this message

  • 2

    https://sitememoires.com/spip.php?article28
    C’est bizarre je viens de créer un article en dehors d’une zone admin restreint et en public je n’ai pas le message.
    En même temps, lorsque je regarde la page agenda avec acces restreint j’ai le message d’erreur. (voir image jointe)

    • l’image est trop petite je n’arrive pas à lire

    • /sitememoires.com/local/cache-json/jsondyn-agenda json-e60966c8.json?1547159187, json] 404 / /
      2 //sitememoires.com/local/cache-json/jsondyn-agenda json-0783247c.json?1547159188, json] 404

    Reply to this message

  • 3

    Alors que tout se passe bien sur mon ordi avec MAMP voilà qu’une fois en ligne j’ai une erreur autant en public qu’en privé: .../local/cache-json/jsondyn-agenda json-f1c8f085.json?1547146158, json] 404
    J’ai l’impression que c’est lié au serveur???
    PHP Version 7.1.25

    • Est-ce que le fichier en question a été créé?

    • Non j’ai juste installer les plugins agenda et fullcalendar facile, créer un article, insérer le code <agenda_fullcalendar|couleur=article>, ajouter un événement et j’ai ce message d’erreur au dessus du calendrier qui par contre s’affiche bien
      Est-ce que je peux t’enoyer un login et mdp en message privé pour que tu vois?

    • oui, monprenom@monprenom.net

    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