From 837130477cc9860bd19576a0736620b90122ae3f Mon Sep 17 00:00:00 2001 From: stronk7 Date: Thu, 8 Jul 2004 15:17:38 +0000 Subject: [PATCH] Syncronished to current en version. --- lang/es/docs/coding.html | 164 +-------------------------------------- 1 file changed, 1 insertion(+), 163 deletions(-) diff --git a/lang/es/docs/coding.html b/lang/es/docs/coding.html index a053e654c8..56275b926c 100644 --- a/lang/es/docs/coding.html +++ b/lang/es/docs/coding.html @@ -1,163 +1 @@ - - - -Documentación de Moodle: Guía de programación - - - - - - - - - - - -

Guía de programación para Moodle

-

Reglas Generales

-
    -
  1. Todos los archivos deben utilizar la extensión .php .
  2. -
  3. Deben mantenerse todas las notas de derechos de autor. Usted puede añadir - la suya si es necesario.
  4. -
  5. Cada archivo debe incluir el config.php principal.
  6. -
  7. Cada archivo debe certificar que el usuario esté correctamente autenticado, - utilizando require_login() e isadmin(), isteacher(), iscreator() o isstudent().
  8. -
  9. Todo acceso a las bases de datos debe utilizar las funciones incluidas en - lib/datalib.php en cuanto sea posible --esto permite que sea compatible con - un amplio rango de bases de datos. Con esas funciones es posible hacer casi - todo. Cualquier otra sentencia SQL debe ser: inter-plataforma, restringida - a funciones específicas dentro de su código (a menudo un archivo lib.php), - y señalada con claridad.
  10. -
  11. Todas las cadenas deben ser traducibles --cree nuevos textos en los archivos - de "lang/en" y llámelos utilizando get_string() o print_string().
  12. -
  13. Todos los archivos de ayuda deben ser traducibles --cree nuevos textos en - los archivos de "lang/en/help" y llámelos utilizando helpbutton().
  14. -
-

 

-

Estilo de programación

-
    -
  1. No utilice tabuladores. Use sangría consistente con 4 espacios.
  2. -
  3. Siempre se deben utilizar llaves para los bloques de código (aunque sean - de una sola línea). Moodle usa este estilo: -

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

    - -
  4. -
  5. Ya se añadirán más cosas... ¡este documento aún - no está terminado!
  6. -
-

 

- -
-

Documentación - de Moodle

- -

Version: $Id: faq.html,v 1.6 2003/03/30 13:54:28 - - moodler Exp $

- - + Moodle Docs: Coding Guidelines

Manual de Estilo del Código

Cualquier proyecto colaborativo necesita que que la consistencia y la estabilidad sean fuertes.

Esta manual de estilo ha sido escrito para conseguir que todo el código de Moodle cumpla estas características. Es cierto que la parte más antigua del código no cumple lo aquí especificado en algunos casos, pero esto será solucionado en breve. Todo el código nuevo definitivamente deberá adherirse a estos estándares de la forma más exacta posible.

Reglas Generales

  1. Todos los archivos con código deberían utilizar la extensión .php.
  2. Todas las plantillas deberían utilizar la extensión .html.
  3. Todos los archivos de texto deberían utilizar el formato de texto Unix (la mayoría de los editores de texto tienen esto como una opción).
  4. Todas las etiquetas php deben ser 'completas' como <?php ?> ... no 'reducidas' como <? ?>.
  5. Todos los avisos de copyright deben ser mantenidos. Puedes incluir los tuyos propios si resulta necesario.
  6. Todos los archivos deben incluir el el archivo principal config.php.
  7. Cada archivo debería comprobar que el usuario está autenticado correctamente, utilizando las funciones require_login() y isadmin(), isteacher(), iscreator() o isstudent().
  8. Todos los accesos a la base de datos deberían utilizar las funciones de finidas en lib/datalib.php cuando sea posible - esto permite la compatibilidad con un gran número de bases de datos. Deberías encontrar que prácticamente todo es posible utilizando estas funciones. Si quieres esribir código SQL entonces deberás comprobar que: funciona en cualquir plataforma; restringido a funciones específicas de tu código (normalmente un archivo lib.php); y claramente comentado.
  9. No crees o utilices variables globales distintas de las estándar $CFG, $SESSION, $THEME y $USER.
  10. Todas las variables deberían ser inicializadas o, al menos, comprobada su existencia utilizando isset() o empty() antes de ser utilizadas.
  11. Todas las cadenas deberían ser traducibles - crea nuevos textos en los archivos "lang/es" files con palabras reducidas en inglés y su traducción completa al Español y recupéralas en tu código utilizando las funciones get_string() or print_string().
  12. Todos los archivos de ayuda deberían ser traducibles - crea nuevos textos en el directorio "es/help" y llámalos utilizando la función helpbutton().
  13. La información que llaga desde el navegador (enviada con los métodos GET o POST) automáticamente tiene las "magic_quotes" aplicadas (sin importar la configuración de PHP) por lo que uedes insertarla contotal seguridad en la base de datos. El resto de la información(obtenida desde los archivos, o desde la base de datos) debe ser escapada con la función addslashes() antes de insertarla en la base de datos.

 

Estilo del Código

Comprendo que puede ser un poco frustrante modificar tu estilo de programación si has trabajado en otras coasa, pero compara esa frustración con la frustración de toda la gente que intente, más adelante, encontrar el sentido del código de Moodle si es una mezcla de estilos. Obviamente, hay muchos puntos a favor y en contra de cada estilo que la gente utiliza, pero el que se detalla aquí es el que deberás utilizar.

  1. El sangrado del texto debe ser siempre de 4 espacios. No utilices los tabuladosres NUNCA.
  2. Los nombres de las variables tienen que ser siempre fáciles de leer, procurando que sean palabras en minúsculas con significado en Inglés. Si realmente necesitas más de una palabra, ponlas juntas, pero procura mantenerlas tan breves como sea posible. Utiliza nombres en plural para las matrices de objetos.

    BIEN: $quiz
    BIEN
    : $errorstring
    BIEN
    : $assignments (for an array of objects)
    BIEN
    : $i (but only in little loops)

    MAL: $Quiz
    MAL: $aReallyLongVariableNameWithoutAGoodReason
    MAL: $error_string

  3. Las constantes tienen que definirse siempre en mayúsculas, y empezar siempre por el nombre del módulo al que pertenecen. Deberían tener las palabras separadas por guiones bajos.

    define("FORUM_MODE_FLATOLDEST", 1);

  4. Los nombres de las funciones tienen que ser palabras sencillas en minúsculas y en Inglés, y empezar con el nombre del módulo al que pertenecen para evitar conflictos entre módulos. Las palabras deberían separarse por guiones bajos. Los parámentros, si es posible, tendrán valores por defecto. Fíjate en que no has espacio entre el nombre de la función y lo siguiente (paréntesis).

    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;
        }
    }

  5. Los bloques de código siempre deben estar encerrados por llaves(incluso si solo constan de una línea). Moodle utiliza este estilo:

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

  6. Las cadenas tienen que ser definidas utilizando comillas simples siempre que sea posible, para obtener un mejor rendimiento.

    $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";

  7. Los comentarios utilizarán dos o tres barras y estarán alineados con el código

    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

  8. El espacio en blanco se puede utilizar con bastante libertad - no te preocupes por separar las cosas un poco para ganar en claridad. Generalmente, debería haber un espacio entre llaves y líneas normales y ninguno entre llaves y variables o funciones:

    foreach ($objects as $key => $thing) {
        process($thing);
    }

    if ($x == $y) {
        $a = $b;
    } else if (
    $x == $z) {
        $a = $c;
    } else {
        $a = $d;
    }

 

Estructuras de la base de datos

  1. Cada tabla debe tener un campo autonumérico id (INT10) como clave primaria.
  2. La tabla principal que contiene instancias de cada módulo debe tener el mismo nombre que el módulo y contener, por lo menos, los siguientes campos:
    • id - descrito arriba
    • course - el identificador del curso al que la instancia pertenece
    • name - el nombre completo de la instancia
  3. El resto de las tablas asociadas con un módulo que contiene información sobre 'cosas', deberían ser llamandas modulo_cosas(fíjate en el plural!).
  4. Los nombres de los campos (columnas) deberían ser sencillos y cortos, siguiendo las mismas reglas que los nombres de las variables.
  5. Cuando sea posible, las columnas que contengan una referencia al campo id de otra tabla (por ejemplo, modulo) debería ser llamado moduloid. (fíjate que esta norma es nueva y no es seguida por algunas tablas antiguas).
  6. Los campos booleanos serán implementados como enteros cortos (por ejemplo, INT4) con los valores 0 o 1, para permitir la futura expansión de los valores si fuera necesario.
  7. La mayoría de las tablas tienen que tener un campo timemodified (INT10) que será actualizado con la fecha actual (timestamp de UNIX) obtenida con la función time() de PHP.

Moodle Documentation

Version: $Id$

\ No newline at end of file -- 2.39.5