mirror of
https://github.com/moodle/moodle.git
synced 2025-01-24 09:08:22 +01:00
693 lines
18 KiB
HTML
693 lines
18 KiB
HTML
<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;">Versión: $Id:
|
|
|
|
developer.html,v 1.2 2001/12/09 10:34:19 martin Exp $</p> |