SPIP-Contrib

SPIP-Contrib

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

290 Plugins, 198 contribs sur SPIP-Zone, 124 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 – 65 commentaires

8 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.

L’almanach est un nouvel objet

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

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.

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.

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é.
-  afin que la reconnaissance de l’heure d’été / d’hiver puisse fonctionner, il est nécessaire que la configuration PHP ait un timezone correspondant à un pays où le changement d’heure est effectué. Vous pouvez utiliser le plugin Timezone si vous ne disposez pas de l’accès à la configuration php.

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 leurs statuts modifiés.

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

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 3 avril 2018

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 9 octobre à 16:56, par touti En réponse à : Import ICS 2 et supérieur (agenda distant)

    Pour la synchronisation avec framagenda (ou nextcloud) ça marche très bien !

    1/ Dans la colonne de gauche du framagenda, choisissez partager avec un lien public
    2/ cliquez sur l’icone du lien généré
    3/ la page de l’agenda public s’ouvre, récupérer son lien en haut à droite (bouton S’abonner)
    modifiez l’adresse de type

    1. webcal://framagenda.org/remote.php/dav/public-calendars/tgee5FmMq3IId55Wy?export

    par

    1. http://framagenda.org/remote.php/dav/public-calendars/tgee5FmMq3Xd55Wy?export

    4/ Entrez cette adresse sur la page d’édition de votre almanach SPIP (URL d’origine du calendrier)
    Et voila !

    Répondre à ce message

  • Le 1er octobre à 17:05, par alouettes21 En réponse à : Import ICS 2 et supérieur (agenda distant)

    Bonjour à tous,

    Très bon plugin qui me donne toute satisfaction pour synchroniser des agendas distants de type indico.

    Je souhaite intégrer un widget calendrier à mon propre squelette sous boostrap 4 et c’est là que cela se complique !
    Comment procède-t-on pour intégrer les événements ics dans un calendrier type mini-calendrier ?

    Merci de votre aide

    Francis

    • Le 1er octobre à 17:06, par Maïeul En réponse à : Import ICS 2 et supérieur (agenda distant)

      aucune idée. Je n’utilise pas de mini calendrier ni de bootstrap.

      Le seul point que je peux dire : que ce soit des evenements distant ou des evenements internes, SPIP à la même structure, et donc tu peux faire les mêmes boucles.

    Répondre à ce message

  • Le 5 mars à 22:07, par dut En réponse à : Import ICS 2 et supérieur (agenda distant)

    J’utilise ce plugin pour importer les événements d’un compte facebook.

    Etrangement, je vois que certains événements s’importent spontanément, alors pour vous d’autres ’amis’ facebook, il faut que j’aille explorer tous les événements et les enregistrer pour qu’au cron suivant ils soient importés.

    Avez-vous une opinion sur ce soucis ?

    Répondre à ce message

  • Le 23 octobre 2017 à 13:14, par olivierlef En réponse à : Import ICS 2 et supérieur (agenda distant)

    Bonjour Maïeul,

    Je rencontre un problème avec un calendrier ics : https://messes.info/horaires/.fr%2084%20saint%20agricol.ics.
    Google agenda, le lit bien, mais import ics n’y trouve aucun évènement.

    En fouillant un peu, j’ai trouvé que ce fichier ics utilise DTSTART et DURATION pour définir l’évènement, mais DURATION n’est pas géré dans import ics qui n’utilise que le binôme DTSTART et DTEND.

    Voilà, si tu as un peu de temps pour y jeter un coup d’œil.

    Merci d’avance

    Répondre à ce message

  • Le 21 octobre 2017 à 11:00, par olivierlef En réponse à : Import ICS 2 et supérieur (agenda distant)

    Bonjour Maïeul,

    J’ai le cas suivant : lors que une personne supprime un événement de son calendrier ics, cela ne supprime pas l’événement dans SPIP.

    Effectivement dans import_ics.php, on traite :
    -  les modifications des événements avec le test sur LAST-MODIFIED
    -  l’ajout de nouveaux événements,
    mais on ne gère pas la suppression d’événements. Est-ce intentionnel ?

    Merci à toi

    Répondre à ce message

  • Le 26 juin 2017 à 07:20, par Philippe En réponse à : Import ICS 2 et supérieur (agenda distant)

    Bonjour,

    J’utilise un serveur de calendrier Baikal avec lequel je souhaiterais synchroniser le calendrier SPIP.

    La particularité de Baikal, c’est qu’on ne peut s’y connecter qu’avec un identifiant et un mot de passe, et que rien n’est prévu pour saisir ces informations à la création d’un almanach.
    Résultat : échec de connexion.

    Une idée ?
    Merci

    • Le 26 juin 2017 à 18:27, par Maïeul En réponse à : Import ICS 2 et supérieur (agenda distant)

      Changer de serveur ?

      Plus concrètement, j’aurais besoin d’un exemple avec un identifiant/mdp de test (à m’envoyer en privé). Je pourrais essayer de travailler cela ce week-end, après un autre projet sous SPIP.

    Répondre à ce message

  • Le 20 juin 2017 à 15:22, par o2 En réponse à : Import ICS 2 et supérieur (agenda distant)

    Bonjour

    J’ai testé l’import ICS avec un calendrier google.
    Les événements sont bien importés dans agenda et dans le mini calendrier. Par contre quand on clique sur l’événement dans l’agenda, ça renvoie sur l’article qui est couplé à l’almanach.
    Or dans cet article je n’ai aucun contenu distant qui ne s’affiche : comment cela se fait il ? que dois je faire pour qu’ils apparaissent en ligne (sous forme de liste je suppose) ?

    merci

    Répondre à ce message

  • Le 25 janvier 2017 à 13:38, par Thiébaut En réponse à : Import ICS 2 et supérieur (agenda distant)

    Petit Bug détecté sur les imports d’événements dont la case « toute la journée » est cochée sur le site source.

    Dès que cette case « toute la journée » est cochée, import ICS ajouter j+1 pour la date de fin.

    Exemple : pour un événement dont les dates de début et de fin sont le 5 janvier, avec la case « toute la journée » cochée, l’import ics indique « du 5 janvier au 6 janvier ».

    J’ai vérifié sur le site d’origine, vider le cache et forcer l’actualisation... cette fois -ci ! Donc ça m’a bien l’air d’être un bug...

    Sinon, bravo pour toutes les améliorations de ce plugin... qui fait gagner un temps fou !

    Répondre à ce message

  • Le 26 décembre 2016 à 16:14, par jeanmarie En réponse à : Import ICS 2 et supérieur (agenda distant)

    Salut,

    petite question au niveau de la mise en forme des textes : avec le format ics, on ne peut pas conserver la mise en forme (gras, italique...) ni les liens et images, c’est bien ça ?

    Ou alors ce n’est pas une contrainte du format mais ce sont les filtres |supprimer_tags|textebrut|filtrer_ical du fichier inc/un-evenement-ical.html qui le font et on pourrait donc imaginer récupérer la mise en forme et les images/liens de la source ?

    Merci,

    jean marie

    Répondre à ce message

  • Le 4 décembre 2016 à 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 2016 à 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 2016 à 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 2016 à 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 2016 à 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.

    • Le 4 décembre 2016 à 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 2016 à 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 2016 à 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 2016 à 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 2016 à 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

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

  • Mailshot

    16 janvier 2013 – 336 commentaires

    Ce plugin prend en charge l’envoi en nombre d’info-lettres par email. Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi. Enfin, ce plugin implémente la (...)

  • Plugins Giseh

    26 novembre 2010 – 460 commentaires

    Les plugins correspondants aux fonctionnalités de Giseh, compatibles avec SPIP 3.2, SPIP 3.0 (et SPIP 2.1) et compatibles (sous SPIP 3.2) avec PHP 7.0 et 7.1, sont les suivants : le plugin « ciparam : Configurateur de squelettes » le plugin « cisquel  (...)

  • Bouquinerie V2

    6 octobre 2017 – 23 commentaires

    Voici la version pour SPIP 3.x du plugin Bouquinerie. Cette nouvelle version permet de gérer des livres et le ou les auteurs associés. Elle n’est pas compatible avec la précédente version. Cet article est une présentation générale et un guide pour (...)

  • Formulaire de contact avancé

    23 mars 2009 – 1410 commentaires

    Un formulaire de contact configurable, avec de multiples options.

  • Jeux pour SPIP 3

    27 juillet 2012 – 51 commentaires

    Un portage pour SPIP 3 du plugin Jeux a été fait. Explications et nouveautés. Cet article concerne une mise à jour du plugin Jeux dont la description complète est disponible ici : Des jeux dans vos articles !. Le code du plugin Jeux est un code (...)