Apport d'améliorations à la plateforme pédagogique Moodle

La page est créée Grégory Blanchard
 
CONTINUER À LIRE
Apport d'améliorations à la plateforme pédagogique Moodle
Olivier RAULIN

IUT Informatique

Promotion 2010

                                                            ONIRIS Nantes

                                                       Rue de la Géraudière

                                                                  BP 82225

                                                       44322 Nantes cedex 3

                                    Rapport de stage

        Apport d'améliorations à la
     plateforme pédagogique Moodle

                      Stage du 12 avril au 18 juin 2010

Enseignant tuteur :   M. Jean-François REMM
Maître de Stage :     M. Frédéric Auffray

                                            1/30
Apport d'améliorations à la plateforme pédagogique Moodle
Remerciements

Remerciements à toute l'équipe du SAPREC¹, qui m'a permis d'effectuer ce stage dans

d'excellentes conditions, et d'obtenir une très enrichissante première expérience du monde de

l'entreprise.

Remerciements aux professeurs de l'IUT :

- Mme Jacquin, pour ses cours de Programmation Objet et de technologies Web

- M. Remm, pour son soutien durant ce stage, et durant ces deux années d'IUT

- M Cazalas, pour ses cours de communication

- Ainsi que l'ensemble du corps professoral en général, qui m'a permis d'atteindre le niveau de

compétences que j'ai aujourd'hui qui me permettra d'évoluer.

¹ : Service d'Appui à la Pédagogie, à la Recherche Et à la Communication

                                                            2/30
Apport d'améliorations à la plateforme pédagogique Moodle
Résumé

Mon stage portait sur la plateforme pédagogique Moodle², utilisée par de nombreuses

universités, y compris par l'Université de Nantes, par le biais de son service Madoc.

Suite à la fusion des deux écoles (Enitiaa³ et vétérinaire), la base de données des étudiants et

personnels va être fusionnée, et les effectifs de la plateforme du site Géraudière (Enitiaa) triplés.

De nombreuses difficultés d'usage ayant été rencontrées par les administrateurs, mon but était de

les corriger, le tout dans un code existant, qu'il n'était pas envisageable de reprendre à zéro.

Mon objectif principal était de permettre une meilleure recherche des utilisateurs, en proposant

plusieurs champs : Sur le nom, la classe, le groupe, etc …

Mes objectifs secondaires étaient principalement d'ordre ergonomique : Affichage des cours,

menu « automatique », etc …

                                                           Summary

My internship was on pedagogic platform Moodle, used by several universities, including the

University of Nantes, through its Madoc service.

Due to the fusion of two schools, (Enitiaa and veterinary), the student and employees database

will be joined, and the number of people on Geraudière's (Enitiaa) Moodle will be multiplied by

three.

Several ergonomic defaults were found by administrators, my goal was to fix them.

My major objective was to allow a better searching function of users, including more field of

search : By class, group, etc …

My secondary objectives were ergonomic too, Courses display, automatic menu, etc ...

² : « Modular Object-Oriented Dynamic Learning Environment » (Environnement d'apprentissage dynamique, modulaire, orienté objet)
³ : Ecole Nationale d'Ingénieurs des Techniques des Industries Agricoles et Alimentaires

                                                                 3/30
Apport d'améliorations à la plateforme pédagogique Moodle
Sommaire

Remerciements......................................................................................................... 2

Résumé / Summary …...............................................................................................3

Sommaire ..................................................................................................................4

Introduction.............................................................................................................. 6

I) Avant-Propos.........................................................................................................6

          I.1) Chapitre préliminaire.........................................................................................7

                     I.1.a) Présentation de l'école ....................................................................................7

                     I.1.b) Présentation du service SAPREC ..................................................................9

          I.2) Plateforme pédagogique Moodle ....................................................................10

                     I.2.a) Présentation..................................................................................................10

                     I.2.b) Besoins exprimés par les administrateurs de la plateforme pédagogique ..10

III) Paramétrage des rôles........................................................................................11

          III.1) Numérotation automatique des capacités .....................................................11

          III.2) Modification de style ....................................................................................12

                     III.2.a) Lisibilité, capacités par défaut du rôle et modifications effectuées ..........12

IV) Attribution des rôles : Administration des utilisateurs.....................................14

          IV.1)                       Catégories,                             cours                     et                    activités

.........................................................................14

V) Adaptations au niveau de la gestion des utilisateurs..........................................16

          V.1) Affichage des profils utilisateurs ....................................................................16

          V.2) Liste des participants sur les différents contextes …......................................18

VI) Développements d'utilitaires.............................................................................20

                                                                   4/30
Apport d'améliorations à la plateforme pédagogique Moodle
VI.1) Activité « Questionnaire ».............................................................................20

         VI.2) Carte interactive des partenaires Oniris en Europe ......................................21

VII) Autres modifications mineures........................................................................22

         VII.1) Fichiers de langue .......................................................................................22

         VII.2) Affichage de la liste des cours .....................................................................23

         VII.3) Affichage de la bannière à partir de ressources externes ............................24

VIII) Divers..............................................................................................................25

         VIII.1) Menu automatique ......................................................................................25

         VIII.2) Lettre d'information interne .......................................................................25

         VIII.3) Modules Moodle ........................................................................................26

Perspectives et prolongement..................................................................................28

Glossaire..................................................................................................................29

Bibliographie / Sitographie......................................................................................30

                                                           5/30
Apport d'améliorations à la plateforme pédagogique Moodle
Introduction (1 page)

Dans le cadre de mon stage de fin de DUT, j'ai effectué un stage de 10 semaines au service
SAPREC de l'école Oniris, sur le site de la Géraudière (en effet, l'école est divisée en deux sites :
Géraudière (ex-Enitiaa) et Chantrerie (ex ENVN⁴) )

J'ai choisi ce stage principalement car ma préférence s'orientait vers le domaine du Web, et j'ai

profité de cette opportunité sur la plateforme pédagogique open-source Moodle.

Mes attentes concernant ce stage étaient principalement de pouvoir mettre en pratique et

renforcer mes connaissances théoriques acquises à l'IUT, et me permettre de mieux appréhender

la vie de l'entreprise.

Cette offre de stage a été proposée suite à la fusion de deux écoles, l'ex-Enitiaa (école

agroalimentaire), et l'ex école vétérinaire de Nantes, créant ainsi Oniris.

Le principal besoin fût de personnaliser l'ergonomie de la plateforme pédagogique, afin de

pouvoir gérer trois fois plus d'utilisateurs.

Ce stage avait pour principale contrainte l'intégration d'un code nouveau à un code existant de la

version 1.9.8 : Il n'était pas question de tout refaire à partir de rien.

⁴ : Ecole Nationale Vétérinaire de Nantes

                                                    6/30
Apport d'améliorations à la plateforme pédagogique Moodle
Chapitre préliminaire

Afin de présenter l'école, je me permets de reprendre le discours du Directeur Général sur le site d'Oniris :

« ONIRIS est un établissement d'enseignement supérieur et de recherche du Ministère de l’Alimentation,
de l’Agriculture et de la Pêche.
Ancré dans son territoire et ouvert sur l’espace européen, il dispose d’une palette thématique très large

incluant la santé animale, la santé publique, les domaines clinique et biomédical, les sciences de

l’alimentation et le génie des procédés.

Il forme plus de 1 100 élèves en proposant notamment les formations correspondant :

- aux métiers de vétérinaire (diplôme de docteur vétérinaire) d'une part. La spécificité de cette formation

de pathologistes et de biologistes de haut niveau est d'associer les aptitudes acquises par une formation

par la clinique, notamment au sein d’un hôpital de niveau européen, à celles résultant d'une formation

par la recherche,

- aux métiers d'ingénieur agroalimentaire (diplôme d’ingénieur) d'autre part. Cette formation bénéficie

d’un ancrage très fort dans le tissu industriel et d’outils très spécifiques professionnalisants et de

recherche comme une halle technologique performante.

Tout en demeurant spécifiques, ces deux cursus vont interagir de façon à apporter une valeur ajoutée à

chacun d’entre eux dans l’optique d’une diversification des métiers et d’une meilleure employabilité.

Les étudiants sont immergés dans une « Ecole citoyenne », par exemple par leur contribution à des

opérations d’ouverture sociale du type « cordées de la réussite ».

ONIRIS a pour ambition d’être un acteur fort de l’enseignement supérieur et de la recherche dans les

domaines de la santé animale et humaine, en contribuant activement au concept « one medicine, one

health », et de l’alimentation.

A ces deux thèmes principaux, s’ajoute une contribution à une thématique transversale concernant

l’environnement et le développement durable.

ONIRIS a la volonté d’intégrer dans ses missions les enjeux de société et les politiques publiques qui les

                                                     7/30
Apport d'améliorations à la plateforme pédagogique Moodle
servent.

Grâce à son accréditation à délivrer le doctorat, au « passeport recherche » de ses étudiants et à son

offre de masters, ONIRIS possède un dispositif très attractif de formation-recherche, en articulation avec

les différents instituts de recherche.

L’Ecole est insérée dans le PRES⁵ Université Nantes-Angers-Le Mans et dans le Pôle de Compétences

Ouest du ministère de l’alimentation, de l’agriculture et de la pêche.

Quatre thématiques positionnent ONIRIS notamment au travers de ses activités de recherche:

   . un axe « santé humaine, recherche clinique et biomédicale, modèles animaux » visant à comprendre

les mécanismes pathologiques et à produire des traitements innovants de maladies de l’animal et de

l'homme, notamment dans le cadre d'interactions fortes avec le pôle Santé régional ;

   . un axe « maîtrise de la santé des animaux d'élevage » visant à répondre à des enjeux de suffisance

alimentaire, par la prévention et la gestion de crise de santé animale, et à la santé de l'homme par la

prévention de risques biologiques ou chimiques dans la chaîne alimentaire ;

   . un axe « sécurité et qualité de l'aliment » contribuant à produire des connaissances et des méthodes

permettant d'assurer la production d'aliments de bonne qualité sanitaire, nutritionnelle et sensorielle ;

   . un axe « procédés alimentaires, management et développement durable » visant à la conception et

l'évaluation de procédés agro-alimentaires innovants et durables pour produire des aliments répondant

aux stratégies industrielles et aux attentes du consommateur.

En matière d’alimentation, une des fortes spécificités d’ONIRIS est de proposer une approche

transdisciplinaire déclinée de l’amont à l’aval. »

⁵ : Pôle de Recherche et d'Enseignement Supérieur

                                                     8/30
Apport d'améliorations à la plateforme pédagogique Moodle
Présentation du service SAPREC

Le SAPREC existe depuis Janvier 2010, et a été créé spécifiquement depuis la fusion des deux
écoles.

Il est composé de 6 personnes à plein temps, réparties sur les deux sites de l'Ecole (Géraudière et

Chantrerie) :

Au niveau du site Géraudière :

- M Jean-Yves Malégeant, chef du service

- Mme Dany Rouillard, assistante de M. Malégeant

- M Frédéric Auffray, mon maître de stage, Assistant Ingénieur

- M Ricardo Bandeira, infographiste

Au niveau du site Chantrerie :

- Delfine Couffin, gestion du site web + audiovisuel

- Frédéric Fouillet, gestion du site web + audiovisuel

J'ai eu la chance de pouvoir être en contact avec une diversité de métiers qui m'a beaucoup appris

: En effet, le point de vue de la secrétaire et de l'infographiste n'étaient pas toujours les mêmes

que les miens, et m'ont permis de progresser dans l'écoute, la compréhension des besoins, et

l'apport d'une réponse la plus adaptée possible.

                                               9/30
Apport d'améliorations à la plateforme pédagogique Moodle
Plateforme pédagogique Moodle

        Présentation
C'est une plateforme d'apprentissage, qui regroupe sur un même site tout ce qui peut permettre à
des étudiants de se former : Des cours, des forums, des vidéos … tout est présent afin de
permettre aux étudiants anglo-saxons d'étudier le mieux possible. Cependant, nous ne
fonctionnons pas de la même manière.
Site officiel : http://www.moodle.org

Moodle en quelques chiffres :

- Utilisé dans 212 pays, par 50000 sites enregistrés

- Plus de 3,5 millions de cours, et 35 millions d'utilisateurs

        Besoins exprimés par les administrateurs de la plateforme

La création d'Oniris est le résultat de la fusion de deux écoles Nantaises, l'Enitiaa et l'école

vétérinaire : Cette fusion implique un regroupement en une seule entité.

La plateforme pédagogique, utilisée des deux côtés, est également concernée par ce

changement : Par rapport à la plateforme du site Géraudière, c'est un triplement des utilisateurs

qui va s'opérer.

La plateforme n'étant pas un modèle d'ergonomie, les administrateurs de la plateforme m'ont

exprimé leurs principaux besoins concernant la modification du code de certains points de la

plateforme : Il fallait que cela soit plus pratique à utiliser. Je vais ensuite détailler les différents

points sur lesquels on m'a demandé de travailler, et ma démarche de travail.

                                                  10/30
Paramétrage des rôles

       Introduction au système de rôles dans Moodle

Moodle prévoit de créer des rôles pour certains utilisateurs : Ces rôles sont crées par

l'administrateur de chaque plateforme, et par défaut sont : « Administrateur, Enseignant,

Etudiant, Invité, Anonyme ». Chaque rôle peut se voir affecter des permissions différentes, et ce

depuis le niveau global (système) jusqu'à une ressource d'un cours.

Ces rôles ont des capacités qui leur sont associées : Par exemple, « voir un cours », « créer un

cours », ou encore « répondre à un questionnaire » … Au total, ce sont plus de 220 capacités

différentes, divisées en une vingtaine de catégories : Chaque capacité peut être configurée en

« Hériter » (recherche du paramétrage des droits au niveau supérieur), « Autoriser » (On spécifie

que le rôle peut effectuer cette action), « Empêcher » (On empêche l'utilisateur d'effectuer cette

action, mais un niveau « inférieur » positionné à « Autoriser » pourra y accéder), « Interdire »

(Interdit l'accès pour le rôle et tous ses niveaux enfant), permettant de mieux gérer les droits

d'accès.

       Numérotation des capacités

Il m'a été demandé de pouvoir se repérer des les capacités : Fureter dans les 200 capacités pour

chercher celle que l'on veut est laborieux.

J'ai donc réfléchi à une manière simple de se repérer : L'idéal serait une numérotation des

capacités, classées par catégorie (Cours, Forums, etc ..).

Après avoir examiné le code des différentes pages permettant l'attribution de capacités

(Définition des rôles et Dérogations), j'ai rajouté un numéro devant chaque catégorie, et, sur

                                               11/30
chaque capacité, un sous-numéro.

Avant :

Après :

          Modification du style

                 Lisibilité, capacités du rôle par défaut

Cette page regroupe donc toutes les capacités possibles, sur fond blanc.

Problème : Il était difficile de pouvoir voir exactement où se situait le curseur de la souris, ainsi

que les différentes capacités. Il était également assez peu commode de voir où se situaient les

boutons « cochés »

                                                 12/30
Pour ce problème, j'ai tout d'abord commencé par les paramètres des capacités par défaut : Ils

étaient repérées dans le code, ce qui m'a permis d'attribuer une couleur plus claire (si une autre

avait été sélectionnée depuis), ainsi qu'une bordure. Ensuite, j'ai entrepris de modifier la couleur

d'une capacité modifiée : Il fallait qu'elle soit bien visible, j'ai donc choisi du noir. Pour finir, le

positionnement du curseur de la souris modifie la couleur de la ligne, permettent lorsqu'on

modifie la capacité à voir rapidement celle qu'on est en train de modifier.

Apparence de départ :

Apparence après modifications :

                                                 13/30
Attribution des rôles : Administration des utilisateurs

          Catégories, cours et activités

Il est possible pour les administrateurs de paramétrer un rôle spécifique à des utilisateurs, pour

un cours ou une « activité » de ce cours, afin de gérer finement qui a accès à quelle ressource.

Les administrateurs ont exprimé le problème suivant : Il n'existe qu'un unique champ de

recherche des utilisateurs lors de l'attribution des rôles à des utilisateurs : Ce champ n'effectue

une recherche que sur le nom ou l'adresse de courriel de l'utilisateur. Dans une liste de plus de

1000 personnes, il devient très difficile de rechercher un groupe de TP, par exemple, puisque la

recherche doit s'effectuer manuellement.

Avant :

                Cet exemple démontre bien la difficulté pour constituer un groupe parmi ces 569 ...

                                                      14/30
Après ...

 Différents champs de recherche sont maintenant à la disposition de l'administrateur, avec affichage des classes des

                                            étudiants, et de leur statut ...

                                                        15/30
Adaptations au niveau de la gestion des utilisateurs

        Affichage des profils utilisateurs

Par défaut, les profils utilisateurs affichent l'adresse de courriel, la ville, et le pays.

                         L'exemple ci-dessus démontre la difficulté à trier les étudiants

                                                     16/30
Nous avons maintenant le choix du tri : Selon le nom, la classe, etc ...

Concernant ces mêmes profils, une autre demande m'a été formulée concernant la suppression

des membres : En effet, pour supprimer un groupe d'utilisateurs, il fallait cliquer sur chaque

utilisateur, valider la suppression, puis revenir sur la page d'affichage des profils, trier à nouveau

la liste des utilisateurs, pour finalement pouvoir supprimer le deuxième … et ainsi de suite.

Au départ, j'avais l'intention de modifier le lien « Supprimer » par des cases à cocher, avec un

lien tout en bas de la page permettant de supprimer toutes les fiches sélectionnées. Cependant, la

fonctionnalité de suppression multiple n'ayant pas été prévue par Moodle, il aurait fallu passer

par une phase de codage de suppression d'utilisateurs en chaîne … N'ayant pas jugé cette

solution optimale et simple à mettre en place, je me suis plutôt dirigé vers une solution utilisant

le langage Javascript, effectuant les actions suivantes :

- Ouverture d'une fenêtre en avant-plan de la fenêtre actuelle, demandant la confirmation de

suppression de l'usager, puis fermeture de celle-ci lorsqu'on a cliqué sur Oui ou Non (et que la

                                                    17/30
suppression a été effectuée)

- Masquage de la ligne associée dans la page de départ : Ceci simule, pour l'utilisateur, une

suppression déjà effective au niveau du serveur, sans rechargement : Il pense que la page à été

mise à jour, et donc peut continuer rapidement à supprimer le reste des utilisateurs. Quand il

rechargera la page, le serveur renverra les informations qu'il a en mémoire : Les utilisateurs

supprimés ne seront définitivement plus présents.

- Le tri des utilisateurs ne sera pas modifié par ce rafraichissement.

       Création d'une fonction d'exportation en CSV

Par défaut, la liste des utilisateurs n'est pas exportable. En vue de la fusion, les administrateurs

désiraient pouvoir exporter cette liste (complète, pas seulement page par page).

Pour répondre à cette demande, j'ai repris du code existant dans le module d'activité de bases de

données, qui permet l'export en CSV, et l'ai adapté à la liste des utilisateurs, et j'ai rajouté un lien

visible pour l'administrateur, afin d'exporter rapidement cette liste.

       Liste des participants sur les différents contextes

Une autre exigence a été d'avoir une numérotation dans les différentes listes d'utilisateurs (dans

un groupe, sur un cours, une activité, … ainsi qu'une possibilité pour les personnes visualisant

cette liste d'imprimer les participants. Cela permet un travail de secrétariat plus facile

Après m'être penché sur le code affichant ces différentes pages, j'ai rajouté un identifiant modifié

dynamiquement à chaque utilisateur, permettant un meilleur repérage parmi le nombre total de

participants.

                                                 18/30
J'ai également rajouté un bouton, qui affiche, via une fonction Javascript, une nouvelle fenêtre

avec la liste des personnes désirées.

                                             19/30
Développement d'utilitaires

          Activité « Questionnaire »

Demande de la secrétaire, ayant à créer des activités de type « Questionnaire » sur Moodle : Une

fonctionnalité n'a pas été prévue par les développeurs Moodle, qui est celle de pouvoir

personnaliser les questions de type « Question Cloze » : Il est nécessaire de modifier un langage

descriptif spécifique à Moodle (Comme peuvent l'être le BBCode, le HTML …) pour modifier

les questions, réponses, et commentaires sur les réponses. Une solution plus simple est désirée.

                                                   Un exemple de « Question Cloze »

Dans ma phase de réflexion, j'ai eu plusieurs choix technologiques à ma disposition : La

technologie de serveur PHP⁶, ou bien Javascript⁷, que je ne maîtrisais pas beaucoup, mais me

semblait plus adapté, notamment par son indépendance vis-à-vis d'un serveur (seul le navigateur

est nécessaire). Je me suis donc orienté vers une technologie Javascript, tout en sachant que mon

niveau était assez faible dans ce langage.

La solution proposée a donc été un formulaire, qui demande le nombre de champs que l'on désire

pour cette « Question Cloze » : Ensuite, la page affiche automatiquement le nombre de champs

nécessaires, avec un champ intitulé, un champ pour un éventuel commentaire (suite à la réponse

de l'étudiant), et enfin une case à cocher pour spécifier si c'est une des réponses attendues ou pas.

En validant le formulaire, le résultat apparaît instantanément dans un cadre en dessous, et, si

l'utilisateur utilise Internet Explorer, le code est automatiquement copié dans le presse-papier : Il

n'y a plus qu'à coller dans la page Moodle.
⁶ : PHP Hypertext Preprocessor : Technologie de programmation du côté du serveur, permettant de créer des sites web dynamiques
⁷ : Langage de programmation utilisant les ressources des machines clientes pour s'exécuter.

                                                                  20/30
Le formulaire au dessus permet la génération du langage descriptif simplement.

       Carte interactive des partenaires Oniris en Europe

Au départ, cette carte, qui regroupe les différentes Universités partenaires d'Oniris en Europe,

était créée manuellement pour chaque pays, avec les désavantages qu'impliquent la

programmation statique. Quand, par exemple, on désire faire une modification sur une page, il

faut la répéter sur toutes les pages : cela devient rapidement fastidieux quand il y a 27 pages …

Étant donné que nous avions à notre disposition un serveur PHP, mais pas de base de données,

j'ai décidé de créer une unique page, qui contiendrait toutes les informations, et qui afficherait

celles concernant le pays demandé. Ensuite, un autre problème se posait : celui de la saisie

manuelle des informations dans le code.

Pour résoudre ce problème, j'ai créé une page en Javascript, qui, à partir d'un formulaire, générait

le code à copier dans la page PHP. Le traitement s'en est vu largement simplifié.

                                                      21/30
Le résultat de la carte des partenaires est visible à l'adresse :

http://ent.enitiaa-nantes.fr/mod/resource/view.php?id=5274

Le formulaire d'aide à la saisie :

                                                 22/30
Autres modifications mineures

       Fichiers de langue

Moodle étant multilingue, tous les contenus textuels de la plateforme sont gérés par des

fichiers de langue. Il devient donc aisé de modifier à sa guise ce que l'on désire afficher.

Les Administrateurs de la plateforme avaient besoin de champs supplémentaires non

prévus par Moodle : le Site Oniris (permettant de spécifier Géraudière, Chantrerie,

Université, etc. ..), la classe, le groupe, et le statut de la personne. Des champs non

utilisés ont donc été remplacés pour coller avec leur nouvel usage. Le problème qui s'est

posé est le suivant : comment rendre clair le fait qu'une personne ajoutant un utilisateur

manuellement doive rentrer la classe de l'étudiant dans le champ « Département » ?

Les fichiers de langue de Moodle sont mis dans des dossiers inaccessibles par le web. J'ai

donc entrepris de rechercher dans ces fichiers les lignes dont j'avais besoin, et les ai

modifiées, permettant une meilleure clarté des nouveaux libellés.

       Affichage de la liste des cours

Par défaut, l'affichage des cours d'une catégorie se fait en fonction du nombre de cours de

cette catégorie : S'il y a moins de 10 cours, l'affichage se fait de manière « résumée » :

Quand les enseignants mettent des résumés parfois aussi longs que le cours lui-même, la

lisibilité s'en voit d'autant réduite, comme le montre la capture suivante :

                                            23/30
Aperçu des cours en mode « Résumé »

Après mes modifications, tous les cours s'affichent en mode « Condensé » :

           Par défaut, seuls les noms des cours étaient affichés : J'y ai rajouté les responsables de cours

        Affichage de la bannière à partir de ressources externes

Lors de l'affichage d'un site extérieur dans une fenêtre de Moodle (par un système de cadres), le

bandeau supérieur affichait un ascenseur vertical assez peu esthétique.

J'ai donc modifié le paramètre qui gérait la hauteur du cadre du haut, ce qui a automatiquement

fait disparaître l'ascenseur.

                                                       24/30
Divers

       Menu automatique

Le menu actuel est créé statiquement. Cela posera problème si des catégories viennent à devoir

être ajoutées. Il existe un menu automatique dans un des thèmes Moodle, cependant ce menu

n'est pas très esthétique, et surtout, n'est pas temporisé (ce qui signifie qu'un déplacement

légèrement diagonal entraînera la fermeture du menu), ce qui ne convient pas aux

Administrateurs de la plateforme.

J'ai commencé à étudier ce menu, et ai été confronté à des difficultés : adapter le code fut loin

d'être évident, et, après plusieurs jours de recherche, j'ai finalement décidé de reprendre

entièrement le code de ce menu et de repartir de zéro. Ce fut bien plus efficace, même si

certaines subtilités (notamment le fait que Moodle rajoute automatiquement des fragments de

code à l'affichage) ont eu des effets inattendus. J'ai fini par réussir à avoir un menu fonctionnel,

lisible, paramétrable (il suffit de changer la valeur de 2 variables).

       Lettre d'information interne

La lettre d'information interne à l'école est pour le moment gérée par l'infographiste du SAPREC,

qui, à chaque modification du contenu doit la reprendre et l'adapter.

Il a été pensé une solution qui permettrait aux décideurs de modifier directement le contenu de

cette lettre, par le biais d'une interface web. Cette interface propose de sélectionner le numéro de

la lettre, ou d'en créer un nouveau, puis affiche les catégories de cette lettre, avec une fonction de

modification pour les personnes autorisées. L'administrateur peut valider un article, ce qui

empêchera son édition ultérieure.

                                                25/30
Il y a également un bouton de prévisualisation accessible à tous.

          Modules Moodle

                     Module Base de données.

Il est nécessaire, sur les bases de données, pour la vider, de la supprimer puis de la recréer.

J'ai ajouté un élément au menu de la gestion des bases, visible uniquement à l'administrateur,

permettant de supprimer toutes les fiches, sans avoir à supprimer la base.

Des performances très gênantes semblent affecter l'activité base de données. Après une analyse

du code, j'ai découvert que Moodle effectuait plus d'une requête par champ d'un enregistrement.

Exemple observé, 100 fiches comprenant une dizaine de champs par fiche voyaient effectuées au

serveur MySQL⁸ plus de 1500 requêtes.

La complexité du code ne me permettant pas l'optimisation, j'ai recherché comment il serait

possible d'améliorer les performances, au niveau du serveur de base de données MySQL : J'ai

trouvé une instruction, à placer dans le fichier de configuration, qui permet de garder en mémoire

les requêtes effectuées à la base : La prochaine fois que ces requêtes seront effectuées, le serveur

regarde premièrement s'il a déjà traité cette requête, et si oui, renvoie le résultat qu'il avait

renvoyé à ce moment là. Sur mon serveur de test, le résultat à été impressionnant : De 50

secondes pour afficher l'intégralité d'une base avant l'activation du cache, l'affichage est passé à

environ 3 secondes.

La mise en place du paramètre de configuration sur le serveur de production a été également

largement bénéfique.
⁸ : MySQL : Serveur de bases de données, le plus souvent couplé avec PHP.

                                                                  26/30
Module Passeport

Ce module a été créé en 2006, par un étudiant de l'école Vétérinaire, et est toujours utilisé.

Des tests montraient que ce module empêchait la sauvegarde de la plateforme. En cas de crash de

la plateforme, il n'y avait quasiment rien pour restaurer les données.

Mon approche fût premièrement d'adapter le code pour le rendre compatible avec la dernière

version, de corriger quelques erreurs, puis, finalement, de m'attarder sur la sauvegarde du

module.

Il s'avérait que la fonction de sauvegarde tentait de sauvegarder une table de la base qui n'existait

pas. Cela bloquait le processus global de sauvegarde.

J'ai donc modifié le code de la sauvegarde, afin de sauvegarder les tables qui étaient réellement

présentes.

Le problème reste entier pour la fonctionnalité de restauration, qui n'est pas fonctionnelle non

plus. J'ai essayé de comprendre son fonctionnement, mais le temps m'a fait défaut.

                                               27/30
Perspectives et prolongement

Mon travail aura permis à Oniris d'effectuer sereinement la fusion des deux sites, et permet une
meilleure ergonomie de la plateforme.

Une version 2.0 de Moodle est prévue d'ici juillet. Il m'a été demandé de vérifier si mon code

était transposable pour la version à venir : ma réponse est malheureusement négative. Les

changements de Moodle 2.0 sont très profonds, et il devient encore plus difficile de s'intégrer au

code pour le modifier. Il sera probablement nécessaire de faire appel à un ingénieur, plus qu'un

DUT, pour ce travail. Cependant, comme toute nouvelle version d'un logiciel, il est probable que

celle-ci aie des bugs et des incohérences.

Mon avis personnel est que la version actuelle, qui sera probablement maintenue pendant de

nombreux mois, pourra continuer de fonctionner pendant 1 ou 2 ans, sans problème particulier.

                                              28/30
Glossaire

PHP : « PHP : Hypertext Preprocessor » : Langage de programmation destiné principalement au
web, côté serveur, permettant de créer des sites web dynamiques (Dont le contenu change en
fonction des utilisateurs)
HTML : « HyperText Markup Language » : « Langage » de formatage des données, utilisé dans

les pages web.

Javascript : Langage de programmation web, utilisé côté client (sur l'ordinateur de l'utilisateur).

Moodle : « Modular Object-Oriented Dynamic Learning Environment » (Environnement

d'apprentissage dynamique, modulaire, orienté objet)

SAPREC : Service d'Appui à la Pédagogie, à la Recherche Et à la Communication

LDAP : « Lightweight Directory Access Protocol » : Service d'annuaire d'utilisateurs

Open Source : Logiciel permettant l'accès au code du programme, ainsi qu'à sa redistribution.

PRES : Pôle de Recherche et d'Enseignement Supérieur

Enitiaa : Ecole Nationale d'Ingénieurs des Techniques des Industries Agricoles et Alimentaires

CSV : « Comma-separated values » : Format informatique de représentation des données,

séparées par des virgules.

                                               29/30
Bibliographie – Sitographie

PHP.net : Manuel de toutes les fonctions PHP
Moodle.org : Site de l'éditeur de Moodle
fr.selfhtml.org : Site de référence sur le HTML, Javascript, XML, etc …
PHPxREF : Outil d'analyse du code source qui permet de retrouver facilement les fonctions,
variable, et tout ce qui est nécessaire pour comprendre le fonctionnement d'une application web.
Le guide du E-learning avec Moodle, William H. Rice, Pearson Education

                                             30/30
Vous pouvez aussi lire