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:
- Arquitectura de Moodle
- C�mo contribuir
1. Arquitectura de Moodle
Desde la perspectiva de un administrador de sistemas, Moodle ha sido
dise�ado de acuerdo con los siguientes criterios:
- 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).
- 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.
- 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.
- 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.
- 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, Diario, Cuestionario,
Material, 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
- 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:
- chisme_add_instance() - c�digo para a�adir una
nueva instancia de chisme
- chisme_update_instance() - c�digo para actualizar una
instancia existente
- chisme_delete_instance() - c�digo para borrar una
instancia
- chisme_user_outline() - dada una instancia, devuelve un
resumen de una contribuci�n de un usuario
- widget_user_complete() - dada una instancia, imprime detalles
sobre la contribuci�n de un usuario
- 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
de m�dulos de actividades sobre el uso de 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.
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:
- Copie una de las carpetas de tema existentes a una con un nuevo nombre.
Le recomiendo comenzar con uno de los temas est�ndar.
- Edite: config.php e inserte sus propios colores.
- Edite: styles.php y cambie su hoja de estilos CSS.
- 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 al 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
sobre temas en el uso de Moodle. Si usted crea un bonito tema que
considera que otros podr�an querer usar, ¡por favor,
env�elo en un archivo comprimido al foro sobre temas!.
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
- journal.php - cadenas para el m�dulo del diario
- quiz.php - cadenas para el m�dulo del cuestionario
- resource.php - cadenas para el m�dulo de materiales
- 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)
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 Foro
de idiomas sobre el uso de 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 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.1 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.
Documentaci�n y art�culos
Si a usted le apetece escribir un manual, un art�culo, un
documento acad�mico o cualquier otra cosa sobre Moodle, por
favor, ¡h�galo!
P�ngalo en la Web y aseg�rese de poner enlaces a http://moodle.org/
Participar en el rastreo de fallos
Finalmente, me gustar�a invitarle a registrarse en la lista
de "rastreo de fallos" en http://moodle.org/bugs de manera que pueda enviar cualquier
fallo que encuentre y quiz�s participar en la discusi�n
sobre c�mo arreglarlos.
"Fallos" no s�lo incluye fallos de software de las versiones actuales de
Moodle, sino tambi�n nuevas ideas, mejoras e incluso cr�tica constructiva
de las actuales caracter�sticas. La belleza del c�digo abierto radica en que
cualquiera puede participar de alguna manera y ayudar a la creaci�n de un
producto mejor para que todos disfrutemos de �l. ¡En este proyecto sus
ideas son muy bienvenidas!
¡Gracias por usar Moodle!
Saludos,
Martin Dougiamas
Documentaci�n de Moodle
Version: $Id: developer.html,v 1.2 2001/12/09
10:34:19 martin Exp $