SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 228 visiteurs en ce moment

Accueil > Outils pour plugins > Itérateurs > iCalendar > Plugin iCalendar

Plugin iCalendar

29 décembre 2010 – par Fil – 39 commentaires

16 votes

Libraire iCalcreator

Le plugin icalendar contient la librairie iCalcreator de Kjell-Inge Gustafsson (disponible sur le site http://www.kigkonsult.se/iCalcreator/ en licence GNU/GPL 2.1 ou ultérieure). Cette librairie permet notamment d’écrire et de lire des fichiers au format iCalendar (RFC 2445). C’est le format d’échange qu’utilisent la plupart des logiciels de calendrier, qu’ils soient « de bureau » ou « en ligne ». Vous pouvez utiliser ce plugin pour exploiter la librairie en PHP.

Utilisation avec les itérateurs de SPIP

Le plus intéressant de ce plugin est peut-être le format qu’il offre pour la boucle (DATA) (cf. Les Itérateurs pour SPIP 2.1). Pour en bénéficier en SPIP 2.1, il vous faut donc installer le plugin "Itérateurs". (Pour rappel, ceux-ci sont intégrés en SPIP 3).

Avec ce format il devient possible de boucler sur les événements d’un calendrier géré depuis un logiciel spécialisé, ou publié sur un site internet.

Voici un exemple de boucle en faisant usage.

Boucle :

<BOUCLE_vacances(DATA)
{source ics, http://media.education.gouv.fr/ics/Calendrier_Scolaire_Zone_B.ics}
{par dtstart/str}
>
<dt>
[(#SET{date,#VALEUR{dtstart/str}})]
[(#GET{date}|jour) ][(#GET{date}|nom_mois)]
[(#SET{date,#VALEUR{dtend/str}})]
[ &mdash; (#GET{date}|jour) ][(#GET{date}|nom_mois)]
</dt>
<dd>[(#VALEUR{summary/value}|replace{- Zone.*$})]</dd>
</BOUCLE_vacances>

Résultat :

18 décembre — 3 janvier
Vacances de Noël
19 février — 7 mars
Vacances d'hiver
16 avril — 2 mai
Vacances de printemps
2 juillet — 5 septembre
Vacances d'été
22 octobre — 3 novembre
Vacances de la Toussaint

(Une fois le plugin installé, vous pouvez visualiser l’adresse spip.php?page=demo/iterateurs&demo=iter_icalendar pour une version élaborée de cet exemple.)

Données accessibles

Comme le montre l’exemple ci-dessus, la date de début de chaque événement se trouve au format YYYY-MM-DD hh:mm:ss dans le datapath (chemin XPath) dtstart/str.

Pour aller plus loin on peut aussi récupérer l’année, le mois etc. dans les variables dtstart/value/year, dtstart/value/month et dtstart/value/day, dtstart/value/hour, dtstart/value/min, dtstart/value/sec et dtstart/value/tz (time zone).

La date de fin figure, de même, dans le tableau dtend ; la définition du format ics veut que, lorsque l’événement dure une journée entière, dtend soit la date du lendemain (autrement dit, on indique mardi à 00h00 plutôt que lundi à 23h59).

Pour trier par date de début de l’événement, on utilisera :
{par dtstart/str}.

Le résumé (titre) de l’événement se trouve dans summary/value.

Les données possibles sont nombreuses ; pour les explorer dans une boucle icalendar, il suffit d’indiquer [<pre>(#VALEUR|print_r{1})</pre>]. On voit alors apparaître un enregistrement complet, où l’on peut lire le datapath de chaque élément.

Par exemple, le code ci-dessous indique que le contenu du champ description peut s’obtenir via #VALEUR{description/0/value} :

   [description] => Array
       (
           [0] => Array
               (
                   [value] => Vacances d'hiver
                   [params] =>
               )

       )

En procédant ainsi on peut trouver notamment :
— created : date de création de l’événement dans le calendrier ;
— lastmodified : date de mise à jour de l’événement ;
— location/value : lieu de l’événement ;
— uid/value : identifiant unique de l’événement ;
— rrule/0/value/FREQ : fréquence de récurrence (pour les événements se répétant à intervalle défini)
— etc.

 

Trouvailles

Si vous utilisez ce plugin, n’hésitez pas à partager vos trouvailles dans le forum ci-dessous.

modèle "prochainement"

C’est ce qu’à fait Jérome. Dès lors, le plugin propose désormais un modèle simple sous modeles/prochainement.html. Il récupère un flux iCal et retourne les événements futurs.

Insérez ce modèle comme tout autre (voir http://www.spip.net/fr_article3454.html) en lui passant un paramètre ics pointant vers l’url d’un flux ical. Par exemple : <prochainement|ics=http://www.demosphere.eu/events.ics> pour afficher les événements à l’agenda de Démosphère dans un texte. Ou encore [(#MODELE{prochainement}{ics=http://www.demosphere.eu/events.ics})] dans un squelette.

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

Dernière modification de cette page le 29 mai 2016

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 8 janvier à 23:18, par Frank En réponse à : Plugin iCalendar

    Bonjour,

    une version compatible spip 3.1 serait la bienvenue,

    merci !

    • Le 16 mars à 12:19, par deor En réponse à : Plugin iCalendar

      Je viens de l’utiliser sur un spip 3.1 en changeant tout simplement la version requise dans paquet.xml et plugin.xml.

      Ça marche sans soucis de mon côté.

    Répondre à ce message

  • Le 23 juin 2015 à 11:04, par ttseo En réponse à : Plugin iCalendar

    Bonjour
    J’ai mis en place ce plugin avec une boucle DATA qui va chercher les données à partir de l’url fournie.
    Cela fonctionne parfaitement sur mon serveur local, mais sur 1&1 il ne récupère plus aucune données.
    L’url cible est en https//....
    Avez-vous rencontré ce genre de problème ?

    Répondre à ce message

  • Le 9 février 2012 à 01:53, par erational En réponse à : Plugin iCalendar

    Bonjour Fil,

    Est ce que tu crois qu’il serait possible de partir de ce plugin pour réaliser un plugin d’import d’iCal vers le plugin Agenda (à la manière qu’une syndication de sites) ?

    • Le 9 février 2012 à 07:21, par Fil En réponse à : Plugin iCalendar

      Il y a certainement une bonne base de travail, oui, mais il faut voir précisément ce que signifie « importer » ; est-ce en une fois, ou en continu (avec des problématiques de rendez-vous qui changent d’heure etc)

    • Le 20 septembre 2014 à 20:59, par dut En réponse à : Plugin iCalendar

      Je serais extrémement intéressé par un mécanisme d’import d’évenements d’ics vers l’agenda SPIP comme évoqué. Ce projet a-t’il avancé ?

    • Le 16 juin 2015 à 17:10, par LudoRA En réponse à : Plugin iCalendar

      Ben, c’est possible avec ce plugin : http://contrib.spip.net/Import-ICS

    Répondre à ce message

  • Le 16 juin 2015 à 16:50, par LudoRA En réponse à : Plugin iCalendar

    Bonjour.

    J’ai développé un site qui utilise ce plugin sur ma machine. Tout fonctionnait bien.
    Quand je l’ai mis en production sur mon serveur, ça ne fonctionnait plus. Plus moyen de lire de fichiers ical distants.

    J’ai mis un moment à comprendre d’où ça pouvait venir car je ne voyais pas d’erreurs dans les logs.

    En gros, ce n’est pas moi qui ait généré les aspects sécurité sur le serveur et l’option allow_url_fopen était à Off pour php.

    Une fois cette fonction activée, ça roule, car le plugin en a besoin ( icalendar/lib/iCalcreator.class.php , ligne 1664 ).

    Seulement, de ce que j’en lis, c’est pas super chouette niveau sécurité que d’activé cette option php : http://phpsec.org/projects/phpsecinfo/tests/allow_url_fopen.html

    Bon, je sais que ça concerne la lib http://www.kigkonsult.se/iCalcreator/ et pas directement du plugin, mais ça me parait important à soulever également ici.

    Répondre à ce message

  • Le 4 octobre 2011 à 10:19, par Stéphane Santon En réponse à : Plugin iCalendar

    Bonjour,

    J’ai dû trouver un bug dans ics_to_array.php :

    function inc_ics_to_array($u) {
    [...]
    $table_valeur = function_exists('Iterateurs_table_valeur')
                    ? 'Iterateurs_table_valeur' : 'table_valeur';
    [...]
            $date = $table_valeur($w, "/value");

    $date renvoie toujours 0000/00/00 00:00:00 si le plugin iterateurs n’est pas installé.

    • Le 8 octobre 2011 à 08:41, par Stéphane Santon En réponse à : Plugin iCalendar

      Bon en fait c’est très bizarre,
      j’ai installé le plugin Iterateurs, et un coup sur2 à peu près, les champ date en [str] me renvoient 0000-00-00 00:00:00 bien que les champs individuels de date soient correctement remplis...

    Répondre à ce message

  • Le 18 février 2015 à 22:42, par jeanmichelvideau En réponse à : Plugin iCalendar

    Bonjour. Je n’arrive pas à faire marcher ce merveilleux plugin chez free.fr
    -  spip 2.1.25
    -  Itérateurs 1.0.5
    -  iCalendar 0.4.0

    C’est pour inclure un google calendar dont l’adresse est publique.
    _*Lien que j’ai mis dans l’appel au modèle « prochainement.html »

    agenda

    En panne !
    [(#MODELEprochainement
    ics=https://www.google.com/calendar/ical/44capitelles%40free.fr/public/basic.ics)]


    • Le message du « débug » est : « Critère inconnu par dtstart/str »

      -  Je me dis que c’est aussi peut-être « Itérateur »s qui flanche, donc j’ai vidé tout le « tmp » ... que néni !
      -  Peut-être une solution (ou pas) simple ?
      -  Le site : http://44capitelles.free.fr
      Si vous avez le début d’une explication n’hésitez pas ! (Je suis depuis 2003 sur spip, en me soignant car je n’y comprends rien, avec en particulier un squelette merdique : TDT.

    Répondre à ce message

  • Le 17 septembre 2013 à 14:32, par Olivier Tétard En réponse à : Plugin iCalendar

    Salut,

    Il me semble qu’il y a un problème de prise en compte du fuseau horaire dans les dates gérées par la fonction inc_ics_to_array() (dtstart, dtend, dtstamp, lastmodified, created).

    Voici une proposition de correctif, qui marche correctement dans mon cas : https://gist.github.com/otetard/6593636/raw. Elle retourne la date dans le même format que précédemment, mais en appliquant le décalage horaire.

    Olivier ;

    • Le 11 décembre 2014 à 18:17, par Jérôme En réponse à : Plugin iCalendar

      Bonjour,

      Je pense aussi qu’il y a un problème de prise en compte des fuseaux horaires.
      Les heures de mes événements s’affichent avec une heure d’avance (date de début et de fin).
      je ne vois pas comment faire pour intégrer la modification que tu proposes et qui semble résoudre le problème. Peux-tu m’indiquer la marche à suivre ?
      Merci

    • Le 6 janvier 2015 à 20:59, par Olivier Tétard En réponse à : Plugin iCalendar

      Bonjour,

      Je viens d’intégrer le correctif dans le plugin iCalendar.

      Olivier ;

    Répondre à ce message

  • Le 31 mai 2012 à 12:35, par Frank En réponse à : Plugin iCalendar

    bonjour,

    est-il prevus une version compatible spip 3, le plugin est pourtant cité dans la doc spip
    http://www.spip.net/fr_article5444.html

    merci

    • Le 18 octobre 2012 à 10:45, par Jérôme En réponse à : Plugin iCalendar

      C’est bien cité dans la documentation mais ça ne semble pas fonctionner avec les données .ics

    • Le 19 octobre 2012 à 06:34, par Suske En réponse à : Plugin iCalendar

      Salut,

      Ce plugin, publié en 2010, fournit le format iCal aux itérateurs. Donc ça fait deux plugins à installer en SPIP 2.1 mais un seul en SPIP 3 (j’ai mis l’article à jour à ce sujet).

      Je vais le passer SPIP 3 compatible vu que la démo fonctionne très bien en 3 :-p

      ++

    • Le 19 octobre 2012 à 11:51, par Jérôme En réponse à : Plugin iCalendar

      Merci mille fois ! C’est génial.

    • Le 20 octobre 2012 à 16:04, par Jérôme En réponse à : Plugin iCalendar

      Par contre comment pourrais-t-on n’afficher que les événements qui n’ont pas encore eu lieu ?

    • Le 20 octobre 2012 à 22:25, par Jérôme En réponse à : Plugin iCalendar

      J’ai pensé à ceci mais ça ne marche pas.
      J’obtiens toutes les dates de l’année en cours (et jusqu’à la dernière date du calendrier)
      Or je voudrais qu’il ne reprenne qu’à partir de la date d’AUJOURD’HUI

      #SET{today,#DATE}

      <BOUCLE_dates(DATA)
       {source ics, https://www.google.com/calendar/ical/mvanvaing%40gmail.com/public/basic.ics}
       {par dtstart/str}
       {summary/value != ''}
      {dtend/str >=#GET{today}}
       >

       <dt>
               [(#SET{date_debut,#VALEUR{dtstart/str}})]
         [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois)]
         [(#SET{date_fin,#VALEUR{dtend/str}})]
         [ &mdash; (#GET{date_fin}|jour) ][(#GET{date_fin}|nom_mois) ][(#GET{date_fin}|annee)]
       </dt>
       <dd>[(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>
      </BOUCLE_dates>
    • Le 21 octobre 2012 à 01:19, par Suske En réponse à : Plugin iCalendar

      Visiblement la comparaison ne porte que sur les 4 premiers chiffres. Du coup, pour éliminer les dates passées de l’année, il faut tester dans la boucle je crois bien. Et pour le test il vaut mieux filtrer avec |strtotime. Genre (pas testé) :

      [(#VALEUR{dtend/str}|strtotime|>={#DATE|strtotime}|oui)
             ici les trucs à afficher
      ]
    • Le 23 octobre 2012 à 10:21, par Jérôme En réponse à : Plugin iCalendar

      Merci Suske... C’est exactement ce que je cherchais... Ca fonctionne.
      J’ai même un peu compléter le filtre pour que la présentation soit plus correcte (Pas de répétition de la date lorsque la date de fin et la date de début sont identique, etc...). Je joins le code pour ceux que ça intéresse :

      1. <BOUCLE_calendrier(DATA)
      2. {source ics, https://www.google.com/calendar/ical/mvanvaing%40gmail.com/public/basic.ics}
      3. {par dtstart/str}
      4. >
      5. [(#VALEUR{dtend/str}|strtotime|>={#DATE|strtotime}|oui)
      6. [(#VALEUR{dtstart/value/hour}|>{00}|?{
      7. [(#VALEUR{dtstart/value/month}|=={#VALEUR{dtend/value/month}}|?{
      8. [(#VALEUR{dtstart/value/day}|=={#VALEUR{dtend/value/day}}|?{
      9. <dt>
      10. [(#SET{date_debut,#VALEUR{dtstart/str}})]
      11. [(#SET{date_fin,#VALEUR{dtend/str}})]
      12. Le [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois) ][(#GET{date_debut}|annee) ]<span> de [(#GET{date_debut}|affdate{'G'})]:[(#GET{date_debut}|minutes )] à [(#GET{date_fin}|heures)]:[(#GET{date_fin}|minutes )]</span>
      13. </dt>
      14. <dd>[(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>
      15. ,
      16. <dt>
      17. [(#SET{date_debut,#VALEUR{dtstart/str}})]
      18. [(#SET{date_fin,#VALEUR{dtend/str}})]
      19. Du [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois) ][(#GET{date_debut}|annee) ]
      20. au [(#GET{date_fin}|jour) ][(#GET{date_fin}|nom_mois) ][(#GET{date_fin}|annee)]<span> de [(#GET{date_debut}|affdate{'G'})]:[(#GET{date_debut}|minutes )] à [(#GET{date_fin}|affdate{'G'})]:[(#GET{date_fin}|minutes)]</span>
      21. </dt>
      22. <dd>[(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>
      23. ,
      24. <dt>
      25. [(#SET{date_debut,#VALEUR{dtstart/str}})])
      26. Du [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois)]
      27. [(#SET{date_fin,#VALEUR{dtend/str}})]
      28. [ au (#GET{date_fin}|jour) ][(#GET{date_fin}|nom_mois) ][(#GET{date_fin}|annee)] <span> [(#GET{date_debut}|heures)]:[(#GET{date_debut}|minutes )]</span>
      29. </dt>
      30. <dd> [(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>})] })]
      31. ,
      32. <dt>[(#SET{date_debut,#VALEUR{dtstart/str}})]
      33. Le [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois) ][(#GET{date_debut}|annee)]
      34. </dt>
      35. <dd>[(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>})]
      36. ]
      37.  
      38. </BOUCLE_calendrier>

      Télécharger

    • Le 4 novembre 2012 à 07:13, par Jérôme En réponse à : Plugin iCalendar

      Petit correctif pour que ce soit la date du jour qui soit pris en compte et non la date de publication de l’article :

      1. #SET{today,#DATE}
      2.  
      3. <BOUCLE_calendrier(DATA)
      4. {source ics, https://www.google.com/calendar/ical/mvanvaing%40gmail.com/public/basic.ics}
      5. {par dtstart/str}
      6. >
      7. [(#VALEUR{dtend/str}|strtotime|>={#GET{today}|strtotime}|oui)
      8. [(#VALEUR{dtstart/value/hour}|>{00}|?{
      9. [(#VALEUR{dtstart/value/month}|=={#VALEUR{dtend/value/month}}|?{
      10. [(#VALEUR{dtstart/value/day}|=={#VALEUR{dtend/value/day}}|?{
      11. <dt>
      12. [(#SET{date_debut,#VALEUR{dtstart/str}})]
      13. [(#SET{date_fin,#VALEUR{dtend/str}})]
      14. Le [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois) ][(#GET{date_debut}|annee) ]<span> de [(#GET{date_debut}|affdate{'G'})]:[(#GET{date_debut}|minutes )] à [(#GET{date_fin}|heures)]:[(#GET{date_fin}|minutes )]</span>
      15. </dt>
      16. <dd>[(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>
      17. ,
      18. <dt>
      19. [(#SET{date_debut,#VALEUR{dtstart/str}})]
      20. [(#SET{date_fin,#VALEUR{dtend/str}})]
      21. Du [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois) ][(#GET{date_debut}|annee) ]
      22. au [(#GET{date_fin}|jour) ][(#GET{date_fin}|nom_mois) ][(#GET{date_fin}|annee)]<span> de [(#GET{date_debut}|affdate{'G'})]:[(#GET{date_debut}|minutes )] à [(#GET{date_fin}|affdate{'G'})]:[(#GET{date_fin}|minutes)]</span>
      23. </dt>
      24. <dd>[(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>
      25. ,
      26. <dt>
      27. [(#SET{date_debut,#VALEUR{dtstart/str}})])
      28. Du [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois)]
      29. [(#SET{date_fin,#VALEUR{dtend/str}})]
      30. [ au (#GET{date_fin}|jour) ][(#GET{date_fin}|nom_mois) ][(#GET{date_fin}|annee)] <span> [(#GET{date_debut}|heures)]:[(#GET{date_debut}|minutes )]</span>
      31. </dt>
      32. <dd> [(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>})] })]
      33. ,
      34. <dt>[(#SET{date_debut,#VALEUR{dtstart/str}})]
      35. Le [(#GET{date_debut}|jour) ][(#GET{date_debut}|nom_mois) ][(#GET{date_debut}|annee)]
      36. </dt>
      37. <dd>[(#VALEUR{summary/value}|replace{- Zone.*$})<p>#VALEUR{description/0/value}]</p></dd>})]
      38. ]
      39.  
      40. </BOUCLE_calendrier>

      Télécharger

    • Le 10 novembre 2012 à 00:03, par Suske En réponse à : Plugin iCalendar

      Merci pour le partage. J’ai à peine modifié le code pour en faire un modèle (améliorable certes...) qui est à présent disponible dans le plugin (voir article et http://brubel.net/Demosphere-agenda...).

      A+

    • Le 10 novembre 2012 à 09:16, par Jérôme En réponse à : Plugin iCalendar

      Merci ça fait plaisir de voir que c’est intégré au Plugin ;-)

      Par contre il y a un défaut majeur... c’est que cette contribution ne permet pas encore de récupérer les événements récurrents du calendrier iCal.
      S’affiche uniquement le premier événement de la série (qui possède une date de début (dtstart) et une date de fin (dtend) mais pas les récurrences programmées de ce même événement. Je ne vois pas comment récupérer ces dates.

    • Le 18 mars 2013 à 15:45, par Amaury Adon En réponse à : Plugin iCalendar

      Bonjour et merci pour ce plugin et cette contrib.
      Je constate un petit problème. Lorsque l’on cherche à n’afficher que les événements futurs liés à un article dans un spip distant, on se retrouve avec tous les événements du spip en question. Est-ce volontaire et si oui, y a-t-il un moyen de restreindre cet affichage ?

    • Le 25 mars 2013 à 12:08, par Amaury Adon En réponse à : Plugin iCalendar

      quelques investigations plus tard, il semblerait que lorsque l’adresse est du type
      http://www.latp.univ-mrs.fr/spip.php?page=seminaire_ical&id_article=351 (c’est à dire avec quelque chose après le &), toute la partie après le & ne soit pas prise ne compte.

      Et je ne vois rien dans la librairie qui bloque à ce niveau là.

    • Le 12 mai 2014 à 22:32, par sylvain En réponse à : Plugin iCalendar

      Bonjour,
      nouveau dans spip je cherche à utiliser icalendar
      si mon résultat ics me donne 4 résultats mais qu’ils sont tous filtrés par le test dans la boucle DATA ça m’affiche le « Code optionnel avant » et le « Code optionnel après » plutôt que de m’afficher le « Code alternatif ».
      y aurait il un moyen de contourner ce problème

      SPIP 3.0.16
      iCalendar 0.4.0

    • Le 13 mai 2014 à 07:28, par Suske En réponse à : Plugin iCalendar

      S’ils sont filtrés, la boucle principale ne retourne rien. Donc si le code optionnel s’affiche c’est probablement qu’il y a bien un résultat... Faut voir sur pièce et code...

    • Le 13 mai 2014 à 08:37, par sylvain En réponse à : Plugin iCalendar

      étant au travail je le fait de mémoire (travaillant sur une maquette le site est pas encors en ligne)
      j’utilise le code suivant pour créer une noisette sous sarka-spip
      et donc dans le cas d’un calendrier non vide mais avec les événement non affiché par le test conditionnel je me retrouve avec un tableau vide (et ses grosse bordures) plutôt que le message « pas de résultat »

      1. <B_vacances>
      2. <div class="liste">
      3. <ul>
      4. <BOUCLE_vacances(DATA)
      5. {source ics, http://media.education.gouv.fr/ics/Calendrier_Scolaire_Zone_B.ics}
      6. {par dtstart/str}
      7. >
      8. [(#VALEUR{dtend/str}|strtotime|>={#DATE|strtotime}|oui)
      9. <li> mon evenement </li>]
      10. </BOUCLE_vacances>
      11. </ul>
      12. </div>
      13. </B_vacances>
      14. pas de résultat
      15. <//B_vacances>

      Télécharger

    • Le 21 mai 2014 à 21:13, par sylvain En réponse à : Plugin iCalendar

      Bonjour,
      Voici le code que j’utilise

      1. #SET{today,#DATE}
      2. #SET{nextyear,#VAL{Y-m-d}|date{#VAL{next year}|strtotime}}
      3.  
      4. #SET{tableau_calendrier, #ARRAY{"BSS","url1","Apnée"
      5. ,"url2","Hockey","url3","Palmage","url4"}}
      6. <B_calendrier>
      7. <div class="noisette">
      8. <h1 class="intitule">A venir</h1>
      9. <BOUCLE_calendrier(DATA){source table,#GET{tableau_calendrier}}>
      10. <B_evenement>
      11. <div class="contenu">
      12. <h2 class="titre_bloc">#CLE</h2>
      13. <div class="liste">
      14. <ul>
      15. <BOUCLE_evenement(DATA)
      16. {source ics, https://www.google.com/calendar/ical/#VALEUR/full.ics}
      17. {datacache 3600}
      18. {par dtstart/str}
      19. {summary/value != ''}
      20. >
      21. [(#VALEUR{dtend/str}|strtotime|>={#GET{today}|strtotime}|oui)
      22. <li>
      23. [(#SET{date,#VALEUR{dtstart/str}})]
      24. [(#GET{date}|jour) ][(#GET{date}|nom_mois)][ (#GET{date}|annee)]
      25. : [(#VALEUR{summary/value})]
      26. </li>
      27. ]
      28. </BOUCLE_evenement>
      29. </ul>
      30. </div>
      31. </div>
      32. </B_evenement>
      33.  
      34. </BOUCLE_calendrier>
      35.  
      36. </div>
      37. </B_calendrier>

      Télécharger

      et voici ce que ça donne

      PNG - 7.5 ko
    • Le 21 mai 2014 à 23:25, par sylvain En réponse à : Plugin iCalendar

      j’ai un peu cherche ce problème de critère de date qui ne comparait que les 4 premiers chiffres
      j’ai un peu regardé comment était fait le plugin et j’ai modifié une chose en local chez moi

      dans le fichier ics_to_array.php ligne 32
      j’ai ajouté un nouveau champ de date au format Ymdhis

      1. $w['str'] = sprintf('%04d-%02d-%02d %02d:%02d:%02d',
      2. $date['year'],
      3. $date['month'],
      4. $date['day'],
      5. $date['hour'],
      6. $date['min'],
      7. $date['sec']
      8. );
      9. $w['strinfo'] = sprintf('%04d%02d%02d%02d%02d%02d',
      10. $date['year'],
      11. $date['month'],
      12. $date['day'],
      13. $date['hour'],
      14. $date['min'],
      15. $date['sec']
      16. );

      Télécharger

      ce qui dans ma boucle spip donne ensuite

      1. #SET{today,#DATE|affdate{'Ymdhis'}}
      2. #SET{nextyear,#VAL{Ymdhis}|date{#VAL{next year}|strtotime}}
      3.  
      4. <BOUCLE_evenement(DATA)
      5. {source ics, https://www.google.com/calendar/ical/#VALEUR/full.ics}
      6. {datacache 3600}
      7. {par dtstart/str}
      8. {summary/value != ''}
      9. {dtend/strinfo>=#GET{today}}
      10. {dtstart/strinfo <= #GET{nextyear}}
      11. {0,3}
      12. >

      Télécharger

    Répondre à ce message

  • Le 15 octobre 2013 à 17:40, par chtorrel En réponse à : Plugin iCalendar

    Bonjour,

    Je fais un petit up d’un soucis détecté en cours d’une discussion précédente autour du traitement des évènements récurrents.

    Je n’ai pu explorer exactement les cas de figures problématiques, ce que j’ai observé :
    -  un évènement récurrent modifié apparait,
    -  un évènement récurrent non-modifié n’apparait pas,
    -  mauvaise prise en compte des horaires sur certains évènements récurrents (pas testé à fond, je subodore un évènement modifié mais je n’ai pas la manipulation de l’auteur)
    -  affichage d’un évènement récurrent annulé remplacé par 2 évènements, les 3 évènements apparaissent (pas testé à fond idem que précédent)

    Cordialement,
    Aurélien

    Répondre à ce message

  • Le 10 mai 2013 à 20:32, par JM En réponse à : Plugin iCalendar

    Bonjour.

    Je cherche exactement cela : installer un plugin Ical.
    J’utilise spip 3 avec un squelette eva web.

    Ce squelette me va très bien : je ne sais pas utiliser les lignes de code. Ce n’est pas de la mauvaise volonté, mais à chaque essai j’ai passé des jours à réparer mes erreurs et à solliciter la communauté.

    Ma requête :
    > comment installer simplement ce plugin ?
    > Quelle démarche (explicable à un néophyte).
    -  > nécessite-t-il d’autres plugin (j’ai cru comprendre qu’agenda était nécessaire)
    Pourquoi ne pas le publier en plugin « prêt à l’emploi » comme les autres ?

    J’ai conscience que ce genre d’intervention de novice peut vous être énervante, j’en suis désolé mais vous en serait aussi reconnaissant de m’expliquer la démarche.

    Merci beaucoup,
    cordialement,
    JM

    • Le 14 mai 2013 à 22:20, par Amaury Adon En réponse à : Plugin iCalendar

      Sur spip3, pour installer facilement ce plugin il suffit de se servir de SVP (l’outil de gestion des plugins). Une recherche de icalendar, un clic sur installer et c’est fait. Les dépendances sont automatiquement gérées. Icalendar est bien prêt à l’emploi !

    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

  • Champs Extras 3

    16 janvier 2012 – 524 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 (...)

  • Réservation d’événements

    16 mars 2015 – 188 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

  • Recommander

    3 avril 2011 – 16 commentaires

    Ce plugin propose une manière simple de suggérer de recommander par email un article à un ami. Fonction « recommander un article à un ami ». On l’ajoute dans n’importe quel squelette sous la forme : #RECOMMANDERtitre de la page,url de la page,intro (...)

Ça spipe par là