SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 79 visiteurs en ce moment

Accueil > Dates, calendriers et agendas > Plugin Agenda > SPIP 3, Agenda et FullCalendar

SPIP 3, Agenda et FullCalendar

6 août 2012 – par Maïeul – 344 commentaires

31 votes

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

Depuis SPIP 3, l’affichage d’un agenda sous forme de calendrier par jour/semaine/mois à changé. Les filtres |agenda_memo et apparentés sont désormais obsolètes. Il en est de même pour les filtres agendafull_memo et apparentés du plugin Agenda.

Désormais, l’affichage d’un calendrier s’appuie sur la librairie javascript FullCalendar. Voici un tutoriel pour comprendre comment s’en servir avec Agenda 3.0.

Pour une première approche, vous pouvez utiliser le plugin Agenda Fullcalendar facile.

Attention : le présent tutoriel n’est plus adapté aux version de SPIP > 3.2, car cette dernière change la version de fullcalendar utilisée.

Souhait

Nous souhaitons afficher tous les événements (publiés) du site sous forme calendaire, en proposant d’abord un affichage par mois, avec possibilité de basculer en affichage par semaine ou par jour.

Agenda souhaité au final

Pré-requis

  • SPIP 3.0.x, en ayant conservé l’organiseur dans plugins-dist.
  • Plugin Agenda 3.6.11 minimum.
  • Compréhension de la mécanique des squelettes de SPIP.
  • Quelques évènements à afficher.

Vous n’avez pas besoin d’installer la librairire FullCalendar : elle est livrée avec SPIP.

Principe de base

Pour afficher notre agenda nous allons :

  1. créer un squelette agenda.html, avec un div dont l’attribut id est agenda.
  2. appeler dans le squelette le script fullcalendar et ses feuilles de styles.
  3. utiliser ce script pour afficher l’agenda dans dans la div#agenda.
  4. créer un squelette agenda.json.html fournissant au script les données à afficher dans l’agenda.

Fichiers manipulés

 
Dans cet article nous manipulons deux fichiers squelettes : 

  • agenda.html (qui contient le code nécessaire à l’affichage du calendrier).
  • agenda.json.html (qui nous permet de générer une liste d’événements compatible avec le script fullcalendar).

Si l’un de ces squelette existe déjà, je vous invite à utiliser le mécanisme de surcharge de SPIP.

Création du squelette

Il nous faut créer un squelette agenda.html complet (à savoir une page SPIP classique avec les balises <head><body> etc), dans lequel nous mettons un div dont l’attribut id est agenda à l’endroit où nous souhaitons que l’agenda s’affiche.

Au dessus de ce div, nous allons appeler :

  • la version compressée du script fullcalendar
  • les styles associés à ce script.

Pour ce faire, nous utilisons la balise #CHEMIN :

  1. <link rel='stylesheet' type='text/css' href='#CHEMIN{lib/fullcalendar/fullcalendar.css}' />
  2. <script type='text/javascript' src='#CHEMIN{lib/fullcalendar/fullcalendar.min.js}'></script>
  3. <div id="agenda">
  4. </div>

Télécharger

Appel à l’agenda

Nous allons maintenant ajouter les fonctions javascript qui permette d’afficher l’agenda. Pour ce faire, nous allons mettre au dessus du div (cela pourrait être dedans ou en dessous, cela importe peu) le code suivant, que je vais commenter :

  1. <script type="text/javascript">/*<![CDATA[*/
  2. jQuery(document).ready(function() {
  3.  
  4.        
  5.         jQuery('#agenda').fullCalendar({
  6.                         editable: false,
  7.                         events: "[(#URL_PAGE{agenda.json})]",
  8.                         header: {
  9.                                 left: 'prevYear,prev,next,nextYear today',
  10.                                 center: 'title',
  11.                                 right: 'month,agendaWeek,agendaDay'
  12.                         },
  13.                         firstDay: 1,
  14.                         monthNames:['<:date_mois_1|attribut_html:>','<:date_mois_2|attribut_html:>','<:date_mois_3|attribut_html:>','<:date_mois_4|attribut_html:>','<:date_mois_5|attribut_html:>','<:date_mois_6|attribut_html:>','<:date_mois_7|attribut_html:>','<:date_mois_8|attribut_html:>','<:date_mois_9|attribut_html:>','<:date_mois_10|attribut_html:>','<:date_mois_11|attribut_html:>','<:date_mois_12|attribut_html:>'],
  15.                         monthNamesShort:['<:date_mois_1_abbr|attribut_html:>','<:date_mois_2_abbr|attribut_html:>','<:date_mois_3_abbr|attribut_html:>','<:date_mois_4_abbr|attribut_html:>','<:date_mois_5_abbr|attribut_html:>','<:date_mois_6_abbr|attribut_html:>','<:date_mois_7_abbr|attribut_html:>','<:date_mois_8_abbr|attribut_html:>','<:date_mois_9_abbr|attribut_html:>','<:date_mois_10_abbr|attribut_html:>','<:date_mois_11_abbr|attribut_html:>','<:date_mois_12_abbr|attribut_html:>'],
  16.                         dayNames:['<:date_jour_1|attribut_html:>','<:date_jour_2|attribut_html:>','<:date_jour_3|attribut_html:>','<:date_jour_4|attribut_html:>','<:date_jour_5|attribut_html:>','<:date_jour_6|attribut_html:>','<:date_jour_7|attribut_html:>'],
  17.                         dayNamesShort:['<:date_jour_1_abbr|attribut_html:>','<:date_jour_2_abbr|attribut_html:>','<:date_jour_3_abbr|attribut_html:>','<:date_jour_4_abbr|attribut_html:>','<:date_jour_5_abbr|attribut_html:>','<:date_jour_6_abbr|attribut_html:>','<:date_jour_7_abbr|attribut_html:>'],
  18.                         buttonText: {
  19.                                         today: '<:date_aujourdhui|attribut_html:>',
  20.                                         month: '<:organiseur:cal_par_mois|attribut_html:>',
  21.                                         day: '<:organiseur:cal_par_jour|attribut_html:>',
  22.                                         week: '<:organiseur:cal_par_semaine|attribut_html:>'
  23.                         },
  24.                         weekMode : 'liquid',
  25.                         loading: function(bool) {
  26.                                 if (bool) $('#calendrier-loading').show();
  27.                                 else $('#calendrier-loading').hide();
  28.                         },
  29.                         timeFormat: {
  30.                                
  31.                                 agenda: "H'h'mm{ - H'h'mm}",
  32.                                
  33.                                 '': "H'h'(mm)"
  34.                         },
  35.                         axisFormat: "H'h'(mm)",
  36.                         allDayText:'<:organiseur:cal_jour_entier|attribut_html:>',
  37.                         columnFormat: {
  38.                                 month: 'ddd',    
  39.                                 week: 'ddd d/M',
  40.                                 day: 'dddd d/M'  
  41.                         },
  42.                         titleFormat: {
  43.                                 month: 'MMMM yyyy',                            
  44.                                 week: "d [ MMM] [ yyyy]{ '&#8212;' d MMM yyyy}",
  45.                                 day: 'dddd d MMM yyyy'                  
  46.                         },
  47.                         dayClick: function(date, allDay, jsEvent, view) {
  48.                                 if(view.name=='month'){
  49.                                         $('.fc-button-agendaWeek').click();
  50.                                         $('#calendrier').fullCalendar( 'gotoDate', date );
  51.                                 }
  52.                                 else
  53.                                         if(view.name=='agendaWeek'){
  54.                                                 $('.fc-button-agendaDay').click();
  55.                                                 $('#calendrier').fullCalendar( 'gotoDate', date );
  56.                                         }
  57.                         },
  58.                         isRTL : [(#LANG_DIR|=={rtl}|?{true,false})]
  59.         })
  60.  
  61. });
  62. /*]]>*/</script>

Télécharger

  • l. 2 jQuery(document).ready(function() signifie qu’à la fin du chargement du document, le navigateur va exécuter la fonction dans les accolades qui suivent.
  • l. 5 $('#agenda').fullCalendar signifie que nous allons demander à javascript de modifier le div dont l’id est égale à agenda pour y mettre à la place .…l’agenda.
  • Le code entre parenthèse puis accolade correspond aux options passées à l’agenda (l. 5-59) :
    • l. 6 : on ne peut éditer les évènements depuis l’agenda.
    • l. 7 : on récuperera la liste des évènements via un squelette agenda.json.html, nous détaillerons ce squelette dans la partie suivante
    • l. 8-12 : qu’affiche-t-on dans l’entête de l’agenda ? :
      • l. 9 : à gauche, on met les boutons de navigation par mois/semaines/jours (selon le type de calendrier) et par années (dans tout les cas).
      • l. 10 : au centre, on affiche le titre de l’agenda, correspondant à la période affichée (par ex. « Août 2012 »).
      • l. 11 : à droite, on affiche la bascule vers l’agenda en mode mois, semaine ou jour.
    • l. 13 : le premier jour de la semaine est le lundi (=1)
    • l. 14 : noms des mois, définis avec les chaînes de langues de SPIP.
    • l. 15 : noms des mois en abrégé.
    • l. 16 : noms des jours.
    • l. 17 : nom des jours en abrégé.
    • l. 18-23 : textes des boutons.
    • l. 24 : selon les mois, on affichera 4, 5 ou 6 semaines, mais en faisant varier visuellement la hauteur des semaines, pour avoir un mois dont la hauteur est constante. Je renvoie à la documentation sur weekMode.
    • l. 25-27 : permet d’afficher un contenu le temps que l’agenda se charge. Nous en parlerons plus loins.
    • l. 29-34 : formatage des heures dans l’agenda :
      • l. 31 : lorsqu’on est par semaine ou par jour, on affiche l’heure et les minutes.
      • l. 33 : dans les autres cas, juste l’heure.
    • l. 35 : formatage des heures sur l’axe vertical (pour l’affichage par jours).
    • l. 36 : texte indiquant qu’un événement dure une journée entière.
    • l. 37-41 : formatage des dates dans les entêtes de colonnes :
      • l. 38 : pour l’affichage par mois.
      • l. 39 : pour l’affichage par semaines.
      • l. 40 : pour l’affichage par jours.
    • l. 42-46 : titre de l’agenda :
      • l. 43 : lors de l’affichage par mois.
      • l. 44 : lors de l’affichage par semaines.
      • l. 46 : lors de l’affichage par jours.
    • l. 47-57 : action à executer lorsqu’on clique sur un jour.
    • l. 58 : notre agenda doit-il se lire de gauche à droite ou de droite à gauche ?

D’autres options sont bien sûr possible : on se reportera à la documentation de FullCalendar.

Sélection des évènements à afficher

Pour pouvoir afficher les évènements, il va falloir nous fabriquer un squelette agenda.json.html (cf. l. 7) qui retournera les évènements qui nous intéreressent sous forme de donnée JSON.

La page spip.php?page=agenda.json sera automatiquement appelée par FullCalendar, qui lui passera deux arguments, variant selon la période demandée :

  • start, correspondant au timestamp de la date de début.
  • end, correspondant au timestamp de la date de fin.

Dans le squelette agenda.json.html correspondant à cette page, nous pourrons récuperer ces informations via : #ENV{start} et #ENV{end} (voir mon article sur la balise #ENV). On pourrait éventuellement passer d’autres arguments, en appliquant le filtre |parametre_url sur #URL_PAGE{agenda.json}.

Voilà un squelette agenda.json.html basique :

  1. #HTTP_HEADER{Content-Type: application/json; charset=#CHARSET}
  2. [<BOUCLE_evenements(EVENEMENTS){', '}{par date_debut}  
  3. {agendafull date_debut,date_fin, periode,
  4.         #VAL{Y}|date{#ENV{start}}, #VAL{m}|date{#ENV{start}},     #VAL{d}|date{#ENV{start}},
  5.         #VAL{Y}|date{#ENV{end}}, #VAL{m}|date{#ENV{end}}, #VAL{d}|date{#ENV{end}}}
  6.         >
  7.                                         [(#ARRAY{id,#ID_EVENEMENT,
  8. title,[(#TITRE|html2unicode|unicode2charset)],
  9. allDay,[(#HORAIRE|=={non}|?{#EVAL{true},#EVAL{false}})],
  10. start,#DATE_DEBUT,
  11. end,#DATE_FIN,
  12. url,#URL_ARTICLE,
  13. description,[(#DESCRIPTIF|html2unicode|unicode2charset)]}|json_encode)]
  14. </BOUCLE_evenements>]

Télécharger

Je commente rapidement ce squelette :

  • l. 1. On demande à SPIP de :
    • Ne pas insérer de boutons d’administration.
    • Dire au navigateur que la page retournée est du json, et fournir le charset.
    • l. 2 et l .15, les crochets servent à indiquer que nous retournons plusieurs objets JSON, chacun correspondant à un évènements.
    • l. 2 nous bouclons sur les évènements. Entre chaque élèment de la boucle, nous affichons une virgule ({", "}). Nous trions par date de début : ceci servira plus loin lors de l’affichage des données sans Javascript.
    • l. 3-5 pour sélectionner les évènements, nous utilisons le critère agendafull. Les options de ce critère nous indique :
      • date_debut : que le champ date_debut servira pour repérer … date de début de sélection.
      • date_fin : que le champ date_fin servira pour repérer … date de fin de sélection.
      • periode que la période sélectionné sera déterminée par les options suivantes.
      • #VAL{Y}|date{#ENV{start}}, #VAL{m}|date{#ENV{start}},     #VAL{d}|date{#ENV{start}} que le début de la période correspond à la date passée dans #ENV{start}. La syntaxe un peu absconse que vous voyiez issu permet d’extraire, respectivement, l’année, le mois et la jour depuis un timestamp.
      • #VAL{Y}|date{#ENV{end}}, #VAL{m}|date{#ENV{end}}, #VAL{d}|date{#ENV{end}}</cpde> que la fin de la période correspond à la date passée dans <code>#ENV{end}.
  • l. 7-14 : nous remplissons un tableau SPIP via #ARRAY, puis nous le transformons en objet JSON, via le filtre ||json_encode. Ce tableau comprend les entrées suivantes :
    • id : identifiant unique pour FullCalendar. Ca tombe bien, SPIP attribut un identifiant à chaque évenement : #ID_EVENEMENT
    • title : le titre. On transforme les entité HTML en caractère unicode (|html2unicode) puis on s’assure de proposer des données avec le bon charset (|unicode2charset).
    • allDay : on précise si l’évènement dure toute la journée. Utilisée pour l’affichage par jour. Pour préciser cela, on s’appuie sur le champ #HORAIRE qui contient justement cette information. On utilise #EVAL pour indiquer qu’on insére une valeur booléenne et non pas textuelle.
    • start : date de début. On garde le format SQL.
    • end : date de fin. On garde le format SQL.
    • url : lien. Pour le coup, on renvoie vers l’article.
    • description : description de l’évènement. Là encore, on converti en Unicode, puis dans le charset correct.

À noter que l’on pourrait définir d’autres données pour chaque évènement : on se refera à la documentation de l’objet Event de FullCalendar. Par exemple, on pourrait indiquer des classe HTML en fonction de la rubrique.

Il vous faut également créer un fichier agenda.json_fonctions.php contenant les lignes suivantes :

  1. <?php
  2.  
  3. include_spip('inc/json');
  4. ?>

Télécharger

Ceci assurera que le filtre json_encode est bien chargé [1].

Et pour les personnes sans Javascript ?

Et oui, tout le monde n’a pas de Javascript. Comment on fait alors ? La solution consiste à afficher un calendrier sous forme de liste dans un div dont l’id est calendrier-loading. Si Javascript est activé, FullCalendar va masquer ce div.

Comme on a déjà fabriqué une boucle dans le squelette agenda.json.html, nous allons nous en reservir, afin d’éviter de dupliquer les critères. Pour ce faire, nous allons utiliser la boucle DATA de SPIP 3.

Nous mettons donc dans le squelette agenda.html :

  1. <B_agenda>
  2. <div id="calendrier-loading">
  3. <p class="pagination">#PAGINATION</p>
  4. <BOUCLE_agenda(DATA){source json, #PRODUIRE{fond=agenda.json, start=0,end=2147483647,_=#REM|time}}{pagination 15}>
  5.     <dl>
  6.         [<dt><:agenda:evenement_titre:></dt>
  7.         <dd><a href="#VALEUR{url}">(#VALEUR{title})</a></dd>]
  8.        
  9.         [<dt><:agenda:evenement_date:></dt>
  10.         <dd>(#VALEUR{start}|Agenda_affdate_debut_fin{#VALEUR{end},#VALEUR{allDay}|=={true}|?{non,oui}})</dd>]
  11.        
  12.         [<dt><:agenda:evenement_descriptif:></dt>
  13.         <dd>(#VALEUR{description})</dd>]
  14.     </dl>
  15. </BOUCLE_agenda>
  16. <p class="pagination">#PAGINATION</p>
  17. </div>
  18. </B_agenda>

Télécharger

  • l. 1-3 : partie optionnelle avant de la boucle, avec la pagination éventuelle.
  • l. 4 : code de la boucle. Nous bouclons sur des données ((DATA)) au format json ({source json) extrait du fichier produit (#PRODUIRE) par le squelette agenda.json.html avec la valeur de start égale à 0, c’est à dire au 1 janvier 1970 à minuit, et la valeur end égale à 2147483647, c’est à dire à la date maximale gérée par les ordinateurs actuel, le 19 janvier 2038, 3h14m7s [2]. Ainsi, nous sommes sûr de récuperer tout les évènements de l’agenda. L’option _=#REM|time permet de s’assurer de ne pas avoir de cache, puisque nous passons comme argument le moment d’appel (|time). Nous paginons de 15 en 15.
  • l. 5-14 : nous affichons les données pour chaque évènement, via #VALEUR{donne}. Ces données sont tirées du JSON.
  • l. 16 et suivante ; partie optionelle arrière de la boucle.

On obtient alors un agenda, certe sommaire, mais au moins existant sans Javascript :

Agenda pour les personnes sans Javascript

Conclusion

Vous voilà maintenant prêt à avoir un agenda avec FullCalendar. Bien sûr, il y aurait beaucoup de chose à améliorer, cependant cet article aborde déjà beaucoup de notions :
-  produire du JSON avec SPIP.
-  le formatage de FullCalendar.
-  les boucles DATA.

Notes

[1Dans certain cas, que je n’ai pas encore réussi à déterminer précisément, il n’y a pas besoin de cela...

[2Voir l’article sur le bug de l’an 2038.

Dernière modification de cette page le 20 octobre 2017

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 3 janvier à 18:38, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

    Bonjour,
    Suite au passage en SPIP 3.2 le fichier agenda.html ci-dessous n’affiche plus l’agenda.
    J’ai lu les messages et testé les fichiers agenda.html, agenda.json.html, et agenda.json_fonction.php de la contribution sans amélioration.
    Plugins actifs : Agenda 3.18.6 et Mini Calendrier 2.4.1
    PHP Version 5.6.19

    • Le 3 janvier à 18:48, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Oui, la version 3.2 a changé la version de Fullcalendar, ce qui a cassé la compatibilité, car les paramètres passés ne sont plus les mêmes.

      pas eu le temps d’écrire un article actualisé.

      Mais vous pouvez corriger en vous inspirant des corrections que j’ai apportées à fullcalendar facile.

      https://zone.spip.org/trac/spip-zone/changeset/107067

      et

      https://zone.spip.org/trac/spip-zone/changeset/107068

    • Le 3 janvier à 20:51, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Un grand merci pour les indications et la célérité de la réponse !
      L’affichage de mensuel est réapparu :-)
      Il y une erreur dans la boucle Evenement mais peut-être est-ce un paramètre obsolète pour fullcalendar ?

      04 #SETstart,#ENVstart|strtotime
      05 #SETend,#ENVend|strtotime
      06 #HTTP_HEADERContent-type:text/javascript ;
      07 [ 08 {agendafull date_debut,date_fin, periode,
      09 #VAL{Y}|date{#{start}},
      10 #VAL{Y}|date{#{end}}},
      11 #VAL{Y}|date{#GET{start}}, #VAL{m}|date{#GET{start}}, #VAL{d}|date{#GET{start}},
      12 #VAL{Y}|date{#GET{end}}, #VAL{m}|date{#GET{end}}, #VAL{d}|date{#GET{end}}}
      13 >
      14 [(#ARRAYid,#ID_EVENEMENT,
      15 title,[(#TITRE|html2unicode|unicode2charset)],
      16 allDay,[(#HORAIRE|==non| ?#EVALtrue,#EVALfalse)],
      17 start,#DATE_DEBUT,
      18 end,#DATE_FIN,
      19 url,#URL_ARTICLE,
      20 description,[(#DESCRIPTIF|html2unicode|unicode2charset)]
      |json_encode)]
      21 ]

    • Le 3 janvier à 20:53, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Quelle erreur ?

    • Le 3 janvier à 21:56, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Une erreur en ligne 7 dans le fichier « agenda.json.html » qui était dans le message précédent.

      Voir la copie d’écran.

    • Le 3 janvier à 21:59, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      bah du coup c’est une erreur de syntaxe dans ton squelette, rien a voir avec fullcalendar. A toi de fouiller pour trovuer l’erreur exacte,.

    • Le 3 janvier à 22:48, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Etrange cette erreur car les modifications sont les lignes supplémentaires ci-dessous :
      04 #SETstart,#ENVstart|strtotime
      05 #SETend,#ENVend|strtotime
      ...
      11 #VALY|date#GETstart, #VALm|date#GETstart, #VALd|date#GETstart,
      12 #VALY|date#GETend, #VALm|date#GETend, #VALd|date#GETend

      Et la modification de ces 2 suivantes comme dans la révision « 107068 »
      09 #VALY|date#start,
      10 #VALY|date#end,

      L’instruction, d’origine, ci-dessous est particulière. Je vais rechercher son détail
      13 >
      14 [(#ARRAYid,#ID_EVENEMENT,

    • Le 4 janvier à 11:14, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour,

      Avec le cache vidé il n’y a plus d’erreur de squelette :-)

      Il reste 1 défaut, le texte du mois est corrompu :
      janvier 2018undefinedundefined

      Le choix de la langue d’affichage est configurable, non ?

    • Le 4 janvier à 11:18, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Le choix de la langue d’affichage se fait via le paramètre locale

      cf

      https://zone.spip.org/trac/spip-zone/changeset/107067

      Je ne sais pas d’Ou vient le undefined, sans doute d’un paramètre non passé.

    • Le 5 janvier à 20:55, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour Maïeul,
      Je ne comprend pas. Les évènements ne sont pas récupérés...
      Quelle piste faut il suivre ???

      Norbert

    • Le 5 janvier à 21:43, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      En l’absence de vrai site de démo pour voir le problème + du squelette, je peux difficilement t’aider.

    • Le 5 janvier à 22:11, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Le site est en ligne : http://www.ffmc73.org/spip.php?page=agenda depuis hier soir... Ou j’ai cru avoir résolu l’erreur ;-)

    • Le 9 janvier à 13:00, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour,

      Est-ce qu’il serait possible d’avoir un avis, une piste de recherche, par rapport au dysfonctionnement constaté en ligne ?
      Il y a 2 cas :
      -  soit il n’y a pas eu de calcul de la page agenda et le calendrier affiché est réduit à une fenêtre de 20px,
      -  soit la page est recalculée ou un nouvel évènement ajouté et là une erreur s’affiche en rouge.

      Cordialement.

      Norbert

    • Le 9 janvier à 14:49, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Non, pas d’avis et peu de temps à passer dessus.

    • Le 9 janvier à 18:33, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

      Dommage. Je vais devoir supprimer cette agenda en attendant que le plugin soit compatible.

    • Le 9 janvier à 18:42, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      1. Présentement nous ne somme pas sur un plugin.
      2. Il est parfaitement possible d’utiliser fullcalendar et un agenda sous SPIP 3.2. Iil faut juste adapter le JS. Mais je n’ai pas le temps de me pencher sur votre JS....

    Répondre à ce message

  • Le 5 janvier à 18:10, par Norbert73 En réponse à : SPIP 3, Agenda et FullCalendar

    Bonjour Maïeul,

    Tout d’abord un grand remerciement pour l’animation de ce forum !
    Je n’y comprends rien et je suis béotien en JS ! L’agenda a toujours un problème de récupération des événements. J’ai vérifié la fonction de tout les paramètres utilisés dans le script sur « https://fullcalendar.io/docs » et la syntaxe du script exécuté dans « agenda.html ».
    La boucle agenda ci-dessous ne renvoie pas d’erreur. Mais il y a un problème avec la lecture de la variable « #TITRE » qui provoque le message « UNDEFINED ».
    La console Firefox indique
    TypeError : jQuery(...).parents(...).formulaire_dyn_ajax is not a function

    http://192.168.1.13/prive/javascript/ajaxCallback.js:1032:2
    mightThrow
    http://192.168.1.13/prive/javascript/jquery.js:3583:21
    resolve/</process<
    http://192.168.1.13/prive/javascript/jquery.js:3651:12
    TypeError : jQuery(...).not(...).attr(...).colorbox is not a function
    mediaboxInit
    http://192.168.1.13/plugins-dist/mediabox/javascript/spip.mediabox.js:25:3
    mightThrow
    http://192.168.1.13/prive/javascript/jquery.js:3583:21
    resolve/</process<
    http://192.168.1.13/prive/javascript/jquery.js:3651:12
    TypeError : jQuery.spip is undefined
    onAjaxLoad
    http://192.168.1.13/prive/javascript/ajaxCallback.js:21:3

    http://192.168.1.13/local/cache-js/jsdyn-javascript_porte_plume_start_js-c2e14539.js:272:2
    dispatch
    http://192.168.1.13/prive/javascript/jquery.js:5205:16
    add/elemData.handle
    http://192.168.1.13/prive/javascript/jquery.js:5014:6

    Norbert

    Répondre à ce message

  • Le 10 décembre 2017 à 21:14, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

    Hello

    J’adapte peu à peu ma version de calendrier_quete_json.html pour spip 3.2

    Me reste un souci avec l’affichage de l’heure : si un événement commence à 9h, l’affichage est « 09 » et je préférerais « 09h » ou mieux « 09h00 »

    Et j’aimerais aussi afficher l’heure de fin de l’événement.

    Est-ce possible ?

    • Le 10 décembre 2017 à 21:16, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Sans doute, il faut regarder dans la doc de fullcalendar

    • Le 10 décembre 2017 à 21:33, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      sans doute mais elle est en anglais et je n’y comprends donc pas grand-chose.

    • Le 10 décembre 2017 à 21:43, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Si je lis bien
      https://fullcalendar.io/docs/text/timeFormat/
      et
      https://fullcalendar.io/docs1/utilities/formatDate/
      tu peux mettre dans ton js après la description des evenements :

      timeFormat: "H'h'mm"

      (non testé, mais H veut dire heure sur 24 h, le h de séparation est protégé par les guillemets

      et pour afficher la date de fin

      https://fullcalendar.io/docs/text/displayEventEnd/

      displayEventEnd:true

      a tester

    • Le 10 décembre 2017 à 21:53, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      Ah j’aurais du expliquer mieux : je n’ai pas de js, j’utilise le plugin agenda et la seule personnalisation que je fais tient dans le calendrier_quete_json.html

      Je n’y connais rien en js mais je pourrais essayer. Quel serait donc le js à copier et à surcharger ?

    • Le 10 décembre 2017 à 22:39, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      bah calendrier_quete_json.html cela produit du json, format js

    • Le 11 décembre 2017 à 20:22, par edouard1964 En réponse à : SPIP 3, Agenda et FullCalendar

      Bonsoir,
      pour le problème des minutes qui ne s’affiche pas, j’ai modifié le fichier modèle agenda_fullcalendar.html comme suit :

              $('#agenda').fullCalendar({
                              locale: '[(#LANG|strtolower)]',
                              editable: false,
                              navLinks: true,
                              eventLimit: true,
                              timeFormat: 'HH:mm',

      et ça fonctionne en affichant l’heure sous la forme 09:00

      Bonne soirée.

    • Le 11 décembre 2017 à 21:26, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      @ Maîeul : je ne comprends pas le « tu peux mettre dans ton js après la description des evenements ». A quel endroit du fichier json écrire ce que tu proposes ? J’ai essayé de rajouter

           timeFormat,"H'h'mm",
           displayEventEnd,true,

      dans le ARRAY mais aucun changement.

      @ edouard1964 : je n’utilise pas le plugin fullcalendar_facile dont le fichier dont tu parles semble issu.

    • Le 11 décembre 2017 à 23:13, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      le mieux serait encore que tu nous envoie un lien vers la description de ton json, parce que je ne suis pas sûr de voir ce que tu fais.

    • Le 12 décembre 2017 à 08:48, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      Pas de souci, voici le fichier où je joue avec les mots-clés pour la couleur de chaque évènement.

      #SET{start,#ENV{start}|strtotime}
      #SET{end,#ENV{end}|strtotime}

      #HTTP_HEADER{Content-type:text/javascript;}
         [<BOUCLE_evenements(EVENEMENTS){', '}{par date_debut}{titre_mot?}{lang}
         {agendafull date_debut, date_fin, periode,
                      #VAL{Y}|date{#GET{start}}, #VAL{m}|date{#GET{start}}, #VAL{d}|date{#GET{start}},
                      #VAL{Y}|date{#GET{end}}, #VAL{m}|date{#GET{end}}, #VAL{d}|date{#GET{end}}}
           >
         <BOUCLE_mot(MOTS){id_evenement}{type=Agenda_couleur}{0,1}>
           [(#ARRAY{
           id,#ID_EVENEMENT,
           title,[(#_evenements:TITRE|html2unicode|unicode2charset)],
           allDay,[(#HORAIRE|=={non}|?{#EVAL{true},#EVAL{false}})],
           start,#DATE_DEBUT,end,#DATE_FIN,
           url,#URL_EVENEMENT,
           color,[(#DESCRIPTIF|PtoBR|html2unicode|unicode2charset)]
           }|json_encode)]
         </BOUCLE_mot>
         </B_mot>
           [(#ARRAY{
           id,#ID_EVENEMENT,
           title,[(#_evenements:TITRE|html2unicode|unicode2charset)],
           allDay,[(#HORAIRE|=={non}|?{#EVAL{true},#EVAL{false}})],
           start,#DATE_DEBUT,end,#DATE_FIN,
           url,#URL_EVENEMENT,
           color,#336699
           }|json_encode)]
         <//B_mot>
         </BOUCLE_evenements>]
    • Le 30 décembre 2017 à 22:06, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      Arf, je viens de m’apercevoir qu’avec ce fichier calendrier_quete_json.html, rien ne s’affiche dans le mini-calendrier. Je sèche complet là !

    • Le 1er janvier à 14:07, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Envoie moi un mail privé pour faire le point, je suis perdu.

    • Le 3 janvier à 20:29, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Bon,

      déjà, ce n’est pas dans le fichier json que doit se régler le format de date, mais bien dans le javascript appellant.

      Après

      1. events: "[(#URL_PAGE{agenda.json})]",

      ajouter

      1.                         timeFormat: '<monformat>',

      Ensuite la doc que j’ai envoyé est obsolète (pas hyper pratique de trouver la bonne doc). Les règles de formatages des dates ont changés. Cela utilise désormais les règles de « Moment » (un script js, si j’ai bien compris).

      http://momentjs.com/docs/#/displaying/format/

      du coup tu devrais faire quelque chose comme

                              timeFormat: 'H[h]mm',

      pour avoir l’heure (sur 24h, avec un seul chiffre si besoin) suivi du caractère h suivi des minutes (toujours sur deux chiffres, si tu veux un seul chiffre, mais un seul m).

      Après dans ton mail, tu demande d’afficher aussi l’heure de fin : c’est déjà le cas pour la vue par semaine et par jour, pas pour celle par mois car trop étroit par défaut.

      Mais tu peux ajouter

                              displayEventEnd: true,

      après le formatage de ta date.

    • Le 3 janvier à 21:19, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      ok j’ai eu un peu de mal à trouver le javascript appelant car il s’agit d’un html plus précisément /plugins-dist/organiseur/contenu/calendrier.html

      Mais cool, voici un fichier avec lequel je vais pouvoir jouer.

      Mille mercis pour ton aide précieuse.

    • Le 3 janvier à 22:12, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      Hello

      J’ose une autre question : est-il possible de séparer l’horaire de début et l’horaire de fin. En fait je voudrais avoir l’heure de début à gauche et l’heure de fin à droite.

      Possible ou pas ?

    • Le 3 janvier à 22:19, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      pas compris, parce que c’est déjà ce que fait displayEventEnd:true

    • Le 3 janvier à 22:30, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      displayEventEnd : true permet d’afficher l’heure fin mais le code retourné est

      <span class="fc-time">8h00 - 19h00</span>

      On ne peut donc pas jouer avec ...

      J’aurais préféré un truc du genre

      <span class="fc-time-start">8h00</span>
      <span class="fc-time-end">19h00</span>
    • Le 3 janvier à 22:32, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      C’est peut être possible, mais tu ne coupera pas à la documentation en anglais.... en tous cas pour moi, je n’irai pas chercher plus loin.

    • Le 3 janvier à 22:46, par Jean Christophe Villeneuve En réponse à : SPIP 3, Agenda et FullCalendar

      Je suis dessus mais bon ...

      En tout cas, je te réitère mes remerciements.

    Répondre à ce message

  • Le 8 décembre 2017 à 11:57, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

    Bonjour, J’aurais aimé, dans fullcalendar, pouvoir gérer la couleur des événements en fonction de leur nature. Pourriez-vous me dire comment faire, sachant que je n’y connais rien en programmation. Actuellement, les événements sont en couleur, mais de façon très aléatoire.
    Merci de votre aide.

    Nous utilisons spip 3.2, Agenda FullCalendar facile 2.0.0, Agenda 2.18.6 et Soyez Créateurs Rebirth 4.2.13.

    • Le 8 décembre 2017 à 13:11, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Deja vous n’utiliser pas cette contribution, mais fullcalendar facile, ce qui est autre chose (qui volontairement ne propose pas trop d’option).

      Ensuite il faudrait en savoir plus sur la manière dont vous comptez déterminer les couleurs des évenements. Par article ? par rubrique ? pour chaque evt ?

    • Le 8 décembre 2017 à 15:13, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Ah bon... ce n’est pas le bon fullcalendar ? Eh bien on peut le changer, si « le vrai » va avec notre configuration... où puis-je le trouver alors ?
      Je pensais faire une couleur par événement : par exemple toutes nos « sorties » d’une couleur. Les « expositions » d’une autre, le travail sur logiciels d’une troisième, etc. Mais s’il faut faire autrement on essaiera de s’adapter... :-)

    • Le 8 décembre 2017 à 15:17, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Bah vous utiliser le plugin fullcalendar facile, qui est documenté à cette article 6866, alors qu’ici vous êtes sur une documentation technique pour faire votre fullcalendar à votre sauce. C’est juste que vous avez posé votre question au mauvais endroit. D’un point de vue technique, cela ne change pas grand chose.

      Si je reviens à votre problème, vous ne faites pas une couleur par évenement, mais une couleur par type d’évenement. D’où la question suivante : est-ce que tous vos évènements sont rattachés au même article ? Ou bien est-ce que vous avez un article par type d’évenement ? Ou encore une rubrique par type d’evenement ?

    • Le 8 décembre 2017 à 15:20, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Oups, l’article du full calenard facile est article 4883

    • Le 8 décembre 2017 à 15:21, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Décidement, je disais article Agenda Fullcalendar facile

    • Le 8 décembre 2017 à 15:54, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Nous avons une rubrique pas type d’événement

    • Le 8 décembre 2017 à 17:20, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Bon, c’est deja un premier pas. J’ai modifié le plugin agenda fullcalendar facile.

      Il vous faut la version 2.1.0 qui sera disponible en zip.

      Pour régler les couleurs 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.
    • Le 8 décembre 2017 à 17:23, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      ps : les deux plugins seront disponibles dans leurs derniers versions peu après 18h15

    • Le 8 décembre 2017 à 20:08, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Wahou ! Super ! GRAND Merci pour cette réactivité... J’ai téléchargé Couleur d’objet 0.3.0
      Je suppose que c’est sur la page de Agenda Fullcalendar facile que je trouverai sa mise à jour. Je surveille :-)
      Encore un très grand merci.

    • Le 8 décembre 2017 à 20:10, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Si vous avez pu telecharger la version 0.3.0 de couleur d’objet, alors sur agenda fullcalendar facile vous devriez pouvoir telecharger la dernière version du plugin (même si les données affichées sur la page ne sont pas à jour, le zip, lui, le sera).

      Cela étant, je vous conseilleriait d’utiliser le système d’installation et de mis à jour automatique des plugins intégré à SPIP.

    • Le 8 décembre 2017 à 21:08, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Dans mes plugins, je vois Fullcalendar Facile 2.1.0 déjà installé. Cela signifie que les mises à jour se font automatiquement ? C’est super !

    • Le 8 décembre 2017 à 21:21, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Voilà, tout est installé. Mais que signifie « et les couleurs réglées » ? Je ne vois pas comment les régler les couleurs...

    • Le 8 décembre 2017 à 23:37, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Ça y est, j’ai trouvé comment mettre une couleur dans un objet !

      Mais je n’ai pas compris ce que signifie « passer en paramètre du modèle l’objet sur lequel on prend la couleur : ».
      J’ai mis une couleur à la rubrique dans laquelle se trouvent les articles (auxquels j’ai mis la même couleur) qui sont associés à des événements auxquels j’ai aussi mis cette couleur.
      Mais rien n’a changé dans mon calendrier . =(
      Il y a donc quelque chose que je n’ai pas fait ! Probablement ce passage en paramètre du modèle...

    • Le 9 décembre 2017 à 00:32, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      A la place de saisire

      <agenda_fullcalendar>

      mettre

      <agenda_fullcalendar|couleur=rubrique>
    • Le 9 décembre 2017 à 02:12, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      AH. Mais où faut-il que je saisisse <agenda_fullcalendar|couleur=rubrique> ? Quand je crée un événement, je dis simplement la date, l’heure éventuellement le lieu.
      Là où je dois saisir la couleur, je n’ai que la place pour la couleur. Alors je ne vois pas où je dois écrire...
      Je viens d’écrire ce code dans le « descriptif » de l’événement... et hop ! un calendrier remplace la formule ! Magique !
      Sauf que... Cet agenda affiche des nombres (en plus des jours du mois bien sûr !) auxquels je ne comprends pas grand chose :
      « +2 en plus » « +1 en plus » quand je clique sur ces nombres, ça me ça me déroule une fenêtre avec des lignes numérotées :
      67
      67
      67
      67
      67
      73
      73
      qui ressemblent à des numéros d’articles. Mais pourquoi le même article sur tant de lignes ?
      C’est bien curieux tout ça... Les couleurs n’apparaissent toujours pas dans full calendar... Bon, la nuit porte conseil... Peut-être que demain l’affichage ne sera pas aussi fantaisiste... ou que j’en comprendrai les mystères... :-)

    • Le 9 décembre 2017 à 12:27, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Bah c’est vous qui me dites que vous utilisez full calendar facile, qui implique de mettre un code dans l’article où l’on veut voir le calendrier... relisez la documentation....

    • Le 9 décembre 2017 à 12:44, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour Maïeul
      Ah ! Alors je n’y comprends plus rien... Qu’est ce que ce grand calendrier où s’affichent nos événements si ce n’est pas full calendar ? Nous avons un « mini calendrier » dans notre menu, et lorsqu’on clique sur le mois de ce mini calendrier, une grand calendrier plus détaillé s’affiche en grand sur la page. Dans nos plugins, nous avons « full calendar facile ». Ce n’est donc pas lui qui s’affiche ??

    • Le 9 décembre 2017 à 12:46, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      C’est moi qui ne comprend plus rien. Le plus simple serait que vous m’envoyiez une url de la page à laquelle vous pendez pour que je sache ce qu’il en est exactement.

    • Le 9 décembre 2017 à 13:09, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

    • Le 9 décembre 2017 à 13:18, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Ce n’est clairement pas du fullcalendar (voir la copie d’écran sur cet articlee). Je ne sais pas si c’est une fonctionnalité du squelette soyez createur ou si c’est quelque chose qui a été ajouté par quelqu’un pour une version personnalisé de ce squelette, mais en tout cas ce n’est pas du Fullcalendar.

    • Le 9 décembre 2017 à 14:19, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Le site a été repris d’un site en spip 2. ... passé en spip 3.2. et refondu... Ça vient peut-être de là. Mais je ne sais pas comment « faire le ménage » !
      En tout cas, merci pour cette aide. Et désolée pour le travail supplémentaire dans fullcalendar facile.

    • Le 9 décembre 2017 à 14:29, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Bah la refonte n’a pas pu ajouter automatiquenet un calendrier ;-) Il y a bien quelqu’un qui l’a ajouté cette page....

    • Le 9 décembre 2017 à 14:52, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Ben... C’est sans doute moi ! C’est moi qui ai fait le transfert. Mais personne de chez nous n’a « écrit le code » qui génère la page !

    • Le 9 décembre 2017 à 15:01, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      bah du coup c’est sans doute une fonctionnalité native de soyezcreateur, je vous invite à vous tourner vers l’auteur de ce squelette

    • Le 9 décembre 2017 à 16:48, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      Très bien. Merci infiniment. Bon week-end

    • Le 13 décembre 2017 à 23:41, par rhyss En réponse à : SPIP 3, Agenda et FullCalendar

      J’ai suivi tes conseils. Effectivement, j’ai eu confirmation qu’il y a bien un code spécifique pour un agenda dans soyez créateurs.
      Cordialement

    Répondre à ce message

  • Le 19 octobre 2017 à 19:03, par Pi r En réponse à : SPIP 3, Agenda et FullCalendar

    bonjour, dans spip 3.2 fullcalendar propose pas mal de possibilités d’interaction, dont la saisie et l’édition d’évènements en cliquant sur un jour dans le calendrier, la méthode employée fait appel en ajax à un fichier add_events.php chargé d’enregistrer les données en base :

    $.ajax({
               url: 'add_events.php',
               data: 'title='+ title+'&start='+ start +'&end='+ end,
               type: "POST",
               success: function(json) {
               alert('Added Successfully');
               }
              });

    ma question c’est peut on et comment à ce niveau faire appel à l’action editer_evenement du plugin agenda ?
    merci et bonne soirée

    Répondre à ce message

  • Le 16 octobre 2017 à 16:31, par Riccardo En réponse à : SPIP 3, Agenda et FullCalendar

    Bonjour,
    J’ai un problème : Je n’arrive pas à insérer des événements. Une fois j’ai eu dans une côté le message : Erreur SQL1054 Unknown column ’attendee’ in ’filedlist’ SELECT attendee, origin, notes FROM spip_evenements WHERE id_evenements=4.

    J’ai ne comprends pas la raison. J’ai effectué la mise au jours de toutes le plugins, ....et j’utilise spip 3.0.20.

    Pourrez m’aider, s’il vous plait ?
    Merci
    Riccardo

    • Le 16 octobre 2017 à 16:39, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour,

      il s’agit plus d’un problème du plugin agenda que de cette contribution, qui concerne uniquement l’affichage. Donc la page idéal pour cette question serait https://contrib.spip.net/Agenda-2-0

      Cela étant attendee me fait penser au plugins import ics.

      L’utilisez vous.

    • Le 16 octobre 2017 à 16:56, par Riccardo En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour,
      Désolé d’avoir confondu de contribution. No je n’utilise pas de plugins import ics, mais j’ai une plugins champs extra...
      J’utilise le kitcnrs 5.3.8 et le couteau suisse.
      Merci.
      Dois-je poser ma question sur la contribution Agenda-2-0

    • Le 16 octobre 2017 à 17:06, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      a oui, le kit cnrs est à l’origine du champ attendee.

      Le mieux serait de contacter son auteur. En attendant, vous pouvez créer ce champ manuellement avec PHP my admin

    • Le 16 octobre 2017 à 17:27, par Riccardo En réponse à : SPIP 3, Agenda et FullCalendar

      OK.
      Merci beaucoup !

    Répondre à ce message

  • Le 1er octobre 2017 à 20:12, par Pi r En réponse à : SPIP 3, Agenda et FullCalendar

    bonjour, le pipeline agenda quete_calendrier_prive qui liste les évènements dans l’organiseur privé sélectionne aussi les évènements en cours de rédaction, c’est justifié ou on peut restreindre aux évènements publiés ? merci

    Répondre à ce message

  • Le 31 mars 2017 à 07:25, par Patrick En réponse à : SPIP 3, Agenda et FullCalendar

    Bonjour,
    Je recherche l’affichage d’une modal au survol de l’évenement comme ici au click :
    http://imagesetpeche.free.fr/BS3/
    Il s’agit d’un fullcalendar externe au spip
    Ici, par contre,
    http://imagesetpeche.free.fr/spip.p...
    je n’arrive pas à activer la modalbox.
    Quelqu’un l’a dejà fait.
    Je cherche une piste...
    Bonne journée

    • Le 31 mars 2017 à 11:54, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      je ne comprend pas : si vous arrivé à le faire sur un fullcalendar externe, pourquoi n’arrivez vous pas à le faire sur un full calendar interne ?
      il faudrait reprendre juste le code non ?

    • Le 1er avril 2017 à 06:40, par Patrick En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour et merci pour votre réponse.
      J’utilise un code très court dans les deux dans l’ajax3
      Les fichiers json ne sont pas en cause.
      C’est dans l’ajax qu’il y a l’appel a la modalbox.

      1.                         eventClick:  function(event, jsEvent, view) {
      2.                         //set the values and open the modal
      3.                           $('#modalTitle').html(event.title);
      4.                           $('#modalBody').html(event.description);
      5.                           $("#startTime").html(moment(event.start).format('Do MMMM hh:mm'));
      6.                           $("#endTime").html(moment(event.end).format('Do MMMM'));
      7.                           $("#eventContent").dialog({ modal: true, title: event.title,width:300});
      8.                         }

      Télécharger

      et dans le body le contenu de la modal :

      <div id="eventContent" title="Event Details" style="display:none;">
         Du:         <span id="startTime"></span><br>
         Au:         <span id="endTime"></span> <br>       
         Descritif:        <p id="modalBody"></p>
      </div>

      Je n’arrive pas à les intégrer à la page agenda.html de mon squelettes.

    • Le 1er avril 2017 à 12:51, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      dans la version SPIP, vous n’avez pas mis d’evenement .eventclick.

      je ne comprend non plus pourquoi vous n’arrivez pas à intégrer le body de votre modal dans le squelette.

    • Le 3 avril 2017 à 07:03, par Patrick En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour et merci pour la réponse et les conseils.
      Je vois tout ça en local.
      Bonne journée

    Répondre à ce message

  • Le 7 mars 2017 à 00:02, par crazyspip En réponse à : SPIP 3, Agenda et FullCalendar

    Bonjour,

    J’utilise agenda 3 avec Agenda Fullcalendar facile, ça fonctionne super, merci pour les plugins. J’aimerais cependant :

    1- pouvoir créer un événement sans lien vers un article.
    En cherchant, j’ai trouvé qu’il était possible d’utiliser une constante _AGENDA_AUTORISER_ORPHELINS dans mes_options.php mais quelle syntaxe faut-il utiliser au juste ?

    2- pouvoir, surtout, créer un événement dont le lien point hors du site Spip.
    Mon agenda répertorie des actions organisées par diverses associations et je ne souhaite pas nécessairement écrire mon propre article sur telle ou telle action mais pointer vers la page de leur site, par exemple.
    Jusqu’à présent, je n’ai que quelques entrées dans l’agenda et j’utilise une parade qui est de créer un article virtuel sur Spip qui lui-même redirige vers le site extérieur mais ce n’est pas très efficient comme méthode, surtout lorsque les dates se multiplieront.

    Pouvez-vous m’aider ? Grand merci !

    • Le 7 mars 2017 à 09:44, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      Je ne sais pas. Cet article est vraiment consacré à l’utilisation d’agenda en combinaison avec Fullcalendar. Je vous suggère de poser la question sur la page du plugin agenda directement : Agenda 2.0 et ultérieur. Je sais que l’option est ajouté depuis peu, mais je ne m’en suis jamais servi.

    • Le 7 mars 2017 à 20:09, par crazyspip En réponse à : SPIP 3, Agenda et FullCalendar

      Bonjour Maïeul,
      Merci pour la réponse. J’avais hésité sur l’endroit où poser ma question mais comme la page agenda 2 renvoie vers celle-ci...
      Pas de souci, je copie/colle là-bas. Bonne soirée.

    Répondre à ce message

  • Le 17 novembre 2016 à 16:35, par kramix En réponse à : SPIP 3, Agenda et FullCalendar

    Bonjour,

    déjà, merci pour la doc’ qui m’a bien aidée jusqu’à présent, mais voila que je calle... Et impossible de trouver ce que je cherche sur le net...

    Mon objectif est assez simple, ajouter une classe (Via un className) dans le json afin de pouvoir varier le Background-color en fonction de l’emplacement de l’évènement dans mon arborescence, via les stylesheets (Et ce sans toucher au JS, tant que possible... :x).

    Donc, voila déjà mon json :

    #HTTP_HEADER{Content-type:text/javascript;}
    [
    <BOUCLE_presse(EVENEMENTS){id_rubrique=6}{', '}{par date_debut}       
    {agendafull date_debut,date_fin, periode,
            #VAL{Y}|date{#ENV{start}}, #VAL{m}|date{#ENV{start}}, #VAL{d}|date{#ENV{start}},
            #VAL{Y}|date{#ENV{end}}, #VAL{m}|date{#ENV{end}}, #VAL{d}|date{#ENV{end}}}
            >
                                            [(#ARRAY{id,#ID_EVENEMENT,
    title,[(#TITRE|html2unicode|unicode2charset)],
    allDay,[(#HORAIRE|=={non}|?{#EVAL{true},#EVAL{false}})],
    start,#DATE_DEBUT,
    end,#DATE_FIN,
    url,#URL_ARTICLE,
    className,jaune,
    description,[(#DESCRIPTIF|html2unicode|unicode2charset)]}|json_encode)]
    </BOUCLE_presse>
    ,
    <BOUCLE_evenements(EVENEMENTS){id_rubrique!=6}{', '}{par date_debut}{doublons}
    {agendafull date_debut,date_fin, periode,
            #VAL{Y}|date{#ENV{start}}, #VAL{m}|date{#ENV{start}},     #VAL{d}|date{#ENV{start}},
            #VAL{Y}|date{#ENV{end}}, #VAL{m}|date{#ENV{end}}, #VAL{d}|date{#ENV{end}}}
            >
                                            [(#ARRAY{id,#ID_EVENEMENT,
    title,[(#TITRE|html2unicode|unicode2charset)],
    allDay,[(#HORAIRE|=={non}|?{#EVAL{true},#EVAL{false}})],
    start,#DATE_DEBUT,
    end,#DATE_FIN,
    url,#URL_ARTICLE,
    description,[(#DESCRIPTIF|html2unicode|unicode2charset)]}|json_encode)]
    </BOUCLE_evenements>]

    De base, aucun soucis, mon calendrier s’affiche correctement, les couleurs suivent... Mais, lorsque je regarde les évènements passés, je découvre que l’agenda n’affiche simplement pas les évènements de la période octobre 2015 à octobre 2016...

    Concernant le fichier HTML, il reste sensiblement le même que celui servant d’exemple ici, à la différence que j’ai adapté les chemins, bien sur...

    Des idées, des pistes, des erreurs à relever ?

    Merci d’avance !

    • Le 17 novembre 2016 à 16:38, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      a priori la question des couleurs et celle des évènements passés sont indépendantes.

      il faudrait ouvrir le fichier .json produit pour voir si les evenements y sont bien. Si ce n’est pas le cas, sans doute un problème dans le passage des paramètres.

    • Le 17 novembre 2016 à 16:42, par kramix En réponse à : SPIP 3, Agenda et FullCalendar

      Désolé pour le double post, mais j’ai oublié un détail intéressant :

      suivant l’identifiant de rubrique, le résultat n’est pas le même... Par exemple, si dans la deuxième boucle, j’utilise un « id_rubrique !=40 », pas de soucis, tout s’affiche, tandis qu’un « id_rubrique=40 » me renverra la même erreur que le « id_rubrique !=6 »... Et non, je ne me suis pas trompé, le problème s’inverse bien suivant l’ID rubrique, alors que rien ne le justifie dans mon arbo’...

    • Le 17 novembre 2016 à 16:45, par Maïeul En réponse à : SPIP 3, Agenda et FullCalendar

      honnetement, sans site de démo, je ne peux pas savoir. Il faut vraiment regarder le résultat du .json et vérifier que tout y est.

    • Le 17 novembre 2016 à 16:58, par kramix En réponse à : SPIP 3, Agenda et FullCalendar

      il faudrait ouvrir le fichier .json produit pour voir si les evenements y sont bien.

      Je l’ai fait, et oui, ils y sont... Je vais me pencher sur le passage des paramètres, du coup... En espérant ne pas y rester des jours.

      Merci !

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

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

  • Champs Extras 3

    16 janvier 2012 – 634 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Éditorial (HTML5UP)

    27 novembre 2017 – 61 commentaires

    Squelette SPIP pour intégrer le modèle Editorial de HTML5UP https://html5up.net/editorial Configuration La page de configuration permet quelques réglages. On y défini la couleur principale du site, des informations de contact et le contenu de la (...)

  • Timeline Me

    18 janvier – 10 commentaires

    TimelineMe - ​http://mickaelr.github.io/jquery-timelineMe/ - est un plugin jquery qui permet d’afficher des informations sur une ligne de temps. Le présent plugin pour SPIP l’utilise et propose un modèle pour afficher les articles d’une rubrique de (...)

  • GIS 4

    11 août 2012 – 1479 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Grappes 1.0

    23 novembre 2012 – 34 commentaires

    Présentation et nouveautés Cette version 1.0 du plugin Grappes est un portage pour SPIP 3.x. Le plugin permet de grouper des objets de SPIP dans des grappes. Les objets du core (articles, rubriques, auteurs, etc.) sont pris en charge, ainsi que (...)