From f273fa076ff6c9de695479ffff2cd97c9e606273 Mon Sep 17 00:00:00 2001 From: martignoni Date: Sun, 14 Dec 2003 19:27:09 +0000 Subject: [PATCH] Translation completed --- lang/fr/docs/coding.html | 227 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100755 lang/fr/docs/coding.html diff --git a/lang/fr/docs/coding.html b/lang/fr/docs/coding.html new file mode 100755 index 0000000000..47eeed3c63 --- /dev/null +++ b/lang/fr/docs/coding.html @@ -0,0 +1,227 @@ + + +Documentation Moodle : Directives pour la programmation + + + + +

Directives pour la programmation

+

Tout projet où l'on travaille en collaboration +nécessite une cohérence et une stabilité fortes.

+

L'objectif de ces directives est de +fournir un cadre à respecter pour tout le code de Moodle. Il +est vrai que certaines parties plus anciennes du code ne +les respectent pas toujours ; le code sera corrigé. Tout le +nouveau code doit absolument respecter ces directives +aussi précisément que possible.

+

Règles générales

+
    +
  1. Tous les fichiers contenant du code doivent + avoir l'extension .php.
  2. +
  3. Tous les fichiers modèles doivent avoir + l'extension .html.
  4. +
  5. Tous les fichiers textes doivent être ne + format texte Unix (la plupart des éditeurs de texte + permettent cela).
  6. +
  7. Toutes les balises php doivent être + en forme complète, par exemple <?php + ... ?> et non en forme abrégée comme + <? ... ?>.
  8. +
  9. Toutes les indications de copyright doivent + être conservée. Vous pouvez ajouter les vôtres au besoin.
  10. +
  11. Tous les fichiers doivent inclure le + fichier config.php principal.
  12. +
  13. Tous les fichiers doivent vérifier que + l'utilisateur est correctement authentifié, à l'aide de require_login() + et d'une des fonctions isadmin(), isteacher(), iscreator() ou isstudent().
  14. +
  15. Tous les accès aux bases de données doivent + autant que possible utiliser les fonctions définies dans + lib/datalib.php. Ceci permet la compatibilité avec un grand + nombre de marques de bases de données. Il est possible de + faire presque tout avec ces fonctions. Si vous devez écrire du code SQL, + assurez-vous qu'il soit : multi-plateforme, restreint à des fonctions + spécifiques de votre code (habituellement placés dans un fichier lib.php) + et clairement marqué.
  16. +
  17. Ne créez et n'utilisez aucune variable locale, + sauf les variables standard $CFG, $SESSION, $THEME et $USER.
  18. +
  19. Toutes les variables doivent être initialisées + ou au moins leur existence doit être testée avec isset() ou + empty() avant leur utilisation.
  20. +
  21. Toutes les chaînes de caractères doivent + être traductibles. Placez-les dans des fichiers de « lang/en » et + appelez-les avec les fonctions get_string() ou print_string().
  22. +
  23. Tous les fichiers d'aide doivent être + traductibles. Créez-les dans le dossier « lang/en/help » et + appelez-les avec la fonction helpbutton().
  24. +
+

 

+

Style du code

+

Je suis conscient qu'il est ennuyeux de changer +votre style si vous avez d'autres habitudes, mais comparez cet embêtement +avec les gros ennuis qu'ont ultérieurement les personnes qui +essaient de comprendre un code composé avec des styles différents. Bien +sûr il y a des avantages et des inconvénients à n'importe quel style, +mais le style de Moodle existe, alors tenez-vous y, +s'il vous plaît.

+
    +
  1. L'indentation doit être + de 4 espaces. N'utiliser pas DU TOUT de tabulations.
  2. +
  3. Les noms des variables doivent toujours + être des mots anglais faciles à lire, ayant une signification claire et + en minuscules. Si vous avez vraiment besoin de plusieurs mots, + concaténez-les, mais gardez-les aussi courts que possible. + Utilisez des noms au pluriel pour les tableaux d'objets. +

    BON : $quiz
    + BON : $errorstring
    + BON : $assignments (pour un tableau d'objets)
    + BON : $i (mais seulement dans de petites boucles)
    +
    + MAUVAIS : $Quiz
    + MAUVAIS : $aReallyLongVariableNameWithoutAGoodReason
    + MAUVAIS : $error_string

    +
  4. +
  5. Les noms des constantes doivent toujours + être en majuscules, et toujours commencer par le nom du module. Les + mots qui les constituent doivent être séparés par des + caractères « souligné » (underscore). +

    define("FORUM_MODE_FLATOLDEST", + 1);

    +
  6. +
  7. Les noms des fonctions doivent être de + simples mots anglais, et commencent avec le nom du module pour + éviter les conflits entre modules. Les mots qui les constituent + doivent être séparés par des caractères « souligné » (underscore). + Les paramètres doivent avoir si possible une valeur par défaut + sensée. On ne place pas d'espace entre le nom de la fonction et + la suite (parenthèses) +

    function forum_set_display_mode($mode=0) + {
    +     global
    $USER, + $CFG;
    +
    +     if (
    $mode) + {
    +         
    $USER->mode + = $mode;
    +     } else if (empty(
    $USER->mode)) + {
    +         
    $USER->mode + = $CFG->forum_displaymode;
    +     }
    + }

    +
  8. +
  9. Les blocs doivent toujours être + placés entre accolades (même s'ils ne sont constitués que d'une ligne). + Moodle utilise le style suivant : +

    if ($quiz->attempts) + {
    +     if (
    $numattempts > + $quiz->attempts) + {
    +         
    error($strtoomanyattempts, + "view.php?id=$cm->id");
    +     }
    + }

    +
  10. +
  11. Les chaînes de caractères + doivent être définies avec des apostrophes droites (pas des + guillemets) lorsque c'est possible, afin d'améliorer les performances. +

    $var = 'some text without any + variables';
    + $var = "with special characters like a new line \n";
    + $var = 'a very, very long string with a '.$single.' variable in it';
    + $var = "some $text with $many variables $within it";

    +
  12. +
  13. Les commentaires doivent utiliser + deux ou trois barres obliques et être alignés avec le code. +

    function forum_get_ratings_mean($postid, + $scale, $ratings=NULL) + {
    +
    /// Return the mean rating of a post given + to the current user by others.
    + /// Scale is an array of possible ratings in the scale
    + /// Ratings is an optional simple array of actual ratings (just integers)
    +
    +     
    if (!$ratings) + {
    +         
    $ratings + = array();     // + Initialize the empty array
    +         if (
    $rates + = get_records("forum_ratings", + "post", $postid)) + {
    +             
    // + Process each rating in turn
    +             foreach + (
    $rates as $rate) + {
    + ... etc.

    +
  14. +
  15. Les espaces doivent être + utilisés généreusement. N'ayez pas peur d'espacer les lignes pour + accroître la lisibilité. En général, il doit y avoir un espace + entre les parenthèses et les instructions normales, mais aucun + espace entre les parenthèses et les variables ou fonctions : +

    foreach ($objects + as $key => + $thing) {
    +
        process($thing); +
    + }
    +
    +
    if ($x == + $y) + {
    +
        $a + = $b;
    + } else if (
    $x == + $z) {
    +
        $a + = $c;
    + } else {
    +
        $a + = $d;
    + }

    +
  16. +
+

 

+

Structure des bases de données

+
    +
  1. Toutes les tables doit avoir un champ id + (INT10) à incrémentation automatique pour index principal.
  2. +
  3. La table principale contenant les instances + de chaque module doit avoir le même nom que le module (par exemple + bidule) et doit contenir au moins les champs + suivants : +
      +
    • id - voir description ci-dessus
    • +
    • course - l'identifiant du cours auquel appartient + chaque instance
    • +
    • name - le nom complet de chaque instance du module
    • +
    +
  4. +
  5. Les autres tables associées à un module et contenant + des informations sur des « choses » doivent être appelées + bidule_choses (remarquez le pluriel).
  6. +
  7. Les noms de colonnes doivent être simples et brefs, + suivant les mêmes règles que les noms des variables.
  8. +
  9. Si possible, les colonnes faisant référence + au champ id d'une autre table (par exemple bidule) + doivent être appelées widgetid. (Remarquez que cette + convention est nouvelle, et n'a pas été suivie dans + certaines tables plus anciennes.)
  10. +
  11. Les champs booléens doivent être + implémentés comme des entiers petits (par exemple INT4) + contenant 0 ou 1, afin de permettre une éventuelle extension + des valeurs si nécessaire.
  12. +
  13. La plupart des tables doivent avoir une champ + timemodified (INT10) qui soit mis à jour + avec la date et l'heure obtenue avec la fonction PHP + time().
  14. +
+
+

Documentation Moodle

+

Version: $Id$

+ + -- 2.39.5