moodle/lang/fr/docs/developer.html
2004-08-14 19:56:16 +00:00

319 lines
19 KiB
HTML

<head>
<title>Documentation Moodle&nbsp;: 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 succinct 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 la base 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 doit fonctionner sur le plus grand nombre possible de plateformes diff&eacute;rentes</strong><br /><br />
Le langage de programmation pour le web qui tourne sur la 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 doit &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>Moodle doit &ecirc;tre facile &agrave; mettre &agrave; jour d'une version &agrave; la suivante</strong><br /><br />
Moodle conna&icirc;t son propre num&eacute;ro de version (ainsi que 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>Moodle doit &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>Moodle doit 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 AFP, 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. Il reste toutefois pas mal de travail &agrave; effectuer. 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 mentionn&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, consultation 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 une instance de ce module</li>
<li>version.php&nbsp;: d&eacute;finit quelques m&eacute;ta-informations et met &agrave; disposition du code pour les mises &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 la 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()&nbsp;: code pour ajouter une nouvelle instance de bidule</li>
<li>bidule_update_instance()&nbsp;: code pour mettre &agrave; jour une instance existante</li>
<li>bidule_delete_instance()&nbsp;: code pour effacer une instance</li>
<li>bidule_user_outline()&nbsp;: &eacute;tant donn&eacute;e une instance, retourne un r&eacute;sum&eacute; d'une contribution d'un utilisateur</li>
<li>bidule_user_complete()&nbsp;: &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;me qui seront utilis&eacute;es dans le site.</li>
<li><strong>styles.php</strong>&nbsp;: la feuille de style contenant les d&eacute;finitions des &eacute;l&eacute;ments standard HTML et de nombreux &eacute;l&eacute;ments de Moodle.</li>
<li><strong>header.html</strong>&nbsp;: le 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;: le 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>Copiez le dossier d'un des th&egrave;mes existant et donner un nouveau nom &agrave; la copie. Il est recommand&eacute; de commencer avec l'un des th&egrave;mes standard.</li>
<li>Ouvrez config.php et ins&eacute;rez-y vos couleurs pr&eacute;f&eacute;r&eacute;es.</li>
<li>Ouvrez styles.php et changez les styles CSS.</li>
<li>Ouvrez 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;rifiez 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;res et chaque 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>&nbsp;: dossier contenant tous les fichiers pour une langue (dans ce cas le fran&ccedil;ais)</p>
<ul>
<li>moodle.php&nbsp;: cha&icirc;nes de l'interface principale</li>
<li>assignment.php&nbsp;: cha&icirc;nes du module devoir</li>
<li>choice.php&nbsp;: cha&icirc;nes du module sondage</li>
<li>forum.php&nbsp;: cha&icirc;nes du module forum</li>
<li>journal.php&nbsp;: cha&icirc;nes du module journal</li>
<li>quiz.php&nbsp;: cha&icirc;nes du module test</li>
<li>resource.php&nbsp;: cha&icirc;nes du module ressource</li>
<li>survey.php&nbsp;: cha&icirc;nes du module consultation</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> ou <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 /><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>&nbsp;: contient toutes les pages d'aide (pour l'aide contextuelle, fen&ecirc;tres &laquo;&nbsp;popup&nbsp;&raquo;)</p>
<blockquote>
<p>Les pages d'aide principales y sont stock&eacute;es, alors que les pages d'aide sp&eacute;cifiques aux diff&eacute;rents modules sont plac&eacute;es dans des sous-dossiers portant le nom du module.</p>
<p>Vous pouvez ins&eacute;rer un bouton d'aide dans une page au moyen de la fonction <strong><em>helpbutton()</em></strong>.</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&nbsp;:</p>
<p>helpbutton(&quot;forumtypes&quot;, &quot;Types de forums&quot;, &quot;forum&quot;);</p>
</blockquote>
<p>Vous pouvez modifier en ligne les fichiers 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 la base de donn&eacute;es</h3>
<blockquote>
<p>Une fois d&eacute;finies la base de donn&eacute;es et ses tables, 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 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 pour une base de donn&eacute;es particuli&egrave;re les tables qu'utilise Moodle. 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, une publication 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;me 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 autre 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 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>