moodle/lang/fr/docs/developer.html

329 lines
20 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<head>
<title>Documentation Moodle : Manuel du d&eacute;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&eacute;veloppeur</h1>
<blockquote>
<p>Ce document d&eacute;crit en quelques mots le design &agrave; la base de Moodle et
comment vous pouvez contribuer &agrave; son d&eacute;veloppement.</p>
<p>Il est un peu mince pour l'instant. Une meilleure documentation est pr&eacute;vue&nbsp;!</p>
<p>Sections de ce document&nbsp;:</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&eacute;s d'apprentissage</a></li>
<li><a href="#themes">Th&egrave;mes</a></li>
<li><a href="#languages">Langues</a></li>
<li><a href="#database">Sch&eacute;mas de bases de donn&eacute;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 &agrave; la traque des bogues</a></li>
</ul>
</li>
</ol>
</blockquote>
<p>&nbsp;</p>
<h2><a name="architecture"></a>1. Architecture de Moodle</h2>
<blockquote>
<p>Du point de vue d'un administrateur de syst&egrave;me, Moodle a &eacute;t&eacute; con&ccedil;u selon les
crit&egrave;res suivants&nbsp;:</p>
<ol>
<li><strong>Moodle devrait fonctionner sur le plus possible de
plateformes diff&eacute;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
&eacute;t&eacute; d&eacute;velopp&eacute; (sur Linux, Windows et Mac OS X).
Moodle utilise aussi la librairie ADOdb pour l'abstraction de la base de
donn&eacute;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&eacute;es diff&eacute;rentes</a> (toutefois, il ne peut
malheureusement pas encore <em><strong>mettre en place les tables</strong></em>
de toutes ces bases de donn&eacute;es. Voir ci-dessous pour plus d'informations).<br /><br />
</li>
<li><strong>Moodle devrait &ecirc;tre facile &agrave; installer, &agrave; apprendre et
&agrave; modifier</strong><br /><br />
Les premiers prototypees de Moodle (1999) &eacute;taient bas&eacute;s sur
<a target="_top" href="http://www.zope.org/">Zope</a>, un serveur d'application
web orient&eacute; objet de technologie avanc&eacute;e. Malheureusement, bien que cette
technologie soit plut&ocirc;t cool, elle avait une courbe d'apprentissage
tr&egrave;s raide et n'&eacute;tait pas tr&egrave;s souple en termes d'administration de
syst&egrave;mes. D'un autre c&ocirc;t&eacute;, le langage de scripts PHP est tr&egrave;s facile
d'acc&egrave;s, notamment si vous avez d&eacute;j&agrave; programm&eacute; avec un autre
langage de scripts. J'ai pris assez t&ocirc;t la d&eacute;cision de ne pas utiliser
un concept orient&eacute; objet, l&agrave; encore, pour conserver la simplicit&eacute;
par &eacute;gard pour les novices. En lieu et place, la r&eacute;utilisation du
code est accomplie gr&acirc;ce &agrave; des librairies de fonctions clairement
d&eacute;nomm&eacute;es et par une mise en page coh&eacute;rente des fichiers de scripts.
En outre, PHP est facile &agrave; installer (des ex&eacute;cutables sont disponibles
pour toutes les plateformes) et si largement r&eacute;pandu que la plupart
des services d'h&eacute;bergement web l'offrent en standard.<br /><br />
</li>
<li><strong>Il devrait &ecirc;tre facile &agrave; mettre &agrave; jour d'une version &agrave;
la suivante</strong><br /><br />
Moodle conna&icirc;t son num&eacute;ro de version (tout comme ceux de chacun
des modules) et un m&eacute;canisme y a &eacute;t&eacute; impl&eacute;ment&eacute;
de sorte qu'il puisse se mettre &agrave; jour tout seul (il peut par exemple
renommer les tables de la base de donn&eacute;es ou y ajouter
de nouveaux champs). Si vous utilisez CVS sur Unix, vous pouvez
par exemple taper la commande &laquo;&nbsp;cvs update -d&nbsp;&raquo;, puis visiter la page
d'accueil de votre site pour terminer la mise &agrave; jour.<br /><br />
</li>
<li><strong>Il devrait &ecirc;tre modulaire pour pouvoir grandir facilement</strong><br /><br />
Un grand nombre de fonctionnalit&eacute;s de Moodle sont modulaires, notamment
les th&egrave;mes, les activit&eacute;s, les langues de l'interface, les
sch&eacute;mas de la base de donn&eacute;es et les formats de cours. Cela permet
&agrave; quiconque d'ajouter des fonctionnalit&eacute;s au code principal ou encore
de distribuer des modules s&eacute;par&eacute;ment. Voir ci-dessous pour plus
d'informations &agrave; ce sujet.<br /><br />
</li>
<li><strong>Il devrait pouvoir &ecirc;tre utilis&eacute; en association avec
d'autres syst&egrave;mes</strong><br /><br />
Moodle conserve tous les fichiers d'un cours dans le m&ecirc;me dossier sur le
serveur. Cela permet &agrave; un administrateur syst&egrave;me d'offrir pour
chaque enseignant n'importe quel type d'acc&egrave;s direct aux fichiers,
comme Appletalk, SMB, NFS, FTP, WebDAV, etc. Les modules d'authentification
permettent &agrave; Moodle d'utiliser LDAP, MAP, POP3, NNTP et d'autres
bases de donn&eacute;es comme source des donn&eacute;es des utilisateurs. Autrement,
il reste pas mal de travail &agrave; faire. Les fonctionnalit&eacute;s pr&eacute;vues
de Moodle pour les versions &agrave; venir comprennent notamment&nbsp;:
l'importation et l'exportation des donn&eacute;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>&nbsp;</p>
<h2><a name="contribute" id="contribute"></a>2. Comment vous pouvez aider</h2>
<blockquote>
<p>Comme indiqu&eacute; ci-dessus, bon nombre de fonctionnalit&eacute;s de Moodle sont modulaires.
M&ecirc;me si vous n'&ecirc;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&eacute;s d'apprentissage</h3>
<blockquote>
<p>Ce sont les modules les plus importants. Ils sont plac&eacute;s dans le dossier
&laquo;&nbsp;mod&nbsp;&raquo;. Il y a sept modules par d&eacute;faut&nbsp;: devoir, sondage, test, forum,
journal, questionnaire et ressource. Chaque module est plac&eacute; dans
un sous-dossier propre et consiste en divers &eacute;l&eacute;ments obligatoires
(ainsi que d'autres scripts propres &agrave; chaque module)&nbsp;:</p>
<ul>
<li>mod.html&nbsp;: un formulaire pour configurer ou mettre &agrave; jour un instance
du module</li>
<li>version.php&nbsp;: d&eacute;finit quelques meta-informations et met &agrave; disposition
le m&eacute;canisme de mise &agrave; jour</li>
<li>icon.gif&nbsp;: une ic&ocirc;ne 16x16 pour le module</li>
<li>db/&nbsp;: des &laquo; dumps&nbsp;&raquo; SQL de toutes les tables de base de donn&eacute;es et
des donn&eacute;es elles-m&ecirc;mes (pour chaque type de base de donn&eacute;es)</li>
<li>index.php&nbsp;: une page permettant d'afficher la liste de toutes les
instances du module dans un cours</li>
<li>view.php&nbsp;: une page permettant d'afficher une instance particuli&egrave;re</li>
<li>lib.php&nbsp;: toutes les fonctions d&eacute;finies par le module doivent s'y
trouver. Si le nom du module est &laquo;&nbsp;bidule&nbsp;&raquo;, les fonctions n&eacute;cessaires
sont&nbsp;notamment :
<ul>
<li>bidule_add_instance() - code pour ajouter une nouvelle instance de bidule</li>
<li>bidule_update_instance() - code pour mettre &agrave; jour une instance existante</li>
<li>bidule_delete_instance() - code effacer une instance</li>
<li>bidule_user_outline() - &eacute;tant donn&eacute;e une instance, retourne un r&eacute;sum&eacute;
d'une contribution d'un utilisateur</li>
<li>bidule_user_complete() - &eacute;tant donn&eacute;e une instance, affiche les details
d'une contribution d'un utilisateur<br />
</li>
<li>Pour &eacute;viter tout conflit &eacute;ventuel, le nom de toutes les fonctions du module
doit commencer par &laquo;&nbsp;bidule_&nbsp;&raquo; et celui de toutes les constantes par
&laquo;&nbsp;BIDULE_&nbsp;&raquo;</li>
</ul>
</li>
<li>Finalement, chaque module comportera des fichiers de langue, qui contiennent
les cha&icirc;nes de caract&egrave;res du module. Voir ci-dessous pour des d&eacute;tails.</li>
</ul>
<p>Pour programmer un nouveau module d'activit&eacute;, le plus simple est d'utiliser le
mod&egrave;le <strong><a href="http://moodle.org/mod/newmodule_template.zip">mod/newmodule_template.zip</a></strong>.
D&eacute;compressez-le est suivez les instructions du fichier README inclus.</p>
<p>Il est &eacute;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 &laquo;&nbsp;Using Moodle&nbsp;&raquo;.</p>
<p>&nbsp;</p>
</blockquote>
<h3><a name="themes" id="themes"></a>Th&egrave;mes</h3>
<blockquote>
<p>Les th&egrave;mes (ou &laquo; skins&nbsp;&raquo;) d&eacute;finissent l'aspect d'un
site. Quelques th&egrave;mes simples sont fournis dans la distribution de Moodle.
Vous pouvez aussi cr&eacute;er votre propre th&egrave;me avec vos couleurs, logo,
styles et graphiques pr&eacute;f&eacute;r&eacute;s.</p>
<p>Chaque th&egrave;me est plac&eacute; dans un sous-dossier &laquo;&nbsp;theme&nbsp;&raquo;
qui contient au moins les fichiers suivants&nbsp;:</p>
<ul>
<li><strong>config.php</strong>&nbsp;: d&eacute;finit les couleurs du th&egrave;mes qui
seront utilis&eacute;es dans le site.</li>
<li><strong>styles.php</strong>&nbsp;: la feuille de style contentant les
d&eacute;finitions des &eacute;l&eacute;ments standard HTML et que de nombreux
&eacute;l&eacute;ments de Moodle.</li>
<li><strong>header.html</strong>&nbsp;: fichier incorpor&eacute; au d&eacute;but
de chaque page. Pour ajouter un logo au sommet de chaque page, c'est ce fichier qui devra
&ecirc;tre modifi&eacute;.</li>
<li><strong>footer.html</strong>&nbsp;: fichier incorpor&eacute; &agrave; la fin
de chaque page.</li>
</ul>
<p>Pour cr&eacute;er votre propre th&egrave;me avec la version actuelle de Moodle&nbsp;:</p>
<ol>
<li>Copier le dossier d'un des th&egrave;mes existants et donner un nouveau nom
&agrave; la copie. Il est recommand&eacute; de commencer avec l'un des th&egrave;mes standard.</li>
<li>Ouvrir config.php et y ins&eacute;rer vos couleurs pr&eacute;f&eacute;r&eacute;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 &eacute;tapes sont optionnelles. Vous pouvez obtenir un aspect
compl&egrave;tement diff&eacute;rent en modifiant uniquement les couleurs dans config.php.</p>
<p>Il est &agrave; noter que les mises &agrave; jour de Moodle <em>pourraient</em> emp&ecirc;cher
le fonctionnement correct d'un th&egrave;me personnalis&eacute;. V&eacute;rifier les notes
de mise &agrave; jour si vous utilisez un tel th&egrave;me.</p>
<p>En particulier, Moodle 2.0 aura un syst&egrave;me d'affichage compl&egrave;tement
diff&eacute;rent, probablement bas&eacute; sur la transformation XSL du code XML de Moodle. Il
est vraisemblable que les th&egrave;mes auront alors un format totalement diff&eacute;rent,
avec en contrepartie une libert&eacute; bien plus grande pour la personnalisation
(y compris le d&eacute;placement des &eacute;l&eacute;ments sur la page).</p>
<p>Pour en savoir plus, participez &agrave; la discussion sur le forum
<a target="_top" href="http://moodle.org/mod/forum/view.php?id=46">Themes</a> dans
le cours &laquo;&nbsp;Using Moodle&nbsp;&raquo;. si vous cr&eacute;ez un joli th&egrave;me susceptible d'int&eacute;resser
d'autres utilisateurs, merci de poster votre fichier zip sur ce m&ecirc;me forum.<br />
</p>
</blockquote>
<h3><a name="languages" id="languages"></a>Langues</h3>
<blockquote>
<p>Moodle a &eacute;t&eacute; con&ccedil;u pour permettre son internationalisation. Chaque
cha&icirc;ne de caract&egrave;re ou page de texte faisant partie de l'interface
est affich&eacute;e &agrave; partir d'un ensemble de fichiers de langue. Chaque langue
consiste en un sous-dossier du dossier &laquo;&nbsp;lang&nbsp;&raquo;. La structure
du dossier lang est la suivante&nbsp;:</p>
<p><strong>lang/fr</strong> - dossier contenant tous les fichiers pour une langue
(par exemple le fran&ccedil;ais)</p>
<ul>
<li>moodle.php - cha&icirc;nes de l'interface principale</li>
<li>assignment.php - cha&icirc;nes du module devoir</li>
<li>choice.php - cha&icirc;nes du module sondage</li>
<li>forum.php - cha&icirc;nes du module forum</li>
<li>journal.php - cha&icirc;nes du module journal</li>
<li>quiz.php - cha&icirc;nes du module test</li>
<li>resource.php - cha&icirc;nes du module ressource</li>
<li>survey.php - cha&icirc;nes du module questionnaire</li>
<li>... ainsi que d'autres modules le cas &eacute;ch&eacute;ant.<br /><br />
Chaque cha&icirc;ne est tir&eacute;e de ces fichiers &agrave; l'aide des fonctions
<strong><em>get_string()</em></strong> or <em><strong>print_string()</strong></em>.
Toutes les cha&icirc;nes permettent la substitution des variables, afin de
permettre un ordre diff&eacute;rent des variables dans les diff&eacute;rentes langues.<br />
Par exemple, $strdueby = get_string(&quot;assignmentdueby&quot;, &quot;assignment&quot;,
userdate($date)); <br /><br />
Si une cha&icirc;ne n'est pas d&eacute;finie dans une langue, la cha&icirc;ne &eacute;quivalente
en anglais est automatiquement utilis&eacute;e &agrave; 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(&quot;text&quot;, &quot;Cliquer ici pour obtenir
de l'aide sur le texte&quot;);</p>
<p>et pour les modules :</p>
<p>helpbutton(&quot;forumtypes&quot;, &quot;Types de forums&quot;, &quot;forum&quot;);</p>
</blockquote>
<p>Vous pouvez modifier en ligne les fichier de langue, en utilisant les outils
web d'administration &laquo;&nbsp;Configuration -&gt; Langue&nbsp;&raquo;. Cela vous permet non
seulement de cr&eacute;er de nouvelles langues, mais aussi de perfectionner les traductions
existantes. Si vous vous attaquez &agrave; 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 &laquo;&nbsp;Using Moodle&nbsp;&raquo;.</p>
<p>Si vous entretenez les fichiers d'une langue de mani&egrave;re r&eacute;guli&egrave;re, je peux
vous donner un <a href="?file=cvs.html">acc&egrave;s CVS en &eacute;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&eacute;mas de bases de donn&eacute;es</h3>
<blockquote>
<p>Avec une de base de donn&eacute;es et des tables d&eacute;finies, le langage SQL
intentionnellement simple utilis&eacute; par Moodle devrait fonctionner
correctement avec un grand nombre de marques de bases de donn&eacute;es.</p>
<p>Il peut arriver que la <strong>cr&eacute;ation automatique</strong> des
nouvelles tables d'une base de donn&eacute;es pose probl&egrave;me. Cette op&eacute;ration
a justement lieu lors de l'installation initiale de Moodle. Parce que
les diverses bases de donn&eacute;es sont tr&egrave;s diff&eacute;rentes, il n'existe pas
encore de moyen de faire cela ind&eacute;pendamment de la plateforme. Pour
permettre cette automatisation dans chaque type de base de donn&eacute;es,
des sch&eacute;mas de base de donn&eacute;es peuvent &ecirc;tre cr&eacute;&eacute;s, qui comportent les
commandes SQL n&eacute;cessaires pour cr&eacute;er les tables n&eacute;cessaires &agrave; Moodle pour
une base de donn&eacute;es particuli&egrave;re. Ces sch&eacute;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&eacute;s de cette mani&egrave;re
(personne n'a encore &eacute;crit les sch&eacute;mas pour d'autres marques).</p>
<p>Moodle 1.2 utilisera une nouvelle m&eacute;thode de sch&eacute;mas XML ind&eacute;pendants de
la base de donn&eacute;es, qui rendra tout cela inutile.</p>
</blockquote>
<p>&nbsp;</p>
<h3><a name="courseformats" id="courseformats"></a>Formats de cours</h3>
<blockquote>
<p>Moodle offre actuellement trois formats de cours diff&eacute;rents&nbsp;: hebdomadaire,
th&eacute;matique et informel. </p>
<p>Ces formats sont un peu plus d&eacute;pendants du reste du code (et par cons&eacute;quent
moins modulaires), mais il est malgr&eacute; tout assez facile d'en ajouter de nouveaux.</p>
<p>Si vous avez des id&eacute;es de formats diff&eacute;rents dont vous auriez l'utilit&eacute; 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>&nbsp;</p>
<h3><a name="doc" id="doc"></a>Documentation et articles</h3>
<blockquote>
<p>Si vous avez envie d'&eacute;crire un tutoriel, un article, un article universitaire ou
quoi que ce soit d'autre sur Moodle, ne vous en privez pas&nbsp;!</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>&nbsp;</p>
<h3><a name="bugs" id="bugs"></a>Participer &agrave; la traque des bogues</h3>
<blockquote>
<p>J'aimerais pour terminer vous inviter &agrave; vous inscrire sur le &laquo;&nbsp;bug tracker&nbsp;&raquo;
&agrave; 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&eacute;couvrirez et
peut-&ecirc;tre participer &agrave; la discussion et &agrave; la correction des bogues.</p>
<p>Les &laquo;&nbsp;bogues&nbsp;&raquo; ne sont pas seulement les erreurs du code source des
versions actuelles de Moodle. Ce sont aussi les nouvelles id&eacute;es, les
demandes de nouvelles fonctionnalit&eacute;s et m&ecirc;mes la critique constructive
des fonctionnalit&eacute;s existantes. La beaut&eacute; du logiciel libre est de permettre
&agrave; chacun de participer d'une fa&ccedil;on ou d'une autrre et d'aider &agrave; cr&eacute;er
une meilleur produit pour le bien de tous. Dans ce projet, votre contribution
est la bienvenue !</p>
</blockquote>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<blockquote>
<blockquote>
<p align="center">Nous vous remercions d'utiliser Moodle&nbsp;!<br />
<br />
<a target="_top" href="http://dougiamas.com/">Martin Dougiamas</a>, d&eacute;veloppeur
principal</p>
</blockquote>
</blockquote>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p>&nbsp;</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>