mirror of
https://github.com/moodle/moodle.git
synced 2025-01-27 02:28:23 +01:00
329 lines
20 KiB
HTML
329 lines
20 KiB
HTML
<head>
|
||
|
||
<title>Documentation Moodle : Manuel du développeur</title>
|
||
|
||
<link rel="stylesheet" href="docstyles.css" type="text/css">
|
||
|
||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||
</head>
|
||
|
||
<body bgcolor="#FFFFFF">
|
||
<h1>Manuel du développeur</h1>
|
||
<blockquote>
|
||
<p>Ce document décrit en quelques mots le design à la base de Moodle et
|
||
comment vous pouvez contribuer à son développement.</p>
|
||
<p>Il est un peu mince pour l'instant. Une meilleure documentation est prévue !</p>
|
||
<p>Sections de ce document :</p>
|
||
<ol>
|
||
<li><a href="#architecture">Architecture de Moodle</a></li>
|
||
<li><a href="#contribute">Comment vous pouvez aider</a>
|
||
<ul>
|
||
<li><a href="#activities">Activités d'apprentissage</a></li>
|
||
<li><a href="#themes">Thèmes</a></li>
|
||
<li><a href="#languages">Langues</a></li>
|
||
<li><a href="#database">Schémas de bases de données</a></li>
|
||
<li><a href="#courseformats">Formats de cours</a></li>
|
||
<li><a href="#doc">Documentation et articles</a></li>
|
||
<li><a href="#bugs">Participer à la traque des bogues</a></li>
|
||
</ul>
|
||
</li>
|
||
</ol>
|
||
</blockquote>
|
||
<p> </p>
|
||
<h2><a name="architecture"></a>1. Architecture de Moodle</h2>
|
||
<blockquote>
|
||
<p>Du point de vue d'un administrateur de système, Moodle a été conçu selon les
|
||
critères suivants :</p>
|
||
<ol>
|
||
<li><strong>Moodle devrait fonctionner sur le plus possible de
|
||
plateformes différentes</strong><br /><br />
|
||
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
|
||
<a href="http://php.weblogs.com/ADOdb_manual#drivers">plus de 10 marques
|
||
de bases de données différentes</a> (toutefois, il ne peut
|
||
malheureusement pas encore <em><strong>mettre en place les tables</strong></em>
|
||
de toutes ces bases de données. Voir ci-dessous pour plus d'informations).<br /><br />
|
||
</li>
|
||
<li><strong>Moodle devrait être facile à installer, à apprendre et
|
||
à modifier</strong><br /><br />
|
||
Les premiers prototypees de Moodle (1999) étaient basés sur
|
||
<a target="_top" href="http://www.zope.org/">Zope</a>, 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.<br /><br />
|
||
</li>
|
||
<li><strong>Il devrait être facile à mettre à jour d'une version à
|
||
la suivante</strong><br /><br />
|
||
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.<br /><br />
|
||
</li>
|
||
<li><strong>Il devrait être modulaire pour pouvoir grandir facilement</strong><br /><br />
|
||
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.<br /><br />
|
||
</li>
|
||
<li><strong>Il devrait pouvoir être utilisé en association avec
|
||
d'autres systèmes</strong><br /><br />
|
||
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).
|
||
</li>
|
||
</ol>
|
||
</blockquote>
|
||
<p> </p>
|
||
<h2><a name="contribute" id="contribute"></a>2. Comment vous pouvez aider</h2>
|
||
<blockquote>
|
||
<p>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.</p>
|
||
<h3><a name="activities" id="activities"></a>Activités d'apprentissage</h3>
|
||
<blockquote>
|
||
<p>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) :</p>
|
||
<ul>
|
||
<li>mod.html : un formulaire pour configurer ou mettre à jour un instance
|
||
du module</li>
|
||
<li>version.php : définit quelques meta-informations et met à disposition
|
||
le mécanisme de mise à jour</li>
|
||
<li>icon.gif : une icône 16x16 pour le module</li>
|
||
<li>db/ : des « dumps » SQL de toutes les tables de base de données et
|
||
des données elles-mêmes (pour chaque type de base de données)</li>
|
||
<li>index.php : une page permettant d'afficher la liste de toutes les
|
||
instances du module dans un cours</li>
|
||
<li>view.php : une page permettant d'afficher une instance particulière</li>
|
||
<li>lib.php : toutes les fonctions définies par le module doivent s'y
|
||
trouver. Si le nom du module est « bidule », les fonctions nécessaires
|
||
sont notamment :
|
||
<ul>
|
||
<li>bidule_add_instance() - code pour ajouter une nouvelle instance de bidule</li>
|
||
<li>bidule_update_instance() - code pour mettre à jour une instance existante</li>
|
||
<li>bidule_delete_instance() - code effacer une instance</li>
|
||
<li>bidule_user_outline() - étant donnée une instance, retourne un résumé
|
||
d'une contribution d'un utilisateur</li>
|
||
<li>bidule_user_complete() - étant donnée une instance, affiche les details
|
||
d'une contribution d'un utilisateur<br />
|
||
</li>
|
||
<li>Pour éviter tout conflit éventuel, le nom de toutes les fonctions du module
|
||
doit commencer par « bidule_ » et celui de toutes les constantes par
|
||
« BIDULE_ »</li>
|
||
</ul>
|
||
</li>
|
||
<li>Finalement, chaque module comportera des fichiers de langue, qui contiennent
|
||
les chaînes de caractères du module. Voir ci-dessous pour des détails.</li>
|
||
</ul>
|
||
<p>Pour programmer un nouveau module d'activité, le plus simple est d'utiliser le
|
||
modèle <strong><a href="http://moodle.org/mod/newmodule_template.zip">mod/newmodule_template.zip</a></strong>.
|
||
Décompressez-le est suivez les instructions du fichier README inclus.</p>
|
||
<p>Il est également judicieux de poster auparavant un message sur le forum
|
||
<a href="http://moodle.org/mod/forum/view.php?id=44" target="_top">Activities
|
||
modules</a> dans le cours « Using Moodle ».</p>
|
||
<p> </p>
|
||
</blockquote>
|
||
<h3><a name="themes" id="themes"></a>Thèmes</h3>
|
||
<blockquote>
|
||
<p>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.</p>
|
||
<p>Chaque thème est placé dans un sous-dossier « theme »
|
||
qui contient au moins les fichiers suivants :</p>
|
||
<ul>
|
||
<li><strong>config.php</strong> : définit les couleurs du thèmes qui
|
||
seront utilisées dans le site.</li>
|
||
<li><strong>styles.php</strong> : la feuille de style contentant les
|
||
définitions des éléments standard HTML et que de nombreux
|
||
éléments de Moodle.</li>
|
||
<li><strong>header.html</strong> : fichier incorporé au début
|
||
de chaque page. Pour ajouter un logo au sommet de chaque page, c'est ce fichier qui devra
|
||
être modifié.</li>
|
||
<li><strong>footer.html</strong> : fichier incorporé à la fin
|
||
de chaque page.</li>
|
||
</ul>
|
||
<p>Pour créer votre propre thème avec la version actuelle de Moodle :</p>
|
||
<ol>
|
||
<li>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.</li>
|
||
<li>Ouvrir config.php et y insérer vos couleurs préférées.</li>
|
||
<li>Ouvrir styles.php et changer les styles CSS.</li>
|
||
<li>Ouvrir header.html et footer.html pour y ajouter les nouveaux logos
|
||
ou pour modifier la mise en page.</li>
|
||
</ol>
|
||
<p>Toutes ces étapes sont optionnelles. Vous pouvez obtenir un aspect
|
||
complètement différent en modifiant uniquement les couleurs dans config.php.</p>
|
||
<p>Il est à noter que les mises à jour de Moodle <em>pourraient</em> empêcher
|
||
le fonctionnement correct d'un thème personnalisé. Vérifier les notes
|
||
de mise à jour si vous utilisez un tel thème.</p>
|
||
<p>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).</p>
|
||
<p>Pour en savoir plus, participez à la discussion sur le forum
|
||
<a target="_top" href="http://moodle.org/mod/forum/view.php?id=46">Themes</a> 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.<br />
|
||
</p>
|
||
</blockquote>
|
||
<h3><a name="languages" id="languages"></a>Langues</h3>
|
||
<blockquote>
|
||
<p>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 :</p>
|
||
<p><strong>lang/fr</strong> - dossier contenant tous les fichiers pour une langue
|
||
(par exemple le français)</p>
|
||
<ul>
|
||
<li>moodle.php - chaînes de l'interface principale</li>
|
||
<li>assignment.php - chaînes du module devoir</li>
|
||
<li>choice.php - chaînes du module sondage</li>
|
||
<li>forum.php - chaînes du module forum</li>
|
||
<li>journal.php - chaînes du module journal</li>
|
||
<li>quiz.php - chaînes du module test</li>
|
||
<li>resource.php - chaînes du module ressource</li>
|
||
<li>survey.php - chaînes du module questionnaire</li>
|
||
<li>... ainsi que d'autres modules le cas échéant.<br /><br />
|
||
Chaque chaîne est tirée de ces fichiers à l'aide des fonctions
|
||
<strong><em>get_string()</em></strong> or <em><strong>print_string()</strong></em>.
|
||
Toutes les chaînes permettent la substitution des variables, afin de
|
||
permettre un ordre différent des variables dans les différentes langues.<br />
|
||
Par exemple, $strdueby = get_string("assignmentdueby", "assignment",
|
||
userdate($date)); <br /><br />
|
||
Si une chaîne n'est pas définie dans une langue, la chaîne équivalente
|
||
en anglais est automatiquement utilisée à la place.</li>
|
||
</ul>
|
||
<p><strong>lang/fr/help</strong> - contient toutes les pages d'aide
|
||
(pour l'aide contextuelle, fenêtres « popup »)</p>
|
||
<blockquote>
|
||
<p>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.</p>
|
||
<p>Vous pouvez insérer un bouton d'aide dans une page au moyen de la fonction
|
||
helpbutton.</p>
|
||
<p>Par exemple, helpbutton("text", "Cliquer ici pour obtenir
|
||
de l'aide sur le texte");</p>
|
||
<p>et pour les modules :</p>
|
||
<p>helpbutton("forumtypes", "Types de forums", "forum");</p>
|
||
</blockquote>
|
||
<p>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,
|
||
<a target="_top" href="http://dougiamas.com/">Martin Dougiamas</a>.</p>
|
||
<p>Vous pouvez aussi participer au forum
|
||
<a target="_top" href="http://moodle.org/mod/forum/view.php?id=43">Languages</a>
|
||
du cours « Using Moodle ».</p>
|
||
<p>Si vous entretenez les fichiers d'une langue de manière régulière, je peux
|
||
vous donner un <a href="?file=cvs.html">accès CVS en écriture au code
|
||
source de Moodle</a>, afin que vous puissiez ainsi directement modifier les
|
||
fichiers.</p>
|
||
</blockquote>
|
||
<h3><a name="database" id="database"></a>Schémas de bases de données</h3>
|
||
<blockquote>
|
||
<p>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.</p>
|
||
<p>Il peut arriver que la <strong>création automatique</strong> 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
|
||
<strong>lib/db</strong> ainsi que dans le sous-dossier <strong>db</strong> de
|
||
chaque module.</p>
|
||
<p>Actuellement, seul MySQL et PostgreSQL sont supportés de cette manière
|
||
(personne n'a encore écrit les schémas pour d'autres marques).</p>
|
||
<p>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.</p>
|
||
</blockquote>
|
||
<p> </p>
|
||
<h3><a name="courseformats" id="courseformats"></a>Formats de cours</h3>
|
||
<blockquote>
|
||
<p>Moodle offre actuellement trois formats de cours différents : hebdomadaire,
|
||
thématique et informel. </p>
|
||
<p>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.</p>
|
||
<p>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.</p>
|
||
</blockquote>
|
||
<p> </p>
|
||
<h3><a name="doc" id="doc"></a>Documentation et articles</h3>
|
||
<blockquote>
|
||
<p>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 !</p>
|
||
<p>Publiez-le sur le web et assurez-vous de mettre des liens
|
||
vers <a target="_top" href="http://moodle.org/">http://moodle.org/</a>.</p>
|
||
</blockquote>
|
||
<p> </p>
|
||
<h3><a name="bugs" id="bugs"></a>Participer à la traque des bogues</h3>
|
||
<blockquote>
|
||
<p>J'aimerais pour terminer vous inviter à vous inscrire sur le « bug tracker »
|
||
à l'adresse <a target="_top" href="http://moodle.org/bugs/">http://moodle.org/bugs</a>,
|
||
afin que vous puissiez annoncer tous les bogues que vous découvrirez et
|
||
peut-être participer à la discussion et à la correction des bogues.</p>
|
||
<p>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 !</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
<p> </p>
|
||
<blockquote>
|
||
<blockquote>
|
||
<blockquote>
|
||
<p align="center">Nous vous remercions d'utiliser Moodle !<br />
|
||
<br />
|
||
<a target="_top" href="http://dougiamas.com/">Martin Dougiamas</a>, développeur
|
||
principal</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
</blockquote>
|
||
<p> </p>
|
||
<blockquote>
|
||
<p> </p>
|
||
</blockquote>
|
||
<p align="CENTER"><font size="1"><a href="." target="_top">Documentation Moodle</a></font></p>
|
||
<p align="CENTER"><font size="1">Version: $Id$</font></p>
|
||
</body>
|
||
</html>
|