2003-06-25 17:36:36 +00:00
< h2 > Manual del Desarrollador< / h2 >
< p > Este documento describe un poco el diseñ o de Moodle y
có mo puede contribuir usted.< / p >
< h3 > Í ndice< / h3 >
< ol >
< li > < a href = "#architecture" > Arquitectura de Moodle< / a > < / li >
< li > < a href = "#contribute" > Có mo contribuir< / a >
< ul >
< li > < a href = "#activities" > Las actividades para el aprendizaje< / a > < / li >
< li > < a href = "#themes" > Temas< / a > < / li >
< li > < a href = "#languages" > Idiomas< / a > < / li >
< li > < a href = "#database" > Esquemas de Bases de datos< / a > < / li >
< li > < a href = "#courseformats" > Formatos de cursos< / a > < / li >
< li > < a href = "#doc" > Documentació n y artí culos< / a > < / li >
< li > < a href = "#bugs" > Có mo participar en rastreo de fallos< / a > < / li >
< / ul >
< / li >
< / ol >
< p > < / p >
< h3 > < a name = "architecture" > < / a > 1. Arquitectura de Moodle< / h3 >
< p > Desde la perspectiva de un administrador de sistemas, Moodle ha sido
diseñ ado de acuerdo con los siguientes criterios:< / p >
< ol >
< li > < strong > Moodle debe poder ejecutarse en la má s amplia
posible variedad de plataformas< / strong > < br >
< br >
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
sustracció n de bases de datos, lo que significa que Moodle puede
usar < a href = "http://php.weblogs.com/ADOdb_manual#drivers" > má s
de diez marcas diferentes de bases de datos< / a > (desafortunadamente, a
pesar de ello, no puede aú n < em > < strong > crear tablas< / strong > < / em >
en todas esas bases de datos. Hablaremos má s sobre esto
má s adelante).< br >
< br >
< / li >
< li > < strong > Moodle debe ser fá cil de instalar, aprender y
modificar< / strong > < br >
< br >
Los primeros prototipos de Moodle (1999) se construyeron usando < a
href="http://www.zope.org/" target="_top">Zope< / a > , 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 empinada 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 servidores de
alojamiento lo proporcionan como un está ndar.< br >
< br >
< / li >
< li > < strong > Debe ser fá cil de actualizar desde una
versió n a la siguiente< / strong > < br >
< br >
Moodle sabe qué versió n es (así como las versiones
de todos los mó dulos plug-in) y se ha construido un mecanismo
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.< br >
< br >
< / li >
< li > < strong > Debe ser modular para permitir el crecimiento< / strong > < br >
< br >
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.< br >
< br >
< / li >
< li > < strong > Debe poder usarse junto con otros sistemas.< / strong > < br >
< br >
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).< / li >
< / ol >
< p > < / p >
< h3 > < a name = "contribute" id = "contribute" > < / a > 2. Có mo puede
contribuir usted< / h3 >
< p > 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.< / p >
< h4 > < a name = "activities" id = "activities" > < / a > Actividades de Aprendizaje< / h4 >
< div style = "padding-left: 3em;" >
< p > Estos son con mucho los mó dulos má s importantes, y se
encuentran en el directorio "mod". Por defecto hay siete
mó dulos: < em lang = "en" > assignment< / em > (tareas), < em lang = "en" > choice< / em >
(opció n), < em lang = "en" > forum< / em > (foro), < em lang = "en" > journal< / em >
(diario), < em lang = "en" > quiz< / em > (cuestionario), < em lang = "en" > resource< / em >
(material), y < em lang = "en" > survey< / em > (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):< / p >
< ul >
< li > mod.html: un formulario para establecer o actualizar una
instancia de este mó dulo< / li >
< li > version.php: define alguna meta-informació n y proporciona
có digo de actualizació n< / li >
< li > icon.gif: un icono de 16x16 para el mó dulo< / li >
< li > db/: depó sitos SQL de todas las tablas y datos requeridos
de una base de datos (para cada tipo de base de datos)< / li >
< li > index.php: una pá gina para presentar la lista de todas las
instancias en un curso< / li >
< li > view.php: una pá gina para ver una instancia en particular< / li >
< li > lib.php: cualquiera/todas las funciones definidas para el
mó dulo deben estar aquí . Si el < em > modulename< / em > se
llama "chisme", entonces las funciones requeridas incluyen:
< ul >
< li > chisme_add_instance() - có digo para añ adir una
nueva instancia de chisme< / li >
< li > chisme_update_instance() - có digo para actualizar una
instancia existente< / li >
< li > chisme_delete_instance() - có digo para borrar una
instancia< / li >
< li > chisme_user_outline() - dada una instancia, devuelve un
resumen de una contribució n de un usuario< / li >
< li > widget_user_complete() - dada una instancia, imprime detalles
sobre la contribució n de un usuario< br >
< / li >
< li > 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_ < / li >
< / ul >
< / li >
< li > Finalmente, cada mó dulo tendrá algunos archivos de
idioma que contienen cadenas para ese mó dulo. Lea má s
abajo.< / li >
< / ul >
< p > La forma má s fá cil de comenzar un nuevo mó dulo
de actividad es usar la plantilla que hay en < strong > < a
href="http://moodle.com/mod/newmodule_template.zip">mod/newmodule_template.zip< / a > .< / strong >
Descomprí mala y siga las instrucciones que hay en el documento "< span
lang="en">README< / span > ".< / p >
< p > Quizá s tambié n quiera antes enviar algo al < a
href="http://moodle.com/mod/forum/view.php?id=44" target="_top">Foro
de mó dulos de actividades sobre el uso de Moodle< / a > .< / p >
< p > < / p >
< / div >
< h4 > < a name = "themes" id = "themes" > < / a > Temas< / h4 >
< div style = "padding-left: 3em;" >
< p > 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.< / p >
< p > Cada tema es un subdirectorio del directorio "theme", y contiene al
menos los siguientes archivos:< / p >
< ul >
< li > < strong > config.php< / strong > : define los colores del tema que se
usan en todo el sitio< / li >
< li > < strong > styles.php< / strong > : la hoja de estilos, contiene
definiciones de CSS para elementos HTML está ndar así como
para varios elementos de Moodle.< / li >
< li > < strong > header.html< / strong > : 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.< / li >
< li > < strong > footer.html< / strong > : Incluido en el pie de cada
pá gina.< / li >
< / ul >
< p > Para crear sus propios temas para la versió n actual de Moodle:< / p >
< ol >
< li > Copie una de las carpetas existentes con un tema a una con un
nuevo nombre. Le recomiendo comenzar con uno de los temas
está ndar.< / li >
< li > Edite: config.php e inserte sus propios colores.< / li >
< li > Edite: styles.php y cambie su hoja de estilos.< / li >
< li > Edite: header.html y footer.html para añ adir nuevos logos
o cambiar la disposició n.< / li >
< / ol >
< p > 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< / p >
< p > Advierta tambié n que las actualizaciones de Moodle < em > pueden< / em >
interrumpir ligeramente los temas, así que revise cuidadosamente
las notas de al versió n si está usando un tema
personalizado.< / p >
< p > 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).< / p >
< p > Encontrará má s discusió n sobre esto en el < a
href="http://moodle.com/mod/forum/view.php?id=46" target="_top">Foro
sobre temas en el uso de Moodle< / a > . 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!.< br >
< / p >
< / div >
< p > < / p >
< h4 > < a name = "languages" id = "languages" > < / a > Idiomas< / h4 >
< div style = "padding-left: 3em;" >
< p > 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:< / p >
< p > < strong > lang/en< / strong > - directorio que contiene todos los archivos
para un idioma (por ejemplo, en este caso, el inglé s)< / p >
< ul >
< li > moodle.php - cadenas para la interfaz principal< / li >
< li > assignment.php - cadenas para el mó dulo de tareas< / li >
< li > choice.php - cadenas para el mó dulo opció n< / li >
< li > forum.php - cadenas para el mó dulo del foro< / li >
< li > journal.php - cadenas para el mó dulo del diario< / li >
< li > quiz.php - cadenas para el mó dulo del cuestionario< / li >
< li > resource.php - cadenas para el mó dulo de recursos< / li >
< li > survey.php - cadenas para el mó dulo de encuesta< / li >
< li > .... má s otros mó dulos si los hay.< br >
< br >
Se llama a las cadenas desde los archivos usando las funciones: < strong > < em > get_string()< / em > < / strong > < em > < / em > o< em > < strong > print_string()< / strong > < / em > .
Cada cadena admite la sustitució n de variables par ayudar a la
ordenació n de variables en diferentes idiomas. Por ejemplo:< br >
< br >
$strdueby = get_string("assignmentdueby", "assignment",
userdate($date)); < br >
< br >
Si en un determinado idioma no existe una cadena, entonces se
usará automá ticamente en su lugar el equivalente en
inglé s.< / li >
< / ul >
< p > < strong > lang/en/help< / strong > - contiene todas las pá ginas de
ayuda (para las ayudas emergentes sensibles al contexto)< / p >
< p > 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.< / p >
< p > Con la funció n < em > helpbutton< / em > , usted puede insertar un
botó n de ayuda en una pá gina.< / p >
< p > Por ejemplo: helpbutton("text", "Haga clic aquí para obtener
ayuda sobre el texto");< / p >
< p > y para los mó dulos:< / p >
< p > helpbutton("forumtypes", "Forum types", "forum");< / p >
< p > Tenga en cuenta que puede editar los idiomas en lí nea< em
lang="en">< / em > , usando las herramientas web de administració n
bajo "Comprobar 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: < a href = "http://dougiamas.com/" target = "_top" > Martin
Dougiamas< / a > .< / p >
< p > Tambié n querrá enviar un mensaje al < a
href="http://moodle.com/mod/forum/view.php?id=43" target="_top">Foro
de idiomas sobre el uso de Moodle< / a > . < / p >
< p > Si usted está haciendo el mantenimiento de un idioma de
manera continuada, yo puedo darle < a href = "?file=cvs.html" > acceso de
escritura al có digo fuente de Moodle en el CVS< / a > de manera que
pueda hacer el mantenimiento directo en los archivos.< / p >
< p > < / p >
< / div >
< h4 > < a name = "database" id = "database" > < / a > Esquemas de Bases de Datos< / h4 >
< div style = "padding-left: 3em;" >
< p > Dada una base de datos funcionando con tablas definidas, el
intencionalmente simple < abbr title = "Structured Query Language" > SQL< / abbr >
usado en Moodle debe funcionar bien con una amplia variedad de marcas de
bases de datos.< / p >
< p > Existe un problema con la < strong > creació n automá tica< / strong >
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 < strong > lib/db< / strong >
y dentro del subdirectorio < strong > db< / strong > de cada mó dulo.< / p >
< p > Actualmente, só lo se soportan totalmente de esta manera,
MySQL y PostgreSQL. Si usted está familiarizado con otra base de
datos (especialmente si se trata de una base de datos de có digo
abierto) y desea ayudar a trasladarla al esquema existente, por favor
pó ngase en contacto conmigo (< a href = "http://dougiamas.com/"
target="_top">Martin Dougiamas< / a > ).< / p >
< p > < / p >
< / div >
< h4 > < a name = "courseformats" id = "courseformats" > < / a > Formatos de curso< / h4 >
< div style = "padding-left: 3em;" >
< p > Actualmente Moodle soporta tres formatos de curso diferentes:
semanal, por temas y social.< / p >
< p > Estos está n un poco má s conectados al resto del
có digo (y, por tanto, menos "< em lang = "en" > pluggable< / em > ") pero
sigue siendo bastante sencillo añ adir nuevos mó dulos.< / p >
< p > Si usted 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.< / p >
< p > < / p >
< / div >
< h4 > < a name = "doc" id = "doc" > < / a > Documentació n y artí culos< / h4 >
< div style = "padding-left: 3em;" >
< p > 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 >
< p > Pó ngalo en la Web y asegú rese de poner enlaces a < a
href="http://moodle.com/" target="_top">http://moodle.com/< / a > < / p >
< p > < / p >
< / div >
< h4 > < a name = "bugs" id = "bugs" > < / a > Participar en el rastreo de fallos< / h4 >
< div style = "padding-left: 3em;" >
< p > Finalmente, me gustarí a invitarle a registrarse en la lista
de "rastreo de fallos" en < a href = "http://bugs.moodle.org"
target="_top">bugs.moodle.org< / a > de manera que pueda enviar cualquier
fallo que encuentre y quizá s participar en la discusió n
sobre có mo arreglarlos.< / p >
< p > "Fallos" no só lo incluye fallos de software de las versiones
actuales de Moodle, sino tambié n nuevas ideas, solicitudes de
opciones 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!< / p >
< p > < / p >
< / div >
< p style = "text-align: center;" > ¡ Gracias por usar Moodle!< / p >
< p style = "text-align: center;" > Saludos,< br >
< a href = "http://dougiamas.com/" target = "_top" > Martin Dougiamas< / a > < / p >
< p > < / p >
< p > < / p >
< p > < / p >
< p style = "text-align: center; font-size: 0.7em;" > < a href = "."
target="_top">Documentació n de Moodle< / a > < / p >
< p style = "text-align: center; font-size: 0.7em;" > Version: $Id:
2003-06-26 00:14:07 +00:00
developer.html,v 1.2 2001/12/09 10:34:19 martin Exp $< / p >