Au cours de mon second stage au CNRS, du 8 janvier au 9 fevrier 2024, une mission m'a été confié, qui a été divisé en 2 étapes :

  1. Restructuration HTML du site sans base de données :

    • Réorganisation approfondie d'un site internet (initialement leglise.cnrs.fr construit via SPIP).
    • Adoption d'une nouvelle structure HTML, excluant l'utilisation de base de données au profit de fichiers HTML pour des raisons de simplicité.
  2. Intégration d'une base de données :

    • Après le recodage HTML des pages du site, exploration de la possibilité de générer automatiquement des fichiers HTML via un formulaire.
    • Cependant, cette approche a été abandonnée (car trop complexe), en faveur de l'adoption d'EasyAdminBundle pour simplifier l'administration du site, malgré l'objectif initial de se passer de base de données.

Information sur l'entreprise
  • Nom : Centre National de la Recherche Scientifique (CNRS)
  • Activité : Recherche
  • Forme juridique : EPST (Établissement Public à caractère Scientifique et Technologique)
  • Adresse : Campus de Villejuif (7 Rue Guy Môquet, 94800 Villejuif)
  • Effectif à l'adresse : De 1 000 à 4 999 employés
  • Effectif sur l'ensemble du CNRS : Plus de 33.000 agents

Information sur mon service d'accueil
  • Unité Ardis (Appui à la Recherche et Diffusion des Savoirs) : Une unité qui comporte 4 équipes, dont une équipe informatique
  • Activités de l'équipe informatique : Prestations web, gestion de bases de données, administration des serveurs, dépannage des machines présentes sur le site

Expression des besoins
  • SPIP (Système de Publication pour l'Internet Partagé) est un CMS open source français largement utilisé, reconnu pour sa convivialité et ses fonctionnalités avancées dans la création et la gestion de sites web.
  • Reposant sur une base de données, SPIP offre une gestion efficace du contenu, adaptée aux divers besoins des utilisateurs, qu'il s'agisse de sites d'information, de blogs ou de sites institutionnels.
  • Malgré son évolution constante, un plugin essentiel développé par le CNRS n'est plus maintenu, entraînant des problèmes croissants de compatibilité avec SPIP.
  • En raison de la nécessité de mettre à jour SPIP à sa dernière version imposée par l'hébergeur pour des motifs de sécurité, la migration des sites SPIP CNRS vers un autre support devient progressivement inévitable.

Cahier des charges
  • Recodage des pages selon les directives initiales de ma tutrice.
  • Mise en place d'une gestion multilingue du site via des URL /fr et /en, afin que les utilisateurs puissent basculer entre les versions linguistiques par un simple clic sur les drapeaux correspondants.
  • Création d'une base de données pour générer de nouvelles pages en tant qu'administrateur.
  • Adoption d'EasyAdminBundle pour simplifier les opérations CRUD et faciliter la création de rubriques et articles.
    • L'intégration d'EasyAdmin s'est déroulée sans problème, mais l'ajout de fonctions comme l'insertion d'images a nécessité une recherche approfondie sans documentations en ligne disponibles pour ce problème.
    • Solution trouvée : en ayant recherché comment fonctionnait Spip, ma solution était donc l'ajout d'images via des expressions régulières, permettant donc à l'administrateur d'importer et d'insérer des images avec une syntaxe spécifique ([image: filename.jpg, position, width, height, mediabox]), tel Spip qui fonctionnait avec une balise ressemblant à <filename|position|largeur=200>.

Ressources matérielles et logicielles mises à disposition
  • Un PC portable HP avec :
  • Windows 11 Professionnel
  • Intel Core i7
  • 16 Go de RAM
  • L'IDE JetBrains PhpStorm
  • Docker Desktop pour la gestion de la base de données

J'ai développé une interface de connexion pour les administrateurs, pour leur faciliter la création de rubriques et d'articles sur le site.
L'objectif principal est de simplifier le processus d'alimentation du site pour l'administrateur, en lui permettant de créer du contenu via un formulaire, lui évitant ainsi d'avoir à utiliser des fichiers HTML et de connaitre ce langage.