Manuel du développeur

Ce document décrit en quelques mots le design à la base de Moodle et comment vous pouvez contribuer à son développement.

Il est un peu mince pour l'instant. Une meilleure documentation est prévue !

Sections de ce document :

  1. Architecture de Moodle
  2. Comment vous pouvez aider

 

1. Architecture de Moodle

Du point de vue d'un administrateur de système, Moodle a été conçu selon les critères suivants :

  1. Moodle devrait fonctionner sur le plus possible de plateformes différentes

    L'application web qui tourne sur le plupart des plateformes est PHP, en combinaison avec MySQL, et c'est l'environnement dans lequel Moodle a été développé (sur Linux, Windows et Mac OS X). Moodle utilise aussi la librairie ADOdb pour l'abstraction de la base de données, ce qui implique que Moodle peut utiliser plus de 10 marques de bases de données différentes (toutefois, il ne peut malheureusement pas encore mettre en place les tables de toutes ces bases de données. Voir ci-dessous pour plus d'informations).

  2. Moodle devrait être facile à installer, à apprendre et à modifier

    Les premiers prototypees de Moodle (1999) étaient basés sur Zope, un serveur d'application web orienté objet de technologie avancée. Malheureusement, bien que cette technologie soit plutôt cool, elle avait une courbe d'apprentissage très raide et n'était pas très souple en termes d'administration de systèmes. D'un autre côté, le langage de scripts PHP est très facile d'accès, notamment si vous avez déjà programmé avec un autre langage de scripts. J'ai pris assez tôt la décision de ne pas utiliser un concept orienté objet, là encore, pour conserver la simplicité par égard pour les novices. En lieu et place, la réutilisation du code est accomplie grâce à des librairies de fonctions clairement dénommées et par une mise en page cohérente des fichiers de scripts. En outre, PHP est facile à installer (des exécutables sont disponibles pour toutes les plateformes) et si largement répandu que la plupart des services d'hébergement web l'offrent en standard.

  3. Il devrait être facile à mettre à jour d'une version à la suivante

    Moodle connaît son numéro de version (tout comme ceux de chacun des modules) et un mécanisme y a été implémenté de sorte qu'il puisse se mettre à jour tout seul (il peut par exemple renommer les tables de la base de données ou y ajouter de nouveaux champs). Si vous utilisez CVS sur Unix, vous pouvez par exemple taper la commande « cvs update -d », puis visiter la page d'accueil de votre site pour terminer la mise à jour.

  4. Il devrait être modulaire pour pouvoir grandir facilement

    Un grand nombre de fonctionnalités de Moodle sont modulaires, notamment les thèmes, les activités, les langues de l'interface, les schémas de la base de données et les formats de cours. Cela permet à quiconque d'ajouter des fonctionnalités au code principal ou encore de distribuer des modules séparément. Voir ci-dessous pour plus d'informations à ce sujet.

  5. Il devrait pouvoir être utilisé en association avec d'autres systèmes

    Moodle conserve tous les fichiers d'un cours dans le même dossier sur le serveur. Cela permet à un administrateur système d'offrir pour chaque enseignant n'importe quel type d'accès direct aux fichiers, comme Appletalk, SMB, NFS, FTP, WebDAV, etc. Les modules d'authentification permettent à Moodle d'utiliser LDAP, MAP, POP3, NNTP et d'autres bases de données comme source des données des utilisateurs. Autrement, il reste pas mal de travail à faire. Les fonctionnalités prévues de Moodle pour les versions à venir comprennent notamment : l'importation et l'exportation des données en format XML (y compris IMS et SCORM) et l'utilisation croissante des feuilles de style pour l'interface (permettant ainsi une meilleure incorporation dans d'autres sites web).

 

2. Comment vous pouvez aider

Comme indiqué ci-dessus, bon nombre de fonctionnalités de Moodle sont modulaires. Même si vous n'êtes pas programmeur, il y a des choses que vous pouvez modifier ou pour lesquelles vous pouvez nous aider.

Activités d'apprentissage

Ce sont les modules les plus importants. Ils sont placés dans le dossier « mod ». Il y a sept modules par défaut : devoir, sondage, test, forum, journal, questionnaire et ressource. Chaque module est placé dans un sous-dossier propre et consiste en divers éléments obligatoires (ainsi que d'autres scripts propres à chaque module) :

Pour programmer un nouveau module d'activité, le plus simple est d'utiliser le modèle mod/newmodule_template.zip. Décompressez-le est suivez les instructions du fichier README inclus.

Il est également judicieux de poster auparavant un message sur le forum Activities modules dans le cours « Using Moodle ».

 

Thèmes

Les thèmes (ou « skins ») définissent l'aspect d'un site. Quelques thèmes simples sont fournis dans la distribution de Moodle. Vous pouvez aussi créer votre propre thème avec vos couleurs, logo, styles et graphiques préférés.

Chaque thème est placé dans un sous-dossier « theme » qui contient au moins les fichiers suivants :

Pour créer votre propre thème avec la version actuelle de Moodle :

  1. Copier le dossier d'un des thèmes existants et donner un nouveau nom à la copie. Il est recommandé de commencer avec l'un des thèmes standard.
  2. Ouvrir config.php et y insérer vos couleurs préférées.
  3. Ouvrir styles.php et changer les styles CSS.
  4. Ouvrir header.html et footer.html pour y ajouter les nouveaux logos ou pour modifier la mise en page.

Toutes ces étapes sont optionnelles. Vous pouvez obtenir un aspect complètement différent en modifiant uniquement les couleurs dans config.php.

Il est à noter que les mises à jour de Moodle pourraient empêcher le fonctionnement correct d'un thème personnalisé. Vérifier les notes de mise à jour si vous utilisez un tel thème.

En particulier, Moodle 2.0 aura un système d'affichage complètement différent, probablement basé sur la transformation XSL du code XML de Moodle. Il est vraisemblable que les thèmes auront alors un format totalement différent, avec en contrepartie une liberté bien plus grande pour la personnalisation (y compris le déplacement des éléments sur la page).

Pour en savoir plus, participez à la discussion sur le forum Themes dans le cours « Using Moodle ». si vous créez un joli thème susceptible d'intéresser d'autres utilisateurs, merci de poster votre fichier zip sur ce même forum.

Langues

Moodle a été conçu pour permettre son internationalisation. Chaque chaîne de caractère ou page de texte faisant partie de l'interface est affichée à partir d'un ensemble de fichiers de langue. Chaque langue consiste en un sous-dossier du dossier « lang ». La structure du dossier lang est la suivante :

lang/fr - dossier contenant tous les fichiers pour une langue (par exemple le français)

lang/fr/help - contient toutes les pages d'aide (pour l'aide contextuelle, fenêtres « popup »)

Les pages d'aide principales y sont stockées, alors que les pages d'aide spécifiques aux différents modules sont placées dans des sous-dossiers portant le nom du module.

Vous pouvez insérer un bouton d'aide dans une page au moyen de la fonction helpbutton.

Par exemple, helpbutton("text", "Cliquer ici pour obtenir de l'aide sur le texte");

et pour les modules :

helpbutton("forumtypes", "Types de forums", "forum");

Vous pouvez modifier en ligne les fichier de langue, en utilisant les outils web d'administration « Configuration -> Langue ». Cela vous permet non seulement de créer de nouvelles langues, mais aussi de perfectionner les traductions existantes. Si vous vous attaquez à une nouvelle langue, merci de me contacter, Martin Dougiamas.

Vous pouvez aussi participer au forum Languages du cours « Using Moodle ».

Si vous entretenez les fichiers d'une langue de manière régulière, je peux vous donner un accès CVS en écriture au code source de Moodle, afin que vous puissiez ainsi directement modifier les fichiers.

Schémas de bases de données

Avec une de base de données et des tables définies, le langage SQL intentionnellement simple utilisé par Moodle devrait fonctionner correctement avec un grand nombre de marques de bases de données.

Il peut arriver que la création automatique des nouvelles tables d'une base de données pose problème. Cette opération a justement lieu lors de l'installation initiale de Moodle. Parce que les diverses bases de données sont très différentes, il n'existe pas encore de moyen de faire cela indépendamment de la plateforme. Pour permettre cette automatisation dans chaque type de base de données, des schémas de base de données peuvent être créés, qui comportent les commandes SQL nécessaires pour créer les tables nécessaires à Moodle pour une base de données particulière. Ces schémas sont des fichiers dans lib/db ainsi que dans le sous-dossier db de chaque module.

Actuellement, seul MySQL et PostgreSQL sont supportés de cette manière (personne n'a encore écrit les schémas pour d'autres marques).

Moodle 1.2 utilisera une nouvelle méthode de schémas XML indépendants de la base de données, qui rendra tout cela inutile.

 

Formats de cours

Moodle offre actuellement trois formats de cours différents : hebdomadaire, thématique et informel.

Ces formats sont un peu plus dépendants du reste du code (et par conséquent moins modulaires), mais il est malgré tout assez facile d'en ajouter de nouveaux.

Si vous avez des idées de formats différents dont vous auriez l'utilité ou que vous aimeriez voir dans Moodle, prenez contact avec moi et je ferai tout mon possible pour les rendre disponibles dans de futures versions.

 

Documentation et articles

Si vous avez envie d'écrire un tutoriel, un article, un article universitaire ou quoi que ce soit d'autre sur Moodle, ne vous en privez pas !

Publiez-le sur le web et assurez-vous de mettre des liens vers http://moodle.org/.

 

Participer à la traque des bogues

J'aimerais pour terminer vous inviter à vous inscrire sur le « bug tracker » à l'adresse http://moodle.org/bugs, afin que vous puissiez annoncer tous les bogues que vous découvrirez et peut-être participer à la discussion et à la correction des bogues.

Les « bogues » ne sont pas seulement les erreurs du code source des versions actuelles de Moodle. Ce sont aussi les nouvelles idées, les demandes de nouvelles fonctionnalités et mêmes la critique constructive des fonctionnalités existantes. La beauté du logiciel libre est de permettre à chacun de participer d'une façon ou d'une autrre et d'aider à créer une meilleur produit pour le bien de tous. Dans ce projet, votre contribution est la bienvenue !

 

Nous vous remercions d'utiliser Moodle !

Martin Dougiamas, développeur principal

 

 

Documentation Moodle

Version: $Id$