Manual del desarrollador

12
Manual del Desarrollador Este documento describe un poco el diseño de Moodle y cómo se puede contribuir. Actuamente es un tanto escueto - ¡con el tiempo se irá mejorando la documentación! Secciones de este documento: 1. Arquitectura de Moodle 2. Cómo contribuir o Las actividades para el aprendizaje o Temas o Idiomas o Esquemas de Bases de datos o Formatos de cursos o Documentación y artículos o Cómo participar en rastreo de fallos 1. Arquitectura de Moodle Desde la perspectiva de un administrador de sistemas, Moodle ha sido diseñado de acuerdo con los siguientes criterios: 1. Moodle debe poder ejecutarse en la más amplia posible variedad de plataformas

description

Manual del desarrollador en Moodle

Transcript of Manual del desarrollador

Page 1: Manual del desarrollador

Manual del Desarrollador

Este documento describe un poco el diseño de Moodle y cómo se puede contribuir.

Actuamente es un tanto escueto - ¡con el tiempo se irá mejorando la documentación!

Secciones de este documento:

1. Arquitectura de Moodle

2. Cómo contribuir

o Las actividades para el aprendizaje

o Temas

o Idiomas

o Esquemas de Bases de datos

o Formatos de cursos

o Documentación y artículos

o Cómo participar en rastreo de fallos

 

1. Arquitectura de Moodle

Desde la perspectiva de un administrador de sistemas, Moodle ha sido diseñado de

acuerdo con los siguientes criterios:

1. Moodle debe poder ejecutarse en la más amplia posible variedad de

plataformas

La plataforma de aplicaciones Web que funciona en la mayoría de las

plataformas es PHP combinada con MySQL, y este es el entorno en el que

Moodle ha sido desarrollado (sobre Linux, Windows, y Mac OS X). Moodle

también usa la librería ADOdb para la abstracción de bases de datos, lo que

significa que Moodle puede usar más de diez marcas diferentes de bases de

datos (desafortunadamente, a pesar de ello, no puede aún crear tablas en todas

esas bases de datos. Hablaremos más sobre esto más adelante).

Page 2: Manual del desarrollador

2. Moodle debe ser fácil de instalar, aprender y modificar

Los primeros prototipos de Moodle (1999) se construyeron usando Zope, un

avanzado servidor de aplicaciones Web orientado a objetos.

Desafortunadamente me pareció que aunque la tecnología era bastante buena,

tenía una curva de aprendizaje muy elevada y no era muy flexible en términos de

administración del sistema. El lenguaje PHP, por otro lado, es muy fácil de

aprender (especialmente si has hecho algo de programación usando cualquier

otro lenguaje de script). Pronto tomé la decisión de evitar usar un diseño

orientado a clases, con la finalidad, una vez más, de mantenerlo fácil de entender

para los principiantes. La reutilización del código se archiva en librerías con

funciones claramente tituladas y con una disposición de los archivos de script,

consistente. PHP es también fácil de instalar (existen versiones ejecutables para

todas las plataformas) y está ampliamente disponible, pues la mayoría de los

servicios de alojamiento lo proporcionan como un estándar.

3. Debe ser fácil de actualizar desde una versión a la siguiente

Moodle sabe cuál es su versión (así como las versiones de todos los módulos) y

se ha construido un mecanismo interno para que Moodle pueda actualizarse a sí

mismo de forma apropiada a las nuevas versiones (por ejemplo, puede

renombrar las tablas de las bases de datos o añadir nuevos campos). Usando

CVS en Unix, por ejemplo, uno tan sólo tiene que hacer un "cvs update -d" y

luego visitar la página principal del sitio para completar la actualización.

4. Debe ser modular para permitir el crecimiento

Moodle tiene una serie de características modulares, incluyendo temas,

actividades, interfaces de idioma, esquemas de base de datos y formatos de

cursos. Esto le permite a cualquiera añadir características al código básico

principal o incluso distribuirlas por separado. Hablaremos más de esto en la

siguiente sección.

Page 3: Manual del desarrollador

5. Debe poder usarse junto a otros sistemas.

Una de las cosas que hace Moodle es mantener todos los archivos para un curso

en un único directorio en el servidor. Esto podría permitir que el administrador

de un sistema proporcione similares formas de acceso a un nivel de archivo para

cada profesor, tal como Appletalk, SMB, NFS, FTP, WebDAV y demás. Los

módulos de autenticación le permiten a Moodle usar LDAP, IMAP, POP3,

NNTP y otras bases de datos como fuentes de información de los usuarios. Por

otra parte, aún queda trabajo por hacer sobre esto. Para futuras versiones de

Moodle tenemos planeadas las siguientes características: importación y

exportación de los datos de Moodle utilizando formatos basados en XML

(incluyendo IMS y SCORM), incrementar el uso de hojas de estilo para el

formateo de interfaces (de manera que puedan integrarse visualmente en otros

sitios Web).

 

2. Cómo contribuir

Tal como se ha mencionado más arriba, Moodle tiene una serie de características que

son modulares. Incluso, aunque usted no sea un programador, hay cosas que usted podrá

cambiar o con las que puede ayudar.

Actividades de Aprendizaje

Estos son con mucho los módulos más importantes, y se encuentran en el directorio

"mod". Por defecto hay siete módulos: Tarea, Consulta, Foro, Glosario, Cuestionario,

Recurso, y Encuesta. Cada módulo está en un subdirectorio separado y consiste en los

siguientes elementos obligatorios (más los scripts extra que son únicos para cada

módulo):

mod.html: un formulario para establecer o actualizar una instancia de este

módulo

version.php: define alguna meta-información y proporciona código de

actualización

Page 4: Manual del desarrollador

icon.gif: un icono de 16x16 para el módulo

db/: volcados SQL de todas las tablas y datos requeridos de una base de datos

(para cada tipo de base de datos)

index.php: una página para presentar la lista de todas las instancias en un curso

view.php: una página para ver una instancia en particular

lib.php: cualquiera/todas las funciones definidas para el módulo deben estar

aquí. Si el módulo se llama "chisme", entonces las funciones requeridas

incluyen:

o chisme_add_instance() - código para añadir una nueva instancia de

chisme

o chisme_update_instance() - código para actualizar una instancia existente

o chisme_delete_instance() - código para borrar una instancia

o chisme_user_outline() - dada una instancia, devuelve un resumen de una

contribución de un usuario

o widget_user_complete() - dada una instancia, imprime detalles sobre la

contribución de un usuario

o Para evitar posibles conflictos, cualquiera de las funciones de un módulo

debe ser nombrada comenzando con chisme_ (el nombre del módulo más

un guión bajo) y cualquier constante que usted defina debe comenzar con

CHISME_

Finalmente, cada módulo tendrá algunos archivos de idioma que contienen

cadenas para ese módulo. Lea más abajo.

La forma más fácil de comenzar un nuevo módulo de actividad es usar la plantilla que

hay en mod/newmodule_template.zip. Descomprímala y siga las instrucciones que hay

en el documento "README".

Quizás también quiera antes enviar algo al Foro " Activity modules " en " Using Moodle " .

 Temas

Los temas (o pieles) definen la apariencia de un sitio. Con la distribución básica se

proporciona una serie de temas simples, pero usted puede querer crear su propio tema,

con sus propios colores, logo, estilos y gráficos.

Page 5: Manual del desarrollador

Cada tema es un subdirectorio del directorio "theme", y contiene al menos los siguientes

archivos:

config.php: define los colores del tema que se usan en todo el sitio

styles.php: la hoja de estilos, contiene definiciones de CSS para elementos

HTML estándar así como para varios elementos de Moodle.

header.html: Incluido al principio de cada página. Este es el que usted necesita

editar para añadir un logo al principio de las páginas, por ejemplo.

footer.html: Incluido en el pie de cada página.

Para crear sus propios temas para la versión actual de Moodle:

1. Copie una de las carpetas de tema existentes a una con un nuevo nombre. Le

recomiendo comenzar con uno de los temas estándar.

2. Edite: config.php e inserte sus propios colores.

3. Edite: styles.php y cambie su hoja de estilos CSS.

4. Edite: header.html y footer.html para añadir nuevos logos o cambiar la

disposición.

Advierta que todos estos pasos son opcionales. Usted puede crear una apariencia

radicalmente distinta para su sitio simplemente editando los colores que aparecen en el

archivo config.php

Advierta también que las actualizaciones de Moodle pueden corromper ligeramente los

temas, así que revise cuidadosamente las notas de la versión si está usando un tema

personalizado.

En particular, Moodle 2.0 tendrá un sistema de presentación completamente nuevo,

probablemente basado en XSL transformando la salida de XML desde Moodle. Esto

quiere decir que los temas para esta versión tendrán un formato completamente

diferente, pero la ventaja será que habrá un grado de personalización mucho más alto

(incluyendo mover elementos en la página).

Encontrará más discusión sobre esto en el Foro " Themes " en " Using Moodle " . Si usted

crea un bonito tema que considera que otros podrían querer usar, ¡por favor, envíelo en

un archivo zip al foro sobre temas!.

Page 6: Manual del desarrollador

 

Idiomas

Moodle ha sido diseñado para ser internacional. Cada "cadena" o "página" de texto que

se presenta como parte de la interfaz surge de una serie de archivos de idioma. Cada

idioma es un subdirectorio del directorio "lang". La estructura del directorio "lang" es la

que sigue:

lang/en - directorio que contiene todos los archivos para un idioma (por ejemplo, el

inglés)

moodle.php - cadenas para la interfaz principal

assignment.php - cadenas para el módulo de tareas

choice.php - cadenas para el módulo consulta

forum.php - cadenas para el módulo del foro

glossary.php - cadenas para el módulo del glosario

quiz.php - cadenas para el módulo del cuestionario

resource.php - cadenas para el módulo de recursos

survey.php - cadenas para el módulo de encuesta

.... además de otros módulos si los hay.

Se llama a las cadenas desde los archivos usando las funciones: get_string() o

print_string(). Cada cadena admite la sustitución de variables para ayudar a la

ordenación de variables en diferentes idiomas. Por ejemplo:

$strdueby = get_string("assignmentdueby", "assignment", userdate($date));

Si en un determinado idioma no existe una cadena, entonces se usará

automáticamente en su lugar el equivalente en inglés.

lang/en/help - contiene todas las páginas de ayuda (para las ayudas emergentes

sensibles al contexto)

Page 7: Manual del desarrollador

Las páginas principales de ayuda están situadas aquí, mientras que las páginas

específicas de cada módulo están localizadas en subdirectorios con el nombre del

módulo.

Con la función helpbutton, usted puede insertar un botón de ayuda en una página.

Por ejemplo: helpbutton("text", "Haga clic aquí para obtener ayuda sobre el texto");

y para los módulos:

helpbutton("forumtypes", "Forum types", "forum");

Tenga en cuenta que puede editar los idiomas en línea, usando las herramientas web de

Administración bajo "Idioma". Esto hace que sea fácil no sólo crear nuevos idiomas

sino también refinar los existentes. Si va a comenzar a crear un nuevo idioma por favor

comuníquese conmigo: Martin Dougiamas.

También querrá enviar un mensaje al " General Language forum " en " Using Moodle " .

Si usted está haciendo el mantenimiento de un idioma de manera continuada, yo puedo

darle acceso de escritura al código fuente de Moodle en el CVS de manera que pueda

hacer el mantenimiento directo en los archivos.

 

Esquemas de Bases de Datos

Dada una base de datos funcionando con tablas definidas, el intencionalmente simple

SQL usado en Moodle debe funcionar bien con una amplia variedad de marcas de bases

de datos.

Existe un problema con la creación automática de nuevas tablas en una base de datos,

que es lo que Moodle intenta hacer tras la instalación inicial. Debido a que cada base de

datos es muy diferente de las otras, aún no existe una manera de hacer esto de manera

independiente del tipo de plataforma. Para ayudar a la automatización en cada base de

datos, pueden crearse esquemas que enumeren el SQL requerido para crear tablas en

Page 8: Manual del desarrollador

Moodle en una base de datos determinada. Estos son los archivos que hay en lib/db y

dentro del subdirectorio db de cada módulo.

Actualmente, sólo se soportan totalmente de esta manera, MySQL y PostgreSQL (nadie

ha escrito esquemas para otras marcas).

Moodle 1.2 usará un nuevo método de esquemas XML independientes de la base de

datos que hará que todo ésto no sea necesario.

 

Formatos de curso

Actualmente Moodle soporta tres formatos de curso diferentes: semanal, por temas y

social.

Estos están un poco más conectados al resto del código (y, por tanto, son menos

extendibles) pero sigue siendo bastante sencillo añadir nuevos módulos.

Si tiene cualquier idea para formatos diferentes que necesite o quiera ver integrados,

póngase en contacto conmigo y yo haré mi mayor esfuerzo para tenerlos disponibles en

futuras versiones.