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

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.
    • <agenda_fullcalendar|couleur=mot> prend la couleur associé à un mot clé associé à l’évènement ; si plusieurs mots-clé avec une couleur sont associés à l’évènement, celui ayant l’identifiant le plus important l’emportera. Option disponible à partir de la version 2.5.0 du plugin.

Footnotes

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

Discussion

26 discussions

  • Bonjour,
    Je teste le passage de SPIP 3.2 à SPIP 4 et lorsque full agenda est activé en SPIP 4 il y a l’erreur sur une page article (privé et public) qui liste des évènements :

             Erreur SQL 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'agendafull 'date_fin') AND ((evenements.id_article NOT IN (SELECT * FROM( SELEC' at line 5
    SELECT evenements.date_debut, evenements.horaire, evenements.date_fin, evenements.timezone_affiche, evenements.id_evenement, evenements.titre, evenements.descriptif, L1.id_rubrique, evenements.id_article, evenements.id_article, evenements.id_evenement FROM spip_evenements AS `evenements` INNER JOIN spip_articles AS L1 ON ( L1.id_article = evenements.id_article ) WHERE (evenements.statut = 'publie') AND (evenements.date_debut agendafull 'date_fin') AND ((evenements.id_article NOT IN (SELECT * FROM( SELECT zzza.id_article FROM spip_articles as zzza WHERE 0=1) AS subquery)) AND 0=0) ORDER BY evenements.date_debut
            /var/www/html/site/ecrire/public/composer.php        calculer_select(){ sql_select(); }

    J’ai le plugin agenda version 4.3.4 (en test).

    Reply to this message

  • 1

    Salut, ton plugin est super, mais les styles sont pétés (ça dépend sûrement de mon template aussi, mais, tu parlais d’une MAJ prochaine. L’as-tu déjà réalisée ?

    • non je ne l’ai pas faite, et je ne la ferais pas avant un bout de temps, en tout cas surement pas avant que spip 3.3 soit sortie. Après les styles pétés, bah ca depend sans doute effectivement de ton squelette... “CHEZ MOI CA MARCHE”

    Reply to this message

  • 5

    Bonjour.
    Merci pour ce plugin qui facilite grandement les choses.

    Je m’interroge toutefois sur un aspect : il semble impossible d’ajouter un évènement à un article appelant <agenda_fullcalendar|> : est-ce un artefact de mon site ou y-a-t-il une raison technique ? L’intérêt serait d’avoir un endroit “naturel” pour gérer des évènements qui ne sont pas (encore) associés à un article.

    J’ai contourné la difficulté en créant un article dédié à la gestion des évènements, mais pour les rédacteurs, ce serait pratique de pouvoir rentrer des évènements directement dans l’article qui présente l’agenda.

    • heu, le plugin fournissant uniquement un modèle, il n’a aucune raison qu’il bloque l’ajoute d’evenemtn sur un article...

      vous auriez pas un problème au niveau de la configuration d’agenda, qui permet de restreinte les articles pouvant porter des evenements?

    • Merci de ce retour ultra-rapide. Ça m’a conduit à regarder de plus près, et effectivement, ça ne désactive pas la possibilité.

      Ce qui se passe, c’est que dans l’espace privé l’agenda ne s’affiche pas dans le cadre du corps de l’article mais vient se superposer sur le champ “ajouter un évènement”, ce qui le masque presque complètement.

      À ce stade, aucune idée du pourquoi ni de comment y remédier. Le site utilise sarkaspip reloaded.

    • je reproduis. Un problème de css. Franchement c’est kle genre de choses qui me prend le chou, donc pas le couraghe de regarder. J’ai demandé de l’aide à qq d’autres. On verra.

    • donc grace à nicod, la v2.5.1 corrige ce pb d’affichage. Elle sera dispo très prochainement (qq min/heures)

    • Super réactivité !
      Un grand merci à tous les deux.

    Reply to this message

  • 4

    Bonjour,
    est-il possible d’importer un flux ical (.ics) à cet agenda ? Si oui comment ? Nous ne souhaitons pas passer par l’ajout d’évènement, puisque notre fichier ical fonctionne déjà avec les dates d’articles (#DATE + #DATE_REDAC). Merci !

    • Full calendar facile fonctionne avec les évènements du plugin agenda.

      Si vous souhaiter produire vous même votre agenda a part d’autres sources, je vous invite à lire le tuto

      https://contrib.spip.net/SPIP-3-2-Agenda-et-FullCalendar

      si après vous souhaitez importer des flux ics, il y a plugin qui permet de le faire, en convertissant en evenement du plugin agenda.

    • Merci ! je vais voir full agenda de ce pas. Bonne journée et merci pour cette réponse très rapide.

    • J’ai utilisé pendant longtemps import-ics https://contrib.spip.net/Import-ICS-2-agenda-distant pour ça. Seul souci rencontré, la gestion des caractères accentués. Mais c’était peut-être un problème de configuration du webcalendar source, puisque le format ical sait en principe gérer les jeux de caractères et la “localisation”.

      Je ne sais pas, par contre, s’il est possible d’affecter une couleur aux catégories des VEVENT importés. Peut-être en leur associant un mot-clé ? je ne sais pas si import-ics et agenda permettent ça, nous n’utilisons les mots-clés que pour les rubriques et articles.

    • oui agenda full calendar facile permet des couleurs par mot clés (c’est dans la doc) et import ics permet d’ajotuer automatiquement des mots clés aux evt imports (c’est dans la doc !)

    Reply to this message

  • 8
    JeromeD

    Bonjour,
    J’aurai une question sur les couleurs des évènements... j’ai bien vu que l’on pouvait coloriser les évènements avec le plugin Couleur d’Objet. Toutefois pour chaque évènement il faut aller sur la palette prendre la couleur.
    Dans l’idée, les évènements auront une catégorie et chaque catégorie aura une couleur. Pour cela j’ai utilisé un groupe de mot-clé et our chaque mot-clé (=une catégorie) j’ai défini une couleur ce qui permet à ceux qui vont créer un évènement, uniquement de choisir la catégorie (le mot-clé) et cela défini la couleur...cela marche bien dans les affichages autres mais pour full calendar, je ne peux pas intégrer un truc du genre <agenda_fullcalendar|couleur=mot_cle>?
    Est-ce que cela serait possible selon vous...
    L’idée est bien que l’utilisateur final (rédacteur) n’aille pas piocher la couleur mais un mot-clé et que cela lui associe la couleur?
    Merci d’avance pour les idées

    • bah si ce serait possible. C’est juste pas implémenté.

      Je sais pas quand j’aurais le temps de faire cela. Donc pourriez vous ouvrir un ticket que je n’oublie pas ? (Le liens vers l’espace de ticket est sur la droite).

    • JeromeD

      Super et merci,
      Par contre je ne suis pas arrivé à me créer un compte pour le ticket et mon compte spip contrib n’a pas été reconnu ...je n’ai donc pas pu ouvrir le ticket :-)
      Désolé

    • a oui c’est vrai, il faut demander à l’externe. Bon je vais l’ouvrir et je répondrais là.

    • Pouvez vous tester la version

      https://git.spip.net/spip-contrib-extensions/agenda_fullcalendar_facile/archive/issue1.zip
    • JeromeD

      Bonjour et déjà merci.
      J’ai supprimé l’ancien plugin et ajouter celui-ci.
      J’ai vidé le cache
      J’ai implanté dans l’article le code : <agenda_fullcalendar|couleur=mot_cle>
      Sur cet agenda, j’ai 3 évènements avec 3 mot-clés différents qui ont chacun un code couleur...
      A à l’affichage, j’ai les 3 évènements mais tous de la même couleur (couleur par défaut)...
      J’aurai oublié quelque chose?

    • Non c’est moi qui ait oublié de préciser la syntaxe.

      C’est couleur=mot la syntaxe à tester.

    • JeromeD

      C’est parfait, cela fonctionne à merveille comme la capture l’indique...un super merci pour ce développement qui facilitera l’utilisation de la couleur par mot-clé dans l’agenda
      Bravo
      Il ne me reste plus qu’à coupler la couleur du mot clé avec un marqueur géolocalisé de l’évènement et ce sera prafait...j’ai fait un post sur ce sujet au niveau du plugin GIS.

      Merci Maïeul

    • J’ai vu le post niveau gis. Je doute que cela soit intégrée car cela ferait un pelleté d’option, Mais vous pourrez créer / surcharger votre propre squelette.

      En attendant je publie pour full calendar facile.

    Reply to this message

  • 1

    Je voudrais modifier la chaîne de langue “Mon planning” mais je ne trouve pas où cela se trouve (apparemment dans squelettes/lib/fullcalendar/locale/locale-all.js mais la modif n’est pas prise en compte)
    Merci

    • peut être un problème de cache de chemin. Normalement cela devrait bien être là. Tu peux regarder quel fichier est bien chargé, en regardant le code html?

    Reply to this message

  • 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

    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

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

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.

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