SPIP-Contrib

SPIP-Contrib

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

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

Accueil > Dates, calendriers et agendas > Plugin Agenda > Import ICS > Import ICS 2 et supérieur (agenda distant)

Import ICS 2 et supérieur (agenda distant)

2 août 2016 – par Amaury Adon, Maïeul – 39 commentaires

7 votes

La version 2 du plugin « import ICS » en reprend la principale fonctionnalité, à savoir l’ajout automatique d’évènements distants dans la liste des évènements d’un site. À la différence de la première version, elle ne dépend pas du plugin « Séminaire » et est donc générique.

Le besoin

Le plugin Agenda permet de gérer des évènements. Il peut être utile de récupérer automatiquement des évènements d’un site distant qui fournirait un fichier .ics [1], afin de proposer un site agrégeant les calendriers de différents sites.

Exemple de cas d’application :
-  des séminaires de recherche de plusieurs organismes diffusés sur le même site ;
-  un site d’information locale reprenant les évènements des associations et entreprises locales ;
-  un site d’association affichant les évènements de ses partenaires.

Note sur la présente documentation

Le présent article documente la version 4.0 du plugin.

Configuration requise

Le plugin nécessite les plugins suivants :
-  Agenda
-  Icalendar
-  Saisies
-  Champs extra core

Ce plugin permet de s’abonner à un calendrier distant. L’abonnement se fait via la création d’un nouvel objet « Almanach ». Celui-ci est lié à un fichier ics distant. Le plugin lira régulièrement ce fichier et ajoutera automatiquement des évènements dans la base de données du site SPIP local. Les évènements créés sont du même type que ceux gérés par le plugin Agenda.

Les évènements ainsi ajoutés seront liés :
-  à l’almanach ;
-  à l’article choisi lors de la création de l’almanach ;

Ce plugin ajoute donc une entrée « Almanachs » au menu « Édition » ainsi qu’un bouton d’ajout rapide d’almanach. Les évènements importés sont liés à ces objets.

PNG - 19.6 ko
L’almanach est un nouvel objet

La page Almanachs permet de lister les almanachs présents sur le site et de les administrer.

PNG - 44.3 ko
Liste des almanachs

Configuration du plugin

Une fois le plugin installé, il existe deux possibilités de configurer le plugin :
-  soit à travers le formulaire accessible à travers le lien de configuration sur la page de gestion des plugins ;
-  soit par des constantes PHP mises dans le fichier mes_options.php – ou dans un fichier options.php d’un plugin. Ceci permet de déployer rapidement à grande échelle une configuration du plugin [2].

La configuration PHP l’emporte sur la configuration par formulaire.

PNG - 54.5 ko
Configurer du plugin import ics

Voici la liste des paramètres configurables :

-  Archiver automatiquement les évènements distants qui ne sont plus présents dans le fichier ics distant lors de la vérification de celui-ci. En PHP define ('_IMPORT_ICS_MOT_FACULTATIF','on');.
-  Définir l’article par défaut. Pas de constante PHP.

Ajouter un almanach

L’ajout d’un almanach est simple. Il suffit de remplir le formulaire d’ajout dans lequel tous les champs sont obligatoires.

PNG - 144.2 ko
Ajout d’un almanach

L’url du flux peut être de la forme http ou webcal.

Une fois le formulaire validé, les évènements importés apparaissent dans la page récapitulative de l’almanach. Si ces évènements sont trop nombreux, la liste est paginée. Le plugin récupérera à intervalle régulier la nouvelle version du flux pour mettre à jour la liste des évènements.

A noter : si un évènement apparait dans plusieurs flux avec le même uid (identifiant unique distant), il ne sera pas réimporté.

Supprimer un almanach

Pour supprimer un almanach, le passer en statut « à la poubelle ». Tous les évènements liés sont alors basculés en « à la poubelle ».

Comme pour les articles, SPIP supprime régulièrement les évènements et les almanachs à la poubelle.

Statut des évènements

Les évènements possèdent le statut de l’almanach :
-  si l’almanach est publié, les évènements sont automatiquement publiés (modération a posteriori), à condition que l’article lui-même soit publié ;
-  si l’almanach est proposé, les évènements sont proposés, et il vous faut les publier manuellement (modération a priori).

Lorsque vous modifier le statut d’un almanach, les évènements voient leur statut modifiés.

Lorsque vous modifier le statut d’un article, les évènements et almanachs liés voient leur statut modifié.

Le plugin ajoute également un statut « archivé » aux évènements, pour les évènements qui ne sont plus présents sur le flux distant. Une fois un évènement archivé, il n’est plus jamais désarchivé, sauf intervention manuel d’un·e rédacteur·ctrice.

Mots-clé

Dans la configuration des mots-clé, vous pouvez activer l’ajout de mots-clés aux almanachs.

Les évènements associés à un almanach reçoivent automatiquement les mots-clé de l’almanach. Si les mots-clé de l’almanach changent, les mots-clé des évènements sont automatiquement modifiés.

Outils pour squelette

Le plugin ajoute le critère {id_almanach} sur la boucle (EVENEMENTS) pour sélectionner les évènements liés à un almanach précis.

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

Notes

[1Dans le cas d’un site distant sous SPIP utilisant le plugin agenda, le fichier .ics distant est disponible à la page http://url-du-site/spip.php?page=agenda-ical. Un paramètre &id_article=xxx ou &id_mot=xxx peut être ajouté pour filtre par article ou par mot clé.

[2Pour rappel, la définition d’une constante en PHP ce fait ainsi define("NOM_DE_LA_CONSTANTE",<valeur>).

Dernière modification de cette page le 9 décembre 2016

Retour en haut de la page

Vos commentaires

  • Le 4 décembre à 20:53, par dut En réponse à : Import ICS 2 (agenda distant)

    Je pense que j’ai levé un lièvre, mais qu’il est peut-être du à un fonctionnement de plugin qui a évolué au fil du temps.

    Depuis quelques temps déjà, je trouvais que les modifications faites sur des événements importés étaient ’perdues’ ensuite.

    J’ai constaté sur un cas concret que pour l’événement importé, la version initiale (id_version =1 dans la table versions se voyait attribués cpmme date de debut celle de l’événement (et non pas la date d’import). Sans doute pourrait-il être dû au fait que evenements:date_creation a pour valeur 0000-00-00 00:00:00 ?

    Toujours est-il que la date de la révision initiale se retrouve du coup ulterieure à celle des modification effectuées ensuite.

    J’espère avoir sur exprimer clairement le soucis rencontré.

    Je pense pouvoir traité les événement déjà importés en retouchant la date de version initiale, mais il serait sans doute utile de verifier ce qu’il en est pour une install fraiche.

    Bye.

    • Le 4 décembre à 20:57, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      je n’ai rien compris… tu modifier à la main les evenements importés ? ou le problème se trouve lorsque les evenements distants sont modifiés ?

    • Le 4 décembre à 21:11, par dut En réponse à : Import ICS 2 (agenda distant)

      Non, ils sont préimportés, puis modifiés manuellement et publiés.

      C’est en constatant que les modifs n’étaient pas affichées ensuite (au profit de la version initiale importée) que j’ai pensé qu’un truc clochait.

    • Le 4 décembre à 21:15, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      a oui, j’ai jamais testé l’idée de modification de versions… c’est possible qu’il y a un reecrasement lors de la mise à jour du flux distant.

      mais bon, pour en savoir plus, il faudrait que tu me fasse un test précis, pour que je puisse reproduire. franchement j’ai pas le temps de préparer moi même pour ca, surtout que c’est pas un truc prévu au départ.

    • Le 4 décembre à 21:23, par dut En réponse à : Import ICS 2 (agenda distant)

      La révision initiale est dans le futur. C’est donc que la date est mal initialisé (voir hépothèse émise plus haut)

      Voir les explication ci-dessus et je t’octroie sans soucis si tu le souaite un accès sur la base, mais prudence.

      PNG - 98.1 ko
    • Le 4 décembre à 21:25, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      non, j’ai pas le temps de regarder, si tu me produit pas un exemple que moi je puisse reproduire.…
      C’est à dire que tu me décrit toutes les étapes, une par une, qui pose souci, avec un fichier .ics de test.

    • Le 5 décembre à 11:26, par dut En réponse à : Import ICS 2 (agenda distant)

      Je crois que ce fil et le fil précédent (du 23 novembre) sont en relation.

      Comme l’import par le génie ne marche plus chez moi, j’utilisais depuis quelques jours le bouton ’mettre à jour cet almanach maintenant’.
      Me confirme-tu que qu’avec l’utilsation de ce bouton l’écrasement est systématique alors qu’avec le génie seulement en cas de mise à jour d’événément (c’est du moins ainsi que j’avais compris le comportement du plugin).

    • Le 5 décembre à 11:30, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      Non, le genie et le bouton de mise à jour manuel sont branchés, normalement, sur la même fonction.

      Ce qui n’est pas normal est que le génie ne marche plus chez toi.

    • Le 5 décembre à 11:37, par dut En réponse à : Import ICS 2 (agenda distant)

      Oui, d’autant que par ailleurs le génie donne satisfaction.

      Je crains un mécanisme chez facebook qui rejette des imports ou des imports trops fréquents (j’ai utilisé le déclenchement manuel à des reprises plus rapprochées que 24h ces temps).

    • Le 5 décembre à 11:51, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      ce n’est pas impossible, mais le genie est programmer pour fonctionner toutes les 24heures. As tu plusieurs almanach chez facebook ? il se peut qu’il bloque plusieurs requetes d’affiler…

      en tous cas, je confirme que génie comme action passent, in fine, par la même fonction importer_almanach().

      Par contre comme je n’ai toujours pas d’element concret de problème de modification de l’evenement, je ne peux pas résoudre le bug à l’origine de ce fil…

    Répondre à ce message

  • Le 23 novembre à 21:59, par dut En réponse à : Import ICS 2 (agenda distant)

    Help ! depuis la mise à jour qui introduit des décalages différencies heure d’été heure d’hiver, je n’importe plus rien !

    C’est un flux issu d’un compte facebook. Je peux en filer l’adresse en message perso si besoin.

    • Le 23 novembre à 22:33, par dut En réponse à : Import ICS 2 (agenda distant)

      Il est toujours possible que ma mise à jour du plugin coincide avec le moment ou facebook à decider de changer quelque choses dans ses flux sortants.

      Avez vous moyen de déterminer ce qu’il en est ?

    • Le 23 novembre à 22:48, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      je pense que c’est une coïncidence, puisque mes propres tests avec d’autres flux marchent parfaitement. Il me faudrait effectivement l’adresse du flux problématique pour cerner le souci.

    Répondre à ce message

  • Le 27 octobre à 15:18, par olivierlef En réponse à : Import ICS 2 (agenda distant)

    Bonjour Maieul,

    L’année avance et nous allons bientôt changer d’heure, jusqu’à présent - à Paris - nous étions en GMT +2, et on va passer à GMT + 1.

    Les fichiers ICS sont édités en GMT et pour gérer les fuseaux horaires, tu as mis en place une valeur de décalage, mais qui est la même toute l’année....hors 2 fois par an, on change d’heure...

    A bientôt

    PS : lorsque j’appuie sur le bouton « Supprimer ces événements » j’ai le message « Fichier supprimer_evenements_almanach introuvable » - c’est pas bloquant

    Répondre à ce message

  • Le 22 septembre à 07:33, par dut En réponse à : Import ICS 2 (agenda distant)

    Est-ce qu’il existe un moyen de suspendre/reactiver l’import d’événements à chaque execution du job pour un almanach donné (sans perdre les événements déjà importés) ?

    • Le 22 septembre à 10:42, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      Non, pas pour le moment.

    • Le 19 octobre à 23:28, par dut En réponse à : Import ICS 2 (agenda distant)

      Je reviens un peu à la charge.

      Un des flux auquel j’avais souscrit est notoirement doublonné, je ne souhaite plus l’importer

      Comme par contre j’aimerai garder les événement déja importés. il me faut trouver un mécanisme

      Couper le lien entre les évenements en question et leur almanach d’import initial permettrait t-il de supprimer ensuite l’almanach sans perdre les événements en questions. ?

      Ne plus importer ce flux, tant pis si les objets déja importés restent est également une possibilité. Introduire une coquille dans l’adresse de l’agenda permettrait d’eviter des imports suivants ?

      Merci de vos avis

    • Le 20 octobre à 10:40, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      couper les liens devrait suffire. Faire une sauvegarde avant quand même.

    Répondre à ce message

  • Le 18 août à 08:41, par olivierlef En réponse à : Import ICS 2 (agenda distant)

    Merci, merci et merci.

    Ce plugin tombe à point nommé pour pouvoir afficher des googles agenda sur notre site Spip.
    Ce qui est cool , c’est qu’en plus, lors d’une modif de l’agenda distant, sur le site Spip ça conserve les mots-clés rajoutés à la main sur l’évènement : que du bonheur.....

    Une petite question, avez-vous envisagé de traiter les répétitions d’événements, ou est-ce que la façon de les traiter par le plugin agenda, vous a dissuadé d’essayer ?

    a bientôt

    • Le 18 août à 10:50, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      dans un flux ical, il est précisé si un evenement est une répetition d’un autre. On pourrait donc envisager de gérer cela comme une répétition au sens du plugin agenda.

      Cependant, javoue ne pas trop saisir la plus value par rapport à x evenement indépendant.

      J’ajoute à la todolist.

    • Le 18 août à 11:05, par olivierlef En réponse à : Import ICS 2 (agenda distant)

      Super Merci,

      L’intérêt des répétions, est seulement du point de vue de l’utilisateur qui ne saisi dans son agenda qu’une répétition plustôt que x évènements (Par exemple si toute l’année il y a un accueil du public tous les lundis matin, tu saisi la première date et le type de répétitions et c’est fini...)

      A bientôt

    • Le 18 août à 11:12, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      dans ce cas la saisie étant distante, je ne vois pas ce que le plugin apporterait ;-)

    • Le 18 août à 11:40, par olivierlef En réponse à : Import ICS 2 (agenda distant)

      Ah, mes explications ne doivent pas être très claires ;(
      Le problème, c’est que j’ai besoin de mettre dans mon agenda Spip, un agenda Google dont l’utilisateur utilise la fonctionnalité des répétitions et à l’heure actuelle le plugins n’importe que l’évènement de départ des répétitions, mais pas les répétitions, donc il manque plein d’évènements ...
      Est-ce que ça répond à ta question ?

    • Le 18 août à 11:44, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      c’est plus clair.

      Pour voir si je peux gérer cela il me faut :
      -  l’url du flux ical
      -  un exemple d’evenement repété.

      je peux regarder ce week-end ce qu’il en serait.

    • Le 18 août à 12:35, par olivierlef En réponse à : Import ICS 2 (agenda distant)

      Voilà je t’ai mis un flux
      https://calendar.google.com/calendar/ical/fpu9hguercn80id2lsggh6i5as%40group.calendar.google.com/private-23ef905b3afddc43839c682f13046cda/basic.ics

      Les possibilités de répétions sont variées.... je crains que ça ne devienne monstrueux....
      J’ai été exhaustif en créant toutes les possibilités de type de répétitions :

      SUMMARY:Test répétition sans fin....
      RRULE:FREQ=WEEKLY ;BYDAY=FR

      SUMMARY:Test répétition 10 fois
      RRULE:FREQ=WEEKLY ;COUNT=10 ;BYDAY=FR

      SUMMARY:Test répétition avec fin le 13 janv. 2017
      RRULE:FREQ=WEEKLY ;UNTIL=20170113T103000Z ;BYDAY=FR

      SUMMARY:Test répétions tous les ans
      RRULE:FREQ=YEARLY

      SUMMARY:Test répétitions du lundi au vendredi
      RRULE:FREQ=WEEKLY ;BYDAY=MO,TU,WE,TH,FR

      SUMMARY:Test répétition tous les jours
      RRULE:FREQ=WEEKLY ;BYDAY=SU,MO,TU,WE,TH,FR,SA

      SUMMARY:Test répétion tous les 2 mois le 15
      RRULE:FREQ=MONTHLY ;INTERVAL=2 ;BYMONTHDAY=15

      SUMMARY:test répétitions Tous les 3 mois le troisième lundi
      RRULE:FREQ=MONTHLY ;INTERVAL=3 ;BYDAY=3MO

      et voilà ....

      Bon Wek-end ;)

    • Le 31 août à 20:35, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      je suis un peu pris, mais je trouverai sans doute le temps de m’occuper de cela un jour

    • Le 11 septembre à 10:25, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      salut,

      j’ai un peu réfléchi à cette question. C’est assez complexe. En effet, la logique des répetitions en ical et dans SPIP n’est pas la même.

      Dans SPIP, il n’y a pas formellement de répetition, simplement les evenements sont dupliqués avec un lien établi entre eux qui dit « tel evenement est la répetition de tel autre evenement ».

      Du coup, il faudrait potentiellement créer une infinité d’evenement.

      On pourrait s’en sortir par deux biais :
      -  mettre une borne niveau SPIP
      -  utilisation la spécification de borne dans l’ICS

      mais cela ne résoudrait pas tout. Il y a un nombre relativement elevé de cas. cf
      http://www.kanzaki.com/docs/ical/recur.html

      bref, à mon avis j’en ai pour au moins 2 jours de boulot… et j’ai d’autre priorité.

    Répondre à ce message

  • Le 4 août à 21:59, par dut En réponse à : Import ICS 2 (agenda distant)

    « Les évènements sont marqués comme « publiés », sauf si l’article associé ne l’est pas. Dans ce cas, comme pour tous les évènements, les évènements seront automatiquement publiés à la publication de l’article. »

    Cette démarche fait du tout ou rien.
    Il me semble qu’il peut être intéressant d’importer les événements en statut ’proposé’, afin de permette une verification humaine avant publication.
    Je suggère que le statut prop de l’almanach permette de déclencher ce foncitonnement, au lieu d’une publication directe.
    (un paramètrage plus explicite serait sans doute possible mais plus lourd à developper)

    • Le 4 août à 22:05, par Maïeul En réponse à : Import ICS 2 (agenda distant)

      ca fait parti des choses prévues, mais à plus long termes ;-) (sauf si quelqu’un le code entre temps)

      deja là j’ai un bug observé par thiébaut, que je corrigerai demain.

    Répondre à ce message

  • Le 4 août à 21:37, par Thiébaut En réponse à : Import ICS 2 (agenda distant)

    Merci pour ce plugin très utile à notre site de territoire http://www.valleeducousin.fr/.

    Cela permet d’intégrer automatiquement à notre agenda les événements de nos partenaires ayant des sites sous spip. Quel gain de temps !

    On va essayer avec d’autre sites ayant des flux iCalendar et on reviendra faire un retour sur cette page.

    A bientôt donc !

    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

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là