Récupérer son agenda Google avec l’extension Calendar Base (cal)

Publié le Mis à jour le

L’extension Calendar Base est relativement complète si l’on jette un oeil à la documentation de l’extension.
Il est en effet possible d’afficher en frontend un calendrier avec des vues multiples (jour/semaine/mois), partager les calendriers de différents utilisateurs, autoriser l’édition frontend d’événements, permettre à des internautes de s’abonner à ces événements… Si l’on recherche néanmoins la simplicité avec cette extension, c’est possible ! A coté de l’agenda par défaut qui utilise les événements que l’on créé manuellement dans un sysfolder, il est possible d’importer un agenda externe. Vous pouvez donc saisir vos entrées sur votre agenda lié à votre compte Google et récupérer ces événements sur votre site.

L’importation se fait depuis un fichier ICS. Google agenda est capable de générer ce type de fichier depuis http://www.google.com/calendar/ : paramètres -> agendas -> cliquez sur l’agenda partagé -> Adresse URL de l’agenda -> icône ICS.

Vous devez ensuite dans un dossier système défini (n’oubliez pas de renseigner la valeur plugin.tx_cal_controller.pidList dans les constantes typoscript) un enregistrement de type ‘Calendar’ intitulé ‘Agenda Google’ par exemple avec l’url vers le fichier ICS dans le champ External Calendar URL. Dans ‘Refresh Interval (Minutes)’, indiquez la valeur 5 pour 5 minutes afin de synchroniser votre agenda Google avec l’extension Cal.

Enfin, ajouter un plugin ‘TYPO3 Calendrier’ avec la vue ‘Mois’ par exemple et dans la tabulation ‘Filters’, choisissez votre agenda Google.

Cependant, n’allez pas croire que la synchronisation de l’agenda va s’opérer toute seule. Il faut utiliser une tâche cron. L’extension Cal utilise une autre extension : Gabriel.

Dans le fichier ext_localconf.php de Cal, on retrouve d’ailleurs les lignes suivantes :

if (t3lib_extMgm::isLoaded(‘gabriel’)) {

    $GLOBALS[‘TYPO3_CONF_VARS’][‘EXTCONF’][‘gabriel’][‘include’][$_EXTKEY] = array(‘cron/class.tx_cal_calendar_cron.php’, ‘cron/class.tx_cal_reminder_cron.php’);

}

Dans le fichier class.tx_cal_calendar_cron.php, la classe tx_cal_icalendar_service (typo3conf/ext/cal/service/class.tx_cal_icalendar_service.php) est appelée. Les méthodes update et updateEvents vont mettre à jour la liste des événements pour notre calendrier externe Google. L’extension ‘Gabriel’ se sert d’un utilisateur backend nommé _cli_gabriel que vous devrez créer préalablement. Les événements seront créés dans le dossier système de Cal lorsque une tâche cron sera exécutée.

Voici un exemple (synchronisation toutes les 5 minutes) :

 */5 * * * * /var/www/instance_typo3/typo3conf/ext/gabriel/cli/gabriel_cron.phpsh> /dev/null

Vous pourrez vérifier ensuite votre calendrier en frontend pour voir que les événements ont été synchronisés.


Publicités