Project

General

Profile

Actions

PROBESYS est une Scop spécialisée dans l'Open Source (développements web et réseaux).

Nous avons été mandatés par le Centre de Culture Scientifique Technique et Industrielle (CCSTI) de Grenoble, pour le développement du site internet echosciences-grenoble.fr avec le CMS Drupal 7. Le site a été mis en ligne en mars 2012 et nous effectuons régulièrement des améliorations que ce soit au niveau technique que graphique.
Le CCSTI, en charge du projet et des contenus, a décidé d'externaliser la gestion des événements diffusés sur le site internet. Depuis juin 2013, les données du Sitra sont intégrées sur le site internet, à la place des événements.
Le CCSTI souhaitait également que les données soient indexées dans le moteur de recherche du site.
PROBESYS a attendu que la version 2 de Sitra soit opérationnelle pour développer un module Drupal qui intègre les données dans la base de données du site.

Que ce soit pour l'indexation, le graphisme ou la manipulation des données (choix des données, géolocalisation, gestion des dates, etc.), nous ne pouvions pas utiliser les widgets proposés par Sitra. Il était donc nécessaire de télécharger les données. Le choix de stocker les données sur le serveur et de les intégrer dans la base de données du CMS, nous permet aussi d'être indépendants si le service Sitra devient indisponible. L'avantage de ce système est que le CCSTI peut modifier ou supprimer des informations du site sans répercutions sur les données Sitra.
La procédure mise en place par Sitra pour récupérer les données est assez simple. L'application appelle une page du site echoscience avec les informations de téléchargement. Les données récupérées (méthode de transmission POST) sont intégrées dans la base afin de garder un historique, ce qui permet aussi de voir les états des téléchargements et de diagnostiquer rapidement en cas de problème.
L'étape suivante consiste à télécharger l'archive et extraire toutes les données Sitra au format JSON. Ces données sont aussi appelées « objets ». Notre programme va ensuite parcourir tous les fichiers pour récupérer les données et les intégrer dans le CMS Drupal. Afin de respecter la cohérence des données gérées par le CMS, les informations ne sont pas insérées directement dans la base de données mais insérées dans le CMS grâce à l'API de Drupal (ajout de nœud, de taxonomie, ...).
Les images sont récupérées et copiées sur le serveur. Le CMS se charge ensuite de les redimensionner à la bonne taille pour nos templates.
Les objets représentant dans notre cas les événements locaux peuvent être liés à d'autres objets qui ne sont pas forcément des événements (structure, hébergement, activités...), il était donc nécessaire de sélectionner uniquement les objets événements.
Le module gère aussi la suppression et la mise à jour des données déjà insérées dans la base.
Un des problèmes rencontré était dû à des erreurs de saisie de dates par les utilisateurs (exemple : date de fin antérieure à date de début), Nous avons donc mis en place une vérification qui prend en compte la date de début, si les dates ne sont pas correctes.

Les événements récupérés sont présentés sur la page d'accueil avec une carte Gmap. Un agenda présente toutes les données de façon chronologique. La page d'un événement présente toutes les informations ainsi qu'une carte de localisation de l'événement.

La saisie des événements est gérée uniquement par l'application Sitra. Les données proviennent à la fois du CCSTI mais aussi des différents Office de Tourisme selon les critères pré définis.

Voici la liste des données récupérées :
Nom de l'événement, Description, Identitifiant Sitra, Localisation, Date (avec date de fin et multi valeur), Tarifs, Image, Catégorie, Thème, Evénements liés, Téléphone, Fax, Site Internet, Email de contact, Page facebook.
Nous gardons l'identifiant Sitra de l'objet pour les mises à jours des objets ou éventuellement en cas de problème pour vérifier les données directement dans la base Sitra.

Ce module est fonctionnel mais doit d'être amélioré, notamment sur la création d'interface d'administration qui faciliterait la gestion des données. Malheureusement aujourd'hui ce module ne peux être utilisé que par des développeurs web ayant des connaissances en PHP et Drupal.
Une partie du code PHP (téléchargement des données, parcours des fichiers et récupération des données JSON) est indépendante de Drupal et peut donc être utilisée dans d'autres applications Web (CMS, framework, ...).
Le module est téléchargeable sur notre forge : http://forge.probesys.com/
N'hésitez pas à contribuer à ce projet.

Nous tenons à remercier l'équipe de Sitra qui a été très réactive à nos demandes.
htttp://probesys.com

Updated by Redmine Admin almost 10 years ago · 1 revisions