Beruflich Dokumente
Kultur Dokumente
INGENIERA INFORMTICA
INGENIERA INFORMTICA
TRIBUNAL:
CALIFICACIN: FECHA:
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Contenido
1 Resumen .................................................................................................................. 9
2 Introduccin .......................................................................................................... 11
2.1 Objetivos ........................................................................................................ 13
5
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.1.1 Requisitos.................................................................................................. 51
5.1.2 Instalacin de requisitos ......................................................................... 53
6
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
7
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
8
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
1 Resumen
En este proyecto de fin de carrera se da una solucin al problema del reparto de
alumnos en los grupos de prcticas de algunas asignaturas universitarias. Para ello se
ha realizado un mdulo para la plataforma de enseanza virtual Moodle, encargado de
facilitar esta labor tanto a los alumnos como a los profesores.
9
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
2 Introduccin
La incorporacin de las tecnologas de la informacin en el aula ha supuesto un
cambio en la enseanza tradicional a nivel metodolgico y actitudinal tanto para los
profesionales de la enseanza como para los propios alumnos (Romero, 2006). Como
consecuencia de esta irrupcin tecnolgica, se hace necesario un entorno software
adecuado para albergar los contenidos de aprendizaje.
11
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
para generalizar el uso de las TIC a nivel docente. Estas actuaciones se han centrado en
la utilizacin de Moodle como herramienta para la gestin de la docencia y, de forma
simultnea, en la adaptacin de las asignaturas del departamento hacia el Espacio
Europeo de Educacin Superior (EEES). No obstante, teniendo en cuenta que los
estudios son presenciales, no se considera Moodle como un medio bsico de
comunicacin con los estudiantes, pero s una buena herramienta para el auto
aprendizaje y la autoevaluacin. Aun as, de cara a la implantacin del espacio EEES, la
utilizacin de Moodle permitir organizar y programar el trabajo docente de una forma
muy gil, clara y estructurada.
El prrafo anterior recoge las necesidades a las que responde este proyecto. Por
un lado, se estudiar con detenimiento la arquitectura de Moodle, as como la
documentacin y las libreras de cdigo que provee al desarrollador. Se realizar una
gua o manual para el desarrollador que ayude en la tarea de modificar o desarrollar
nuevas extensiones para aadir funcionalidades a la plataforma. Por otro lado, se
desarrollar un mdulo para gestionar los laboratorios docentes de las asignaturas del
departamento de Matemticas de la Universidad de Alcal, que permitir a los
profesores configurar los grupos de prcticas disponibles y a los alumnos seleccionar
varios laboratorios en orden de preferencia. Ser el propio mdulo el que se encargar
de repartir los alumnos entre los grupos, de acuerdo a un algoritmo equitativo, e
informar a cada alumno de cul es el grupo en el que se encuentra. El cdigo fuente
de este mdulo, as como toda la documentacin en formato digital se adjuntar
mediante un CD a la memoria final.
12
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
2.1 Objetivos
En este apartado se detallan los objetivos generales expuestos en la seccin
anterior: Organizar y sistematizar la documentacin para desarrolladores de Moodle
relacionada con el desarrollo extensiones y realizar un mdulo para la gestin de los
laboratorios docentes del departamento de Matemticas de la Universidad de Alcal
integrado en la plataforma Moodle. Con estas ideas en mente, los objetivos especficos
planteados son los siguientes:
13
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
14
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
15
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Con mayor o menor penetracin en cada uno de los modelos, la tecnologa Web
se impone como la tendencia en el desarrollo de sistemas educativos apoyados por las
TIC. Una importante aportacin de estas tecnologas a la educacin a distancia clsica
es la incorporacin de los conceptos de formacin sncrona y asncrona (Marcelo,
Puente, Ballesteros & Palazn, 2002). En la formacin sncrona se establece una
relacin temporal como la que comnmente se tienen en un curso en un aula
tradicional , en el que los participantes deben coincidir en un mismo instante de
16
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
17
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
productivo de todo el mundo. Por qu creemos que la educacin puede sobrevivir sin
hacer ninguna de esas transformaciones y sin utilizar ninguna de las herramientas
tecnolgicas, que la gente usa para desarrollar transformaciones en todos los dems
sistemas? (Escorcia, 2001).
Existe una variedad bastante grande de licencias de software libre que podemos
dividir en dos grandes familias. Una de ellas est compuesta por las licencias que no
18
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
19
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
20
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
que los cursos se imparten de forma mixta, muchas organizaciones estn extrayendo
beneficios para los alumnos y para las organizaciones. Desde este punto de vista el e-
learning no viene a desplazar a los modelos tradicionales, sino que es un medio
alternativo o complementario para poder impartir educacin a los sectores que antes
no eran accesibles.
Los beneficios que la Web provee pueden ser utilizados para preparar
estudiantes antes de la clase, para retencin en el aprendizaje y para proveer un til
depsito de los materiales del curso.
Para Bartolom (2004) la idea clave es la seleccin de los medios adecuados para
cada necesidad educativa. Es decir, se trata de un modelo eclctico compuesto por
instruccin presencial y funcionalidades del aprendizaje electrnico o e-learning, con la
finalidad de potenciar las fortalezas y disminuir las limitaciones de ambas
modalidades. Este modelo permite permanecer menos tiempo en el aula, propicia un
potencial ahorro de espacios fsicos e incrementa la participacin de los estudiantes
como responsables de su propio aprendizaje entre otros beneficios.
21
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
22
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
en diversas situaciones en las cuales han de interactuar. As, segn diversos autores, la
interaccin en un ambiente de aprendizaje combinado es un importante componente
del proceso cognitivo, pues incrementa la motivacin, una actitud positiva hacia el
aprendizaje, y el aprendizaje significativo (Sutton, 1999).
23
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Finalmente, existen aquellas universidades que han optado por crear sus
propias versiones virtuales, mediante el establecimiento de fundaciones o empresas
que van a gestionar esos contenidos virtuales de forma independiente de la institucin
matriz.
Por tanto, las TICs representan uno de los principales factores de cambio de las
instituciones de educacin superior. Segn el Informe Bricall (2000), stas auguran en
el campo educativo la progresiva desaparicin de las restricciones de espacio y de
tiempo en la enseanza y la adopcin de un modelo de aprendizaje ms centrado en el
estudiante. Al mismo tiempo, favorecen la comercializacin, entendiendo como
comercializacin la oferta de cursos online en distintas universidades, y la
globalizacin de la educacin superior, as como un nuevo modelo de gestin de su
organizacin.
24
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
25
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
En los LMS los mdulos con funciones administrativas permiten, por ejemplo,
configurar cursos, matricular alumnos, registrar profesores, asignar cursos a un
alumno, llevar informes de progreso y calificaciones. Los LMS tambin facilitan el
aprendizaje distribuido y colaborativo a partir de actividades y contenidos
preelaborados, de forma sncrona o asncrona, utilizando los servicios de comunicacin
de Internet como el correo, los foros, las videoconferencias y el chat.
26
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
27
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
28
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
son los diseadores de cursos que utilizan los contenidos para construir dichos cursos,
los profesores que utilizan los contenidos para complementar su material de clase e
incluso los alumnos en algn momento pueden acceder a la herramienta para
desarrollar sus tareas o completar sus conocimientos.
El mercado de los LCMS es mucho ms reducido que el de los LMS, entre los
productos ms comunes se encuentra ATutor, distribuido como software libre y
compatible con estndares e-learning y b-learning para la exportacin e importacin
de contenidos con otras plataformas y con Repositorios de Objetos de Aprendizaje.
3.6 Moodle
Moodle es un paquete de software libre para la creacin de cursos y sitios Web
basados en Internet. Consiste en un proyecto diseado con la filosofa de la educacin
social constructivista.
De acuerdo con Stallman (2004), con software libre nos referimos a la libertad
de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software.
Nos referimos especialmente a cuatro clases de libertad para los usuarios de software:
Libertad 0: la libertad para ejecutar el programa sea cual sea nuestro propsito.
Libertad 1: la libertad para estudiar el funcionamiento del programa y
adaptarlo a tus necesidades el acceso al cdigo fuente es condicin
indispensable para esto.
Libertad 2: la libertad para redistribuir copias y ayudar as a tu vecino.
Libertad 3: la libertad para mejorar el programa y luego publicarlo para el bien
de toda la comunidad el acceso al cdigo fuente es condicin indispensable
para esto.
29
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
30
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
7. Un sitio Moodle puede albergar miles de cursos y estos pueden ser clasificados
en distintas categoras.
Moodle posee una interfaz intuitiva que facilita a los diseadores de cursos la
construccin de foros, chats, lista de correo, glosarios, bibliotecas, autoevaluaciones y
dems funcionalidades. Los recursos disponibles en Moodle se pueden clasificar en
tres categoras: Recursos Transmisivos, Recursos Interactivos y Recursos
Colaborativos. A estas tres categoras tambin podemos aadir las herramientas de
comunicacin.
31
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
32
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
4 Arquitectura de Moodle
Moodle significa Modular Object-Oriented Dynamic Learning Environment
(Entorno de enseanza dinmico orientado a objetos modular). Desde la perspectiva
del programador, la M de Moodle contiene un concepto muy importante, ya que
Moodle, en su totalidad, est diseado de forma modular. Esto permite al
desarrollador realizar importantes modificaciones a la plataforma sin necesidad de
cambiar el cdigo fuente. La modularidad se convierte en una importante caracterstica
que permite reducir la cantidad de tiempo empleada en realizar modificaciones cuando
se lanzan nuevas versiones de Moodle.
33
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Moodle est escrito en PHP, y la versin actual (versin 1.9) requiere la versin
de PHP 4.3.0 o superior para funcionar. La versin 2.0 de Moodle, actualmente en
desarrollo, necesitar la versin de PHP 5.2.8 o superior.
34
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
estos sistemas, y debido a su menor uso no estn tan probados como los anteriores.
Tambin es ms difcil encontrar un buen soporte para utilizar estos tipos de bases de
datos con Moodle. Algunos mdulos aadidos de terceros no funcionan bajo estos
sistemas sin un parche.
Los requisitos de la versin de la base de datos para Moodle 1.9 y para Moodle
2.0 son:
MySQL 4.1.16
PostgreSQL 8.0
Microsoft SQL 9.0
Oracle 9.0
35
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
nuestras modificaciones. Tambin significa que tenemos que ser conscientes de las
implicaciones de rendimiento del cdigo que se aada. La siguiente figura ilustra
varias configuraciones comunes utilizadas para Moodle en un entorno de produccin.
Moodle se puede desplegar de mltiples formas -desde un simple profesor que lo
ejecuta en su ordenador de sobremesa, hasta clsters de servidores de alto
rendimiento:
36
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
37
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
admin: Esta carpeta almacena los ficheros PHP que controlan la interfaz de los
usuarios administradores. Tambin contiene el fichero cron.php, que se ejecuta
como un proceso batch para realizar tareas de mantenimiento del sistema como
el envo de correos y la realizacin de las copias de seguridad de los cursos. A
menudo se utiliza el proceso cron para realizar este tipo de operaciones
programadas.
auth: La carpeta auth contiene todos los mdulos de autenticacin de Moodle.
Cada mdulo tendr su propio directorio dentro de esta carpeta. Los mdulos
de autenticacin controlan la creacin de usuarios y el acceso de estos al
sistema.
backup: Esta carpeta contiene las utilidades de copia de seguridad del ncleo
del sistema. Se trata de funciones para guardar, restaurar e importar cursos.
Cada mdulo individual es responsable de realizar la copia de seguridad de su
cdigo y puede hacer uso de estas funciones si lo necesita. Como cada mdulo
es auto-contenido, se permite a los desarrolladores aadir mdulos
limpiamente a Moodle sin tener que modificar el cdigo del ncleo.
38
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
39
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
http://localhost/workspace/moodle19/course/view.php?id=3
40
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Los principales elementos que componen un sitio Moodle son los siguientes:
41
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
4.6.1 Actividades
Las actividades con las que cuenta Moodle por defecto son las que se muestran
en la tabla siguiente. Desde la pgina de Moodle se pueden descargar otras muchas
con distintas funcionalidades, e incluso nosotros mismos podemos desarrollar nuestra
actividad personalizada. En captulos posteriores se profundizar en el proceso de
desarrollo de un mdulo de actividad para Moodle.
42
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Incluye las fotos de los perfiles en la ventana de chat y soporta direcciones URL,
emoticonos, integracin de HTML, imgenes, etc.
Consulta: Es similar a una encuesta, donde el profesor formula una nica
pregunta y ofrece a los usuarios distintas elecciones. Se puede considerar una
votacin, y puede usarse para opinar sobre algn tema o para recibir una
respuesta de cada estudiante (por ejemplo, para pedir su consentimiento para
algo).
Cuestionario: Permite la realizacin de exmenes de diferente tipo, donde los
profesores pueden definir una base de datos de preguntas que podrn ser
reutilizadas en diferentes cuestionarios.
Encuesta: Es similar a la actividad Consulta, pero con varias preguntas de
distinto tipo.
Foro: Se trata de una actividad para el debate entre usuarios de un curso. Hay
diferentes tipos de foros disponibles: exclusivos para los profesores, de noticias
de un curso y abiertos a todos.
Glosario: El glosario presenta un catlogo no exhaustivo de palabras relativas a
una misma disciplina, campo de estudio, actividad, tema o rea del saber, con
su definicin y/o comentarios, a veces bastante simples. Adems puede o no
estar clasificado en categoras y subcategoras.
Hot Potatoes: Este mdulo permite al profesorado elaborar y/o administrar los
ejercicios elaborados con el programa Hot Potatoes a travs de Moodle. Los
ejercicios se crean con Hot Potatoes, y luego se incorporan al curso de Moodle.
Leccin: Una leccin proporciona contenidos interactivos de forma interesante
y flexible. Estos contenidos consisten en una serie de pginas (normalmente
escritas con el editor HTML integrado en Moodle), y textos que el alumno ha de
recorrer; al final de cada pgina se puede plantear opcionalmente una pregunta
con varias posibles respuestas para comprobar de alguna manera que el
alumno lo ha ledo y/o comprendido. La navegacin a lo largo de la leccin
depende de la interaccin del estudiante con las preguntas planteadas.
Recurso: Admite la presentacin de cualquier contenido digital: Word,
PowerPoint, Flash, vdeo, sonidos, etc. Los archivos pueden ser subidos y
manejados en el servidor, o pueden ser creados sobre la marcha usando
formularios web (de texto o HTML). Tambin se pueden enlazar contenidos
externos en Web o incluirlos perfectamente en la interfaz del curso, o realizar
enlaces con aplicaciones Web, transfirindoles datos.
SCORM: Un paquete SCORM (Sharable Content Object Reference Model) es un
bloque de material web empaquetado de una manera que sigue el estndar
SCORM de objetos de aprendizaje. Estos paquetes pueden incluir pginas web,
grficos, programas Javascript, presentaciones Flash y cualquier otra cosa que
43
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
4.6.2 Recursos
Para complementar el contenido de las semanas o temas de cada curso, Moodle,
adems de actividades, ofrece la posibilidad de agregar otro tipo de recursos a las
mismas.
44
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
4.6.3 Bloques
El aspecto del entorno que envuelve un curso en Moodle puede variar en
funcin de las necesidades de alumnos y profesores. Esta personalizacin se consigue
mediante el uso, por parte del profesor del curso, de los denominados bloques de
Moodle, que aparecen a la izquierda o la derecha de la pantalla. Existen varios tipos de
bloques con funcionalidades muy diversas: informar, controlar, gestionar, etc. Algunos
trabajan de forma independiente y otros colaboran entre s. A continuacin se
describen los bloques establecidos por defecto en Moodle. A ellos podemos agregar
cuanto deseemos, de acuerdo con la funcionalidad que queramos instalar en la
plataforma Moodle.
45
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
temporales que podemos controlar con el calendario y cada uno de ellos est
identificado con un color de fondo en el bloque: eventos globales, eventos de
curso, eventos de grupo y eventos de usuario.
Canales RSS remotos: El bloque Canales RSS remotos permite mostrar
contenidos de canales RSS de sitios Web externos. El administrador debe
configurar el bloque para permitir al profesorado agregar y gestionar los
canales. En caso contrario, slo el administrador puede aadir o gestionar los
canales del sitio Moodle.
Cursos: El bloque Cursos muestra un listado de todos los cursos en los que
estamos matriculados o somos profesores/as, y puede utilizarse para moverse
rpidamente entre esos cursos. Debajo de esta lista, aparece el vnculo Todos los
cursos, que lleva a una pgina donde se muestran todos los cursos del sitio
agrupados por categoras (esto no quiere decir que se pueda entrar en ellos).
Descripcin del curso/sitio: El bloque Descripcin de curso/sitio muestra el texto
introducido en el resumen (informe) del curso presente en el formulario de
Configuracin del curso o en la descripcin del sitio que se realiza en la pgina de
Ajustes de portada. La cabecera del bloque slo se muestra en el modo de
edicin. Se pueden incluir imgenes y enlaces.
Enlaces de seccin: El bloque Enlaces de Seccin facilita la navegacin rpida por
las diferentes secciones o semanas del curso, dependiendo del formato del
curso usado, Temas o Semanal. Los nmeros que aparecen en el bloque son
enlaces a las secciones numeradas del curso. Este bloque es especialmente til
en los cursos con un gran nmero de secciones y cuando tenemos una sola
seccin visible.
Entrada aleatoria del glosario: Es un bloque que permite mostrar, por ejemplo
cada vez que se accede a la pgina principal de un curso, una nueva entrada del
glosario elegido, o una frase clebre, una cita, o un refrn, de forma sencilla y
colaborativa.
Eventos prximos: El bloque Eventos prximos muestra una lista de los
acontecimientos prximos (ya sea un evento global, de curso o de usuario) en el
calendario, con enlaces al contenido del acontecimiento sealado. Los eventos
se pueden programar en el calendario y todas las actividades de Moodle con
fecha lmite generan un evento automticamente.
HTML: El bloque HTML se utiliza para presentar en la pgina principal del sitio
o de un curso informacin textual, grfica, etc. Facilita un bloque flexible que
puede incorporar variedad de funciones y usos, proporcionando un editor
HTML para formatear el texto, aadiendo imgenes o creando enlaces.
Tambin es posible trabajar directamente con el cdigo fuente, lo que permite
introducir marcadores del lenguaje HTML. Eso hace posible incluir video,
46
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
sonido, flash, y otros ficheros que aadirn elementos nicos a la pgina del
curso.
Memtees: El bloque Mentees, slo disponible a partir de Moodle 1.8, es
bsicamente un bloque para que los padres de los alumnos puedan acceder a
Moodle y puedan ver las actividades o calificaciones de sus hijos. Para aadir
este bloque debemos tener instalada la versin 1.8, o superior, de Moodle, pues
slo funciona con esta versin.
Mensajes: El bloque Mensajes constituye un sistema de mensajera interna del
sistema que permite la comunicacin directa entre todos los usuarios del sitio
sin necesidad de usar el correo electrnico.
Novedades: El bloque Novedades presenta las cabeceras de las ltimas noticias o
mensajes publicados por el profesor o profesora en el Foro de Noticias. Siguiendo
el hipervnculo ms se accede al foro donde est publicada la noticia y se
puede ver el mensaje completo. En principio, todos los estudiantes de un curso
estn suscritos a este foro, de forma que tambin recibirn estos mensajes en su
correo particular.
Personas: El bloque Personas contiene el enlace a Participantes, que es un listado
de la totalidad de participantes del curso. Por defecto, aparece primero el
profesorado y despus los alumnos, ordenados por el ltimo acceso al curso. Al
hacer clic sobre el nombre de algn participante nos muestra su perfil personal.
Resultados del cuestionario: El bloque Resultados del cuestionario muestra
informacin sobre los resultados alcanzados por los usuarios en un
determinado cuestionario en tiempo real.
Usuarios en lnea: El bloque de los Usuarios en lnea muestra a los usuarios
matriculados (no muestra los invitados) del curso actual y presentes en un
perodo de tiempo fijado por el administrador del sitio (por defecto son los
ltimos 5 minutos).
47
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
4.7.1 Permisos
Los permisos en Moodle pueden ser asignados dentro de seis contextos:
sitio/global, categora de curso, curso, bloques y actividades, usuario y portada. Existen
siete roles integrados: administrador, profesor, profesor no editor, estudiante, creador
de cursos, usuario autenticado e invitado, y todos ellos pueden ser asignados en uno o
ms de los contextos mencionados. Como desarrolladores, podemos crear capacidades
para controlar el acceso a las nuevas funcionalidades que despleguemos en el sistema,
y tambin se puede crear cualquier nmero de roles personalizados a partir de la lista
de unas doscientas capacidades del sistema. A cada capacidad se le puede asignar uno
de estos cuatro niveles de acceso: No configurada, permitida, prohibida y prevenida.
Cada usuario puede tener mltiples roles que heredan permisos de todos los niveles de
contexto aplicables a una peticin de acceso realizada por el usuario. La combinacin
de todo lo anterior proporciona una solucin poderosa y flexible para los
administradores.
48
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
4.7.2 Capacidades
Las capacidades estn asociadas con niveles de contexto y son reglas especficas
de acceso que pueden ser concedidas a los roles. Ejemplos de capacidades son los
siguientes:
4.7.3 Roles
Los roles son identificadores especficos asociados con todos los contextos.
Principalmente se usan para agrupar capacidades de un contexto, de forma que este
grupo de capacidades puede ser asignado a los usuarios. Las capacidades se asignan a
roles en contextos especficos bien por defecto o mediante una asignacin especfica.
Para resumir:
49
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Son la asignacin de roles a nivel de contexto y las capacidades que un rol tiene
en ese contexto lo que determina si un usuario puede realizar la accin requerida.
50
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Para ello se repasarn las principales libreras de cdigo con las que cuenta el
programador para realizar su proyecto. A continuacin se analizar la estructura y el
contenido de los ficheros que componen un mdulo, para terminar realizando paso por
paso el desarrollo de un mdulo sencillo, que ser el germen de lo que posteriormente
podra ser un trabajo mayor.
5.1.1 Requisitos
Moodle est desarrollado principalmente en GNU/Linux usando Apache,
MySQL y PHP (tambin conocida como plataforma LAMP), aunque es probado
regularmente con PostgreSQL y en los sistemas operativos Windows XP, MacOS X y
Netware 6.
51
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
La mayora de los servicios de alojamiento web (hosting) soportan todo esto por
defecto. Si se ha contratado alguno de los pocos servicios de alojamiento web que no
soportan estas caractersticas, se debe considerar la posibilidad de trasladar el sistema a
otro sitio.
Requerimientos adicionales:
52
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Este mensaje nos indica que el servidor web se ha instalado y est funcionando
correctamente.
53
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
wget http://download.moodle.org/download.php/stable19/moodle-1.9.9.tgz
Cdigo 4: Descarga de Moodle
54
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
55
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
56
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
57
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
58
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
59
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
60
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
61
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
62
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Todas las cadenas deben ser traducibles. Para ello crearemos nuevos textos en
los archivos lang/es_utf8 con palabras reducidas en ingls y su traduccin
completa al espaol y las recuperaremos en nuestro cdigo utilizando las
funciones get_string() o print_string().
Todos los errores deben ser visualizados utilizando la funcin print_error() para
maximizar la traduccin y ayudar a los usuarios (Automticamente se enlaza
con Moodle Docs).
Todos los ficheros de ayuda deben ser traducibles. Para ello crearemos nuevos
textos en el directorio lang/es_utf8/help y los llamaremos utilizando la funcin
helpbutton(). Si necesitamos actualizar un fichero de ayuda:
o Para un pequeo cambio, donde la traduccin antigua del fichero
podra tener todava sentido, est permitido que se haga el cambio, pero
debera ser notificado a translation@moodle.org
o Para un cambio importante tendremos que crear un nuevo fichero
aadindole en el nombre un nmero incrementado (Ej. filename2.html)
para que los traductores puedan ver fcilmente que se trata de una
nueva versin del archivo. Obviamente el nuevo cdigo y los ndices de
las pginas de ayuda deben ser modificados para apuntar a las
versiones ms recientes.
La informacin que llega desde el navegador (enviada con los mtodos GET o
POST) automticamente tiene las "magic_quotes" aplicadas (sin importar la
configuracin de PHP) por lo que podemos insertarla con total seguridad en la
base de datos. El resto de la informacin (obtenida desde los archivos, o desde
la base de datos) debe ser escapada con la funcin addslashes() antes de
insertarla en la base de datos.
MUY IMPORTANTE: Todos los textos dentro de Moodle, especialmente
aquellos que han sido introducidos por los usuarios, deben ser mostrados
utilizando la funcin format_text(). Esto asegura que el texto es filtrado y
limpiado correctamente.
Las acciones de los usuarios deben ser grabadas utilizando la funcin
add_to_log(). Estos registros son utilizados para la generacin de los "Informes
de Actividad" y los registros.
Al generar enlaces HTML, deben hacerse siempre relativos a la raz del sitio
Moodle, por ejemplo, enlace a $CFG->wwwroot/mod/blonk/view.php?id=99 en
lugar de nicamente view.php?id=99. Gracias a esto el cdigo funcionar aunque
sea llamado por un script que se encuentre en otra carpeta diferente.
63
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
El sangrado del texto debe ser siempre de 4 espacios. No debemos utilizar los
tabuladores NUNCA.
Los nombres de las variables tienen que ser siempre fciles de leer, procurando
que sean palabras en minsculas con significado en ingls. Si realmente
necesitamos ms de una palabra, debemos ponerlas juntas.
Debemos utilizar nombres en plural para las matrices de objetos.
BIEN: $quiz
BIEN: $errorstring
BIEN: $assignments (para un array de objetos)
BIEN: $i (solo en bucles pequeos)
MAL: $Quiz
MAL: $aReallyLongVariableNameWithoutAGoodReason
MAL: $error_string
Cdigo 7: Ejemplos de nombres de variables correctos e incorrectos
define("FORUM_MODE_FLATOLDEST", 1);
Cdigo 8: Ejemplo de definicin de una constante
Los nombres de las funciones tienen que ser palabras sencillas en minsculas y
en ingls, y empezar con el nombre del mdulo al que pertenecen para evitar
conflictos entre mdulos. Las palabras deberan separarse por guiones bajos.
Los parmetros, si es posible, tendrn valores por defecto. Debemos comprobar
que no haya espacio entre el nombre de la funcin y los parntesis.
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;
}
}
Cdigo 9: Ejemplo de funcin bien definida
Los bloques de cdigo siempre deben estar encerrados por llaves (incluso si
solo constan de una lnea). Moodle utiliza el siguiente estilo:
64
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
if ($quiz->attempts) {
if ($numattempts > $quiz->attempts) {
error($strtoomanyattempts, "view.php?id=$cm->id");
}
}
Cdigo 10: Ejemplo de bloque de cdigo correcto siguiendo el estilo de Moodle
Las cadenas tienen que ser definidas utilizando comillas simples siempre que
sea posible. Esto sirve para obtener un mejor rendimiento.
Los comentarios deben aadirse de forma que resulten prcticos, para explicar
el flujo del cdigo y el propsito de las funciones y variables.
Cada funcin (y cada clase) debera utilizar el popular formato phpDoc. Esto
permite que la documentacin sea generada automticamente.
Los comentarios en lnea deberan utilizar los caracteres //, alineados con
cuidado por encima de las lneas de cdigo que comenta. Los comentarios de
p{rrafo utilizan los caracteres /**.**/
/**
The description should be first, with asterisks laid out exactly
like this example. If you want to refer to a another function,
do it like this: {@link clean_param()}. Then, add descriptions
for each parameter as follows.
*
@param int $postid The PHP type is followed by the variable name
@param array $scale The PHP type is followed by the variable name
@param array $ratings The PHP type is followed by the variable name
@return mixed
**/
function forum_get_ratings_mean($postid, $scale, $ratings=NULL) {
if (!$ratings) {
$ratings = array(); // Initialize the empty array
if ($rates = get_records("forum_ratings", "post",
$postid)) {
// Process each rating in turn
65
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
MAL: $b = $a;
BIEN: $b = clone($a);
Cdigo 14: Ejemplo de copia correcta de un objeto
Si lo que se quiere copiar no es un objeto, pero puede contener objetos (p. ej. un
array de objetos) utilizaremos la funcin fullclone() en su lugar.
66
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
El resto de las tablas asociadas con un mdulo que contiene informacin sobre
cualquier otra cosa (p.ej. respuestas), deberan ser llamadas modulo_respuestas
(en plural).
Los nombres de las tablas y de los campos tienen que evitar el uso de palabras
reservadas por las bases de datos. Esto se debe comprobar antes de crearlas.
Los nombres de los campos (columnas) deberan ser sencillos y cortos,
siguiendo las mismas reglas que los nombres de las variables.
Cuando sea posible, las columnas que contengan una referencia al campo id de
otra tabla (por ejemplo, modulo) debera ser llamado moduloid. (esta norma es
nueva y no es seguida por algunas tablas antiguas).
Los campos booleanos sern implementados como enteros cortos (por ejemplo,
INT4) con los valores 0 o 1, para permitir la futura expansin de los valores si
fuera necesario.
La mayora de las tablas tienen que tener un campo timemodified (INT10) que
ser actualizado con la fecha actual (timestamp de UNIX) obtenida con la
funcin time() de PHP.
Debemos definir siempre un valor por defecto para cada campo (y hacer que
tenga sentido).
Cada tabla debe comenzar con el prefijo de la base de datos ($CFG->prefix). En
muchos casos esto es gestionado automticamente. Adems, bajo PostgreSQL,
el nombre de cada ndice debe empezar tambin con el prefijo.
Para garantizar la compatibilidad entre bases de datos, se deben seguir las
reglas siguientes sobre el uso del comando AS (solo si necesitamos alias en
tablas/campos, por supuesto):
o No debemos utilizar el comando AS para alias de tablas.
o Utilizaremos el comando AS para alias de campos (columnas).
Nunca debemos crear UNIQUE KEYs (restricciones) para nada. En su lugar
utilizaremos UNIQUE INDEXes. En el futuro, si se decide aadir integridad
referencial a Moodle y si se necesitan UNIQUE KEYs, sern utilizadas, pero no
por ahora. El editor XMLDB permite especificar tanto restricciones UNIQUE
como FOREIGN (y eso es bueno, teniendo el XML bien definido), pero solo los
ndices subyacentes sern realmente generados en la base de datos.
El uso de UNIQUE KEYs creadas en el Editor XMLDB (punto anterior) solo
debe ser definido si el campo/campos van a ser el objetivo para alguna
FOREIGN KEY (a nivel de editor). En caso contrario, las crearemos como
UNIQUE INDEXes.
Las tablas asociadas con un bloque deben seguir las siguientes convenciones en
sus nombres: $CFG->prefix + block_ + nombre del bloque + aadidos. Por ejemplo,
asumiendo que $CFG->prefix es 'mdl_', todas las tablas para el bloque
"rss_client" debern empezar por 'mdl_block_rss_client' (siendo posible aadir
67
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
68
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
69
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
70
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Estos documentos presentan una estructura flexible, con unos campos bsicos,
que deben ampliarse para dar funcionalidad al mdulo.
Para que Moodle reconozca nuestro mdulo de actividad este debe seguir dicha
estructura de archivos (algunos necesarios y otros opcionales). Para ello, a partir de
este momento vamos a considerar que nuestro mdulo de prueba va a llamarse
nombremodulo. Por tanto, y teniendo en cuenta que los archivos en negrita son los
archivos obligatorios que deberemos tener en nuestro mdulo, la estructura sera la
siguiente:
/ raz de Moodle.
71
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Como se coment en la gua de estilo, todos los archivos PHP deben incluir el
archivo config.php, ubicado en el directorio base de Moodle.
5.3.1.1 access.php
El fichero access.php define las capacidades de los usuarios en funcin a los roles
para este mdulo, su formato es el siguiente:
<?php
$mod_nombremodulo_capabilities = array('mod/
nombremodulo:nombre_capacidad_primera' => array(
///Tipo de capacidad
72
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
En cuanto a los permisos, existen roles generales, aplicables a todo el sitio, que
se pueden consultar y modificar con una cuenta de administrador en Usuario->
Permisos y por otro lado cada curso tiene sus roles locales que ha de ser configurados
cuando se crea un curso desde una cuenta de administrador del curso (vale la de
administrador del sitio) en el apartado Asignar Roles. Este modelo permite que el
mismo usuario sea alumno, profesor, administrador, etc dependiendo del curso en el
que se encuentre.
73
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.3.1.2 install.xml
Este fichero XML define las tablas de la base de datos que tendr nuestro
mdulo, establece una gramtica para la creacin de tablas y hacer as Moodle ms
portable, frente las anteriores versiones, que definan un archivo para cada tipo de base
de datos. install.xml define el tipo de datos, longitud, nombre y, en general, todos los
campos que pueden definirse con sentencias SQL. La creacin de las tablas se lleva a
cabo con la instalacin del mdulo.
74
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
75
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
</STATEMENTS>
</XMLDB>
Cdigo 16: Ejemplo de fichero install.xml
Es por ello, y por las restricciones en los tipos de los campos a definir y sus
valores permitidos por los que se recomienda el uso del editor de XMLDB que tiene la
plataforma.
Al igual que las tablas y los campos, los ndices y las claves, si se aaden y si
hay ms de una, hay que enlazarlos.
5.3.1.3 upgrade.php
Este fichero mantiene un registro de los cambios que es necesario realizar entre
distintas versiones del mdulo.
Los comandos que se usen en este fichero deben ser neutrales en cuanto a la
base de datos, usando las funciones definidas en lib/ddlib.php.
<?php
function xmldb_nombremodulo_upgrade($oldversion=0) {
global $CFG, $THEME, $db;
$result = true;
/// Actualizacin necesaria si la versin actual es
/// anterior a la del 01 de Abril de 2008
if ($result && $oldversion < 2008040100) {
///Introducir actualizaciones a realizar
}
/// Actualizacin necesaria si la versin actual es
/// anterior a la del 12 de Abril de 2008
76
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.3.1.4 icon.gif
Este archivo es el icono que representa a un mdulo. Debe ser un archivo GIF
de tamao 16x16 pxeles. Por ejemplo, se ha utilizado este icono para el mdulo
Gruposlab:
5.3.1.5 index.php
El fichero index.php lista todas las instancias de una actividad que estn
presentes en un determinado curso. Normalmente se muestran en formato tabular con
una fila por cada instancia de la actividad y con columnas para los campos name, intro
y otros campos propios de cada mdulo.
5.3.1.6 lib.php
lib.php es la biblioteca de funciones del mdulo a desarrollar, en ella se
implementar toda (o casi toda) la funcionalidad del mdulo. Existen un conjunto de
normas que se deben seguir a la hora de desarrollar esta biblioteca, de las que
destacamos las siguientes:
77
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
78
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.3.1.7 mod_form.php
Como mostraba el esquema de ficheros de un mdulo, este es uno de los
ficheros obligatorios, mediante el cual se configurar cada instancia del mdulo que se
aada a un curso.
<?php
require_once ('moodleform_mod.php');
79
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
//----------------------------------------------------------------
/// Aadimos el conjunto de campos general, donde se muestran todas las
///opciones comunes
$mform->addElement('header', 'general', get_string('general', 'form'));
/// Aadimos el campo estndar nombre
$mform->addElement('text', 'name', get_string('nombremoduloname',
'nombremodulo'), array('size'=>'64'));
$mform->setType('name', PARAM_TEXT);
$mform->addRule('name', null, 'required', null, 'client');
/// Aadimos los campos opcionales intro e introformat
$mform->addElement('htmleditor', 'intro',
get_string('nombremodulointro', 'nombremodulo'));
$mform->setType('intro', PARAM_RAW);
$mform->addRule('intro', get_string('required'), 'required',
null, 'client');
$mform->setHelpButton('intro', array('writing', 'richtext'), false,
'editorhelpbutton');
//----------------------------------------------------------------
/// Aadimos el resto de opciones del modulo en este conjunto de
/// campos o en otro si resultara ms lgico
$mform->addElement('static', 'label1', 'nombremodulosetting1', 'Aqu
van los campos de tu mdulo, Reemplazame!');
$mform->addElement('header','nombremodulofieldset',
get_string('nombremodulofieldset', 'nombremodulo'));
$mform->addElement('static', 'label2', 'nombremodulosetting2', 'Aqu
van los campos de tu mdulo, Reemplazame!');
//---------------------------------------------------------------
// Aadimos elementos estndar, comunes a todos los mdulos
$this->standard_coursemodule_elements();
//----------------------------------------------------------------
// Aadimos los botones estndar, comunes a todos los mdulos
$this->add_action_buttons();
}
}
?>
Cdigo 18: Ejemplo de fichero mod_form.php
80
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.3.1.8 version.php
Este archivo es importante porque a la hora de modificar las tablas de la base de
datos, a travs de db/upgrade.php, o aadir/eliminar/modificar el archivo db/access.php,
durante el desarrollo del mdulo (que ya ha sido instalado en Moodle), fuerza a
Moodle para que edite las tablas y realice los cambios necesarios. Lo hace comparando
la versin actual con la versin anterior. Si la versin actual es posterior a la previa,
Moodle hace los cambios y actualiza a la nueva versin.
Su formato es el siguiente:
<?php
$module->version = 2007040200; // Versin actual del mdulo (Formato
YYYYMMDDX)
$module->cron = 0; // Intervalo de tiempo, en segundos, en el que cron
//debercomprobar la versin de este mdulo
?>
Cdigo 19: Ejemplo de fichero version.php
5.3.1.9 view.php
El fichero view.php es, seguramente, junto con el fichero lib.php, uno de los ms
importantes a la hora de desarrollar un mdulo de actividades para Moodle. En l se
define el contenido que se mostrar a cada usuario de la actividad mediante el uso de
capacidades o permisos.
<?php
/// Remplazar nombremodulo por el nombre del mdulo a desarrollar
///Include que todos los ficheros php deben tener
require_once("../../config.php");
require_once("lib.php");
///Estas lneas se establecen por defecto para obtener el id de la
instancia actual
$id = optional_param('id', 0, PARAM_INT);
$a = optional_param('a', 0, PARAM_INT);
///Haciendo comprobaciones sobre los parmetros pasados
if ($id) {
81
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
82
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
print_footer($course);
?>
Cdigo 20: Ejemplo de fichero view.php
Casi todas las libreras del ncleo se incluyen en el flujo de ejecucin cuando se
carga el archivo config.php mediante la inclusin de /lib/setup.php. El fichero setup.php
realiza un include de las principales libreras de Moodle.
83
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.4.1 accesslib.php
Esta librera describe funciones para el soporte de capacidades. Las tres
funciones que aparecen a continuacin servirn para ilustrar el tipo general de las
funciones de la librera. No obstante, se recomienda consultar su extensa
documentacin para obtener informacin sobre otras funciones que dan soporte al
sistema de capacidades.
5.4.1.1 require_capability
Esta funcin comprueba que el usuario tiene cierta capacidad. Si no la tiene, la
pgina deja de ejecutarse mostrando un mensaje de error estndar.
5.4.1.2 has_capability
Esta funcin devolver true si un usuario $userid, por defecto el usuario que est
accediendo al mdulo, tiene la capacidad $capability en el contexto $context.
Parmetros:
5.4.1.3 get_context_instance
Devuelve el contexto de una instancia como un objeto.
get_context_instance($contextlevel=NULL, $instance=SITEID)
Cdigo 23: Funcin get_context_instance
Parmetros:
84
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.4.2 datalib.php
En esta librera se encuentran las funciones para el manejo de la informacin de
la base de datos. Con un funcionamiento similar a la funcin get_users(), que se detalla
a continuacin, datalib.php implementa funciones para obtener los cursos del sitio o de
un determinado usuario, los mdulos de un determinado curso, los usuarios que han
sido confirmados en el sistema, los distintos grupos establecidos, los usuarios que
conforman cada grupo y ms informacin similar, todas ellas documentadas en el
archivo datalib.php.
5.4.2.1 get_users
Esta funcin obtiene un subconjunto de los usuarios del sitio.
Parmetros:
$get: Si se establece a false, solo retornar una cuenta del nmero de registros
coincidentes.
$search: Una determinada cadena a buscar.
$confirmed: Si se establece a true, solo devolver los usuarios que hayan sido
confirmados en el curso.
$exceptions: Una lista en forma de array conteniendo ciertos identificadores de
usuario a ignorar.
$sort: Fragmento SQL para la ordenacin de los registros a devolver.
$firstinitial: Inicial del primer nombre de los usuarios a buscar.
$lastinicial: Inicial del apellido de los usuarios a buscar.
$recordsperpage: Nmero de registros a obtener en cada llamada, para evitar
saturacin.
85
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.4.3 ddllib.php
En esta librera se pueden encontrar las funciones para el manejo de la
estructura de la base de datos. Proporciona funcionalidades avanzadas para hacer la
manipulacin de la estructura de la base de datos lo ms portable posible. Dichas
estructuras deben modificarse usando funciones de esta biblioteca y nunca con
sentencias propias de determinada base de datos.
5.4.4 dmllib.php
En esta librera se encuentran las funciones necesarias para obtener, borrar,
actualizar, contar e insertar registros en la base de datos. Las funciones que se
describirn a continuacin sern las que el desarrollador use en un 99% de los casos.
Para obtener documentacin de funciones menos usuales, como de costumbre, se debe
consutlar la documentacin del archivo.
5.4.4.1.1 execute_sql
Ejecuta una sentencia SQL e imprime el resultado si se especifica.
execute_sql($command, $feedback=true)
Cdigo 25: Funcin execute_sql
Parmetros:
86
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Para acceder a las tablas de la base de datos debemos precederlas del prefijo de
todas las tablas de Moodle, esto se consigue introduciendo el texto {$CFG-
>prefix}nombre_tabla (sin comillas).
5.4.4.2.1 record_exists
Devolver true si existe en la tabla $table al menos un registro cuyos valores en
los campos $fieldx se correspondan con $valuex.
Parmetros:
5.4.4.2.2 record_exists_select
Devolver true si existen registros en la tabla $table cuyos valores se
correspondan con el fragmento WHERE pasado como parmetro.
record_exists_select($table, $select='')
Cdigo 27: Funcin record_exists_select
Parmetros:
5.4.4.2.3 record_exists_sql
Devolver true si la sentencia SQL pasada como parmetro retorna algn
resultado.
record_exists_sql($sql)
Cdigo 28: funcin record_exists_sql
Parmetros:
87
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.4.4.3.1 count_records
Devolver el nmero de registros que haya en la tabla $table cuyos valores en
los campos $fieldx se correspondan con $valuex.
Parmetros:
5.4.4.3.2 count_records_select
Devolver el nmero de registros que existen en la tabla $table cuyos valores se
correspondan con el fragmento WHERE pasado como parmetro.
Parmetros:
5.4.4.3.3 count_records_sql
Devolver el resultado de la ejecucin de la sentencia SQL.
count_records_sql($sql)
Cdigo 31: Funcin count_records_sql
Parmetros:
88
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.4.4.6.1 insert_record
Inserta un registro pasado como objeto, cuyos nombres de atributos se
correspondern con los campos del registro, en la tabla pasada como parmetro.
Parmetros:
5.4.4.6.2 update_record
Actualiza un registro en la tabla cuyo nombre es pasado como parmetro.
update_record($table, $dataobject)
Cdigo 33: Funcin update_record
Parmetros:
89
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
5.4.5 weblib.php
En esta librera se encuentran las funciones para la creacin de elementos
HTML y salida web en general.
5.4.6 moodlelib.php
En este fichero pueden encontrarse todo tipo de funciones de propsito general
para Moodle. Cconviene que el desarrollador novel las ojee antes de comenzar su
trabajo sin llegar a prestarles una atencin mayor de lo conveniente para no
complicarse demasiado.
90
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
PEAR: Las siglas PEAR provienen de PHP Extension and Application Repository
(Repositorio de aplicaciones y extensiones PHP). Por tanto, no es una nica librera,
sino un conjunto de herramientas para generar y actualizar libreras PHP y
mdulos.
ADOdb: ADOdb es una librera de bases de datos que proporciona una interfaz
unificada de programacin para una gran variedad de bases de datos. A pesar
de que Moodle soporta un conjunto bsico de bases de datos para su respaldo
directo, ADOdb realmente resulta muy til en las bases de datos soportadas
para la autenticacin externa contra una base de datos y los plugins de
matriculacin.
YUI: La librera de la interfaz de usuario de Yahoo! (Yahoo! user interface) est
escrita en JavaScript y se usa para crear ricas interfaces web de usuario
utilizando AJAX, DOM y DHTML. La interfaz de edicin de cursos de Moodle
utiliza esta librera para poder colocar elementos en el curso simplemente
arrastrndolos y soltndolos.
XMLDB: XMLDB se aadi a Moodle como parte de la iniciativa para agregar
soporte para Microsoft SQL y Oracle. XMLDB convirti todos los ficheros de
configuracin de la base de datos en esquemas XML, de manera que los mismos
ficheros pudieran ser usados por los cuatro tipos de bases de datos soportadas
hasta el momento. De esta manera se extendieron las capacidades ofrecidas por
ADOdb, proporcionando un nico cdigo base para acceder a todas las bases
de datos soportadas, mientras se segua manteniendo el rendimiento.
Desarrollo del formulario para configurar cada nueva instancia del mdulo
(fichero mod_form.php).
91
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
92
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
$options=array('startyear'=>date('Y'),'optional'=>false);
$mform->addElement('date_time_selector', 'start_date',
get_string('startdate', 'prueba'), $options);
Ese cdigo es todo lo que necesitamos para aadir el campo start_date (el
control de seleccin de fecha) en la configuracin de la instancia. En caso de que no
existan, habra que crear el campo start_date en la tabla prueba de la base de datos y la
cadena startdate en el fichero de idioma del mdulo
93
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
94
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
95
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Para desarrollar un fichero de idioma para nuestro mdulo que sea espaol
internacional (es_utf8), tendremos que crear un fichero con el mismo nombre que el
mdulo y extensin .php en la carpeta lang/es_es_utf8. Por ejemplo, si el mdulo se
denomina prueba, el fichero se llamar prueba.php y estar en la carpeta
moodle/mod/prueba/lang/es_es_utf8, compuesto de lneas de texto cortas denominadas
cadenas (string), como se muestra a continuacin:
//moodle
$string[modulename] = Prueba;
$string[modulenameplural] = Pruebas;
print_string(startdate, prueba);
get_string(startdate, prueba);
96
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
<?php
$mod_inicio_capabilities = array(
'mod/prueba:view' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_MODULE,
'legacy' => array(
'guest' => CAP_ALLOW,
'student' => CAP_ALLOW,
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'admin' => CAP_ALLOW
)
),
'mod/prueba:grade' => array(
'captype' => 'write',
'contextlevel' => CONTEXT_MODULE,
'legacy' => array(
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'admin' => CAP_ALLOW
)
97
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
)
);
?>
98
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
<MOD>
<ID>80</ID>
<TYPE>prueba</TYPE>
<INSTANCE>1</INSTANCE>
<ADDED>1250743636</ADDED>
<SCORE>0</SCORE>
<INDENT>0</INDENT>
<VISIBLE>1</VISIBLE>
<GROUPMODE>1</GROUPMODE>
<GROUPINGID>0</GROUPINGID>
<GROUPMEMBERSONLY>0</GROUPMEMBERSONLY>
<IDNUMBER>$@NULL@$</IDNUMBER>
<ROLES_OVERRIDES>
</ROLES_OVERRIDES>
99
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
<ROLES_ASSIGNMENTS>
</ROLES_ASSIGNMENTS>
</MOD>
100
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
101
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
102
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
103
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
tanto los profesores como los estudiantes interacten con l para lograr el propsito de
repartir los grupos, teniendo en cuenta tanto las preferencias de los profesores como de
cada uno de los alumnos.
104
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
En nuestro caso, la primera capa sern los ordenadores de los usuarios, donde
estos podrn interactuar con la interfaz Web de Moodle.
105
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
encuentren alojadas en el mismo servidor, o incluso que las tres capas se encuentren en
el mismo equipo si se trata de un entorno de desarrollo.
6.2.1.1 Estudiante
106
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.2.1.1.2 RQF-02_Inscripcin
IDENTIFICADOR RQF-02
VERSIN 1.0 (12/7/2010)
AUTOR M Jess Garca
TIPO Funcional
DESCRIPCIN Inscripcin: El mdulo permitir al alumno matricularse en un
grupo de laboratorio.
PRIORIDAD Muy Alta
COMENTARIOS Se le permitir seleccionar varias opciones en orden de
preferencia.
Tabla 2: RQF-02_Inscripcin
107
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.2.1.2 Profesor
108
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
109
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
110
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.2.1.3 Administrador
111
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.2.1.4 Sistema
112
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
113
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
114
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.2.4.3 RQS-03_Inscribirse
IDENTIFICADOR RQS-03
VERSIN 1.0 (17/7/2010)
AUTORES M Jess Garca
TIPO Seguridad
DESCRIPCIN Inscribirse. Se crear una capacidad que permita inscribirse a
los grupos de laboratorio.
PRIORIDAD Alta
COMENTARIOS Esta capacidad estar permitida para los siguientes roles:
'student'
Tabla 29: RQS-03_Inscribirse
115
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
116
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.3.1.1 Entidades
Las entidades que componen el modelo son las siguientes:
117
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.3.1.2 Relaciones
En este apartado describiremos las diferentes relaciones que se muestran en el
diagrama E/R.
118
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.3.1.3 Atributos
Entidad gruposlab:
o id: Identificador de la instancia y clave primaria de la entidad. Se trata
de un entero de 10 dgitos.
o course: Identificador del curso en el que se encuentra la instancia. Es un
entero.
o name: Nombre que se le da a la instancia. Es una cadena de caracteres.
o start_date: Fecha en la que comenzar el periodo de inscripcin de los
grupos de laboratorio. Es un entero.
o end_date: Fecha en la que terminar el periodo de inscripcin de los
grupos de laboratorio. Es un entero.
o groups_number: Nmero de grupos de laboratorio que tendrn
disponibles los alumnos para elegir entre ellos. Es un entero.
o intro: Descripcin de la actividad Grupos de laboratorio. Es un campo
de texto.
o introformat: Formato del campo intro. Es un entero.
o timecrated: Fecha de creacin de la instancia. Es un entero.
o timemodified: Fecha de modificacin de la instancia. Es un entero.
o configured: Este campo indica si el profesor ha configurado ya o no los
grupos de laboratorio. Es un entero.
o distributed: Indica si se ha producido ya el reparto automtico de los
alumnos en los grupos de laboratorio. Es un entero.
o full_groups: Indica si se han tratado de inscibir en los grupos ms
alumnos de los que entran en el total de las plazas ofertadas por el
profesor.
Entidad gruposlab_groups:
o id: Identificador del grupo de laboratorio y clave primaria de la entidad.
Es un entero.
o id_instance: Identificador de la instancia del mdulo a la que pertenece
un grupo de laboratorio. Es un entero.
o group_name: Nombre del grupo de laboratorio. Es una cadena de
caracteres.
o id_teacher: Identificador del profesor que impartir este grupo de
laboratorio. Es un entero.
o weekday: Da de la semana en que se impartir el grupo de laboratorio.
Es un entero que puede tomar varios valores (0-lunes, 1-martes, 2-
mircoles, etc.).
o repetition: Indica la periodicidad con la que se impartir el grupo de
laboratorio. Es un entero que puede tomar varios valores (0-semanal, 1-
quincenal, 2-mensual).
119
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
120
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Como podemos ver en el diagrama, contamos con tres tipos de usuario que
podrn realizar distintas acciones en la aplicacin. El sistema comprobar el rol de cada
usuario para saber qu tareas puede o no realizar. Los actores que aparecen en este
diagrama son los que definamos en el apartado Identificacin de usuarios, con las
funcionalidades que all se detallaban.
Estas funcionalidades estn reflejadas en los casos de uso que se pueden ver en
la imagen, que son los siguientes:
121
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Como se puede ver en el diagrama, tambin existen relaciones entre los actores
del sistema y los diferentes grupos de acciones (casos de uso) que pueden llevar a cabo.
Adems de estas relaciones tambin existen relaciones entre el sistema de validacin de
usuarios y todos los dems casos de uso que hacen uso de este sistema para controlar
el acceso de los actores a las acciones que pueden realizar.
Como nos muestra el diagrama, las acciones incluidas en este caso de uso las
puede realizar tanto el profesor del curso como el administrador del sistema.
122
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
123
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
En cuanto a las relaciones que nos muestra este diagrama, podemos ver que no
es posible modificar la configuracin de un grupo si este no ha sido previamente
configurado.
Adems podemos ver que existe una relacin de extensin entre Descargar lista
de alumnos de un grupo y Ver alumnos de un grupo. Esto significa que el caso de uso
Descargar lista de alumnos de un grupo extiende la funcionalidad ofrecida por Ver alumnos
de un grupo, permitiendo descargar la informacin adems de verla por pantalla.
124
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.3.2.4 Avisos
A continuacin se muestra el diagrama de casos de uso del sistema de avisos:
125
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
6.3.2.5 Inscripcin
A continuacin podemos ver el diagrama de casos de uso del sistema de
inscripcin:
126
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
127
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
128
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
129
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Una vez que se ha completado el proceso, los estudiantes que no han sido
inscritos en ningn grupo sern asignados aleatoriamente en alguno de los grupos que
tengan plazas libres. Por ltimo el sistema enviar un correo electrnico a los
profesores informando de que se ha producido el reparto de grupos de laboratorio.
Listados: Son unas tablas donde se muestran los diferentes datos de una
consulta a la base de datos.
Formularios de datos: Pantallas con una serie de campos de texto para
introducir datos.
De este modo, las interfaces con las que contar el sistema son las siguientes:
130
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Listado Formulario
Configurar/editar instancia X
Listado de instancias X
Configurar/editar grupos de laboratorio X
Listado de alumnos de un grupo X
Agregar/eliminar alumnos de un grupo X X
Inscribirse/editar inscripcin X
Tabla 31: Interfaces de usuario
Configurar/editar instancias:
Mediante el formulario que aparece en la imagen inferior el usuario
podr introducir los campos necesarios para configurar una instancia del
mdulo Gruposlab. Se divide en tres bloques de elementos.
o Ajustes generales: en esta seccin introduciremos el nombre que le
daremos a la instancia y una descripcin. Ambos campos son
obligatorios.
o Ajustes particulares del mdulo: Aqu se debe indicar el nmero de
grupos de laboratorio que se crear para los alumnos, as como las
fechas de inicio y fin del periodo de inscripcin. Mientras este periodo
est abierto los alumnos podrn apuntarse a los grupos de laboratorio.
Si estamos tratando de editar la instancia, debemos tener en cuenta que
una vez que haya comenzado el periodo de matriculacin los cambios
que se hagan sobre la fecha de inicio no se aplicarn. El campo donde se
indica el nmero de grupos es obligatorio.
o Ajustes comunes del mdulo: Este bloque es comn a todos los
mdulos de Moodle. Aqu podremos seleccionar si queremos que el
mdulo aparezca visible o no para los alumnos. El campo ID number lo
utiliza el sistema de calificaciones de Moodle. Como el mdulo
Gruposlab no utiliza calificaciones, este campo se puede dejar en blanco.
131
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Listado de instancias:
En este listado el usuario podr ver los grupos que ha configurado
dentro de su curso. Si pincha sobre uno de ellos le llevar a la pgina principal
de la instancia.
132
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
133
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Inscribirse/editar inscripcin:
En este formulario el alumno obtendr informacin referente a cada
grupo disponible y, mediante listas desplegables, podr seleccionar sus
opciones por orden de preferencia. Si hay uno o dos grupos de laboratorio
disponibles, solo se le permitir elegir su primera opcin. En caso de haber dos
grupos la opcin no elegida se considerar automticamente la segunda opcin.
Si existen tres o ms grupos de laboratorio, el alumno tendr tres listas
desplegables donde podr elegir su primera, segunda y tercera opcin.
Independientemente del nmero de grupos disponibles, el alumno no podr
elegir ms de tres opciones. Cabe destacar que aunque el alumno seleccione tres
veces la misma opcin, no aumentan sus posibilidades de ser admitido en ese
grupo de laboratorio.
134
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
135
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
gruposlab: Directorio que contiene todos los archivos y carpetas del mdulo.
o edit_form.php: Formulario para editar la configuracin de los grupos
de laboratorio.
o groups_form.php: Formulario para configurar los grupos de
laboratorio.
o mod_form.php: Formulario para configurar la instancia del mdulo.
o options_form.php: Formulario para inscribirse a los grupos de
laboratorio.
o index.php: Muestra el listado de instancias del mdulo.
o members.php: Muestra la pgina de agregar/quitar alumnos de los
grupos de laboratorio.
o versin.php: Contiene el nmero de versin actual del mdulo.
o view.php: Pgina principal del mdulo.
o lib.php: Librera de funciones del mdulo.
o icon.gif: Icono grfico del mdulo.
o db: Directorio que contiene todos los ficheros relacionados con la base
de datos.
access.php: Fichero de permisos.
install.xml: Declaracin de las tablas de la base de datos.
upgrade.php: Instrucciones de actualizacin de la base de datos.
o lang: Directorio que contiene los ficheros de cadenas de idioma y de
ayuda. Habr una subcarpeta por cada idioma soportado por el mdulo.
en_utf8: Carpeta que contiene los archivos de ayuda y las
cadenas de idioma en ingls.
gruposlab.php: Cadenas de idioma del mdulo en ingls.
help: Directorio que contiene los ficheros de ayuda del
mdulo en ingls.
es_es_utf8: Carpeta que contiene los archivos de ayuda y las
cadenas de idioma en espaol de Espaa.
gruposlab.php: Cadenas de idioma del mdulo en espaol
de Espaa.
help: Directorio que contiene los ficheros de ayuda del
mdulo en espaol de Espaa.
136
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
137
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
138
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
139
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Como se puede ver en los resultados que muestra la tabla anterior, todas las
pruebas realizadas con la ltima versin del mdulo Gruposlab han sido positivas. Por
lo tanto podemos afirmar que la aplicacin cumple con todos los requisitos que se
especificaban en el apartado de Anlisis de requisitos.
140
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
7 Manuales de usuario
141
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
El resto de campos son estndar para todos los mdulos de Moodle y se pueden
dejar con los valores por defecto.
142
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Las opciones que podemos configurar para cada grupo de laboratorio son las
siguientes:
Nombre del grupo: En este campo se debe poner el nombre que queremos dar a
este grupo, por ejemplo: Grupo A o Grupo Maana.
Profesor: Al pinchar en esta lista desplegable aparecern todos los profesores
que estn dados de alta en el curso. Se debe seleccionar cul de los profesores
ser el encargado de impartir ese laboratorio.
Da: En esta lista se debe seleccionar el da de la semana que se impartir el
laboratorio.
Hora de comienzo: Seleccionaremos la hora a la que comienza el laboratorio.
Hora de fin: Aqu pondremos la hora a la que finaliza. La hora de fin debe ser
posterior a la hora de inicio. Si por error esto no se configura as, el grupo no se
crear.
Repeticin: En este campo podremos seleccionar si el laboratorio se imparte
una vez a la semana, cada quince das o una vez al mes.
143
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
144
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
145
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
imagen inferior (Ilustracin 50), desde la que podr administrar los alumnos de dicho
grupo.
146
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Grupos de prcticas
Grupo A
Profesor: Profesor1 Pruebas
Horario: Semanal, Lunes 8:00 - 9:00
Lugar: Laboratorio EL1
N Alumnos: 5
ALUMNOS
# Apellidos Nombre E-mail Comentarios
1 Pruebas Alumno9 alumno9@uah.es
2 Pruebas Alumno10 alumno10@uah.es
3 Pruebas Alumno17 alumno17@uah.es
4 Pruebas Alumno19 alumno19@uah.es
5 Pruebas Alumno20 alumno20@uah.es
147
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
El alumno debe tener en cuenta que seleccionar varias veces el mismo grupo de
laboratorio no aumenta sus posibilidades de ser asignado a dicho grupo. Si el alumno
selecciona varias veces el mismo grupo y no es posible matricularlo en l, el sistema le
asignar otro de los grupos disponibles de forma aleatoria.
148
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
149
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Si pulsa sobre el botn Cambiar grupos, volver a una pgina como la anterior,
donde de nuevo podr seleccionar sus opciones en el orden que desee.
150
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
Este directorio normalmente se ubica en la ruta por defecto, que suele ser la
siguiente:
/var/www/moodle/mod
151
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
152
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
153
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
/var/www/moodle/mod/gruposlab.
154
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
8 Presupuesto
A continuacin se detallan los distintos apartados que constituyen el
presupuesto del proyecto.
COSTES DE SISTEMAS
Concepto Coste
Hardware 99,5
Software 635
Consumibles 86,36
TOTAL: 820,86
Tabla 33: Costes de sistemas
HARDWARE
Concepto Coste Duracin Tiempo de uso Total
Equipo 700 4 aos 6 meses 87,5
desarrollo
Impresora Color 400 4 aos 1 mes 12
TOTAL: 99,5
Tabla 34: Costes de Hardware
Los requisitos mnimos de hardware deseables, tanto para el equipo como para
la impresora, son los siguientes:
Equipo de desarrollo:
o Procesador Intel Pentium 4, 2 GHz.
o 1 Gb Memoria RAM
o 40 Gb disco duro
o Conexin a internet
Impresora lser a color:
o Velocidad de impresin en color (normal, A4): 30 ppm
o Calidad de impresin en color (ptima): Hasta 1200 x 600 ppp
o Memoria de serie: 256 Mb
155
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
SOFTWARE
Concepto Coste
Licencia Windows 7 319
Licencia Ubuntu 10.10 0
Licencia Microsoft Office 2010 139
Licencia VMware Workstation 177
Licencia Apache 0
Licencia MySQL 0
Licencia PHP 0
Licencia Paint.net 0
Licencia Notepad++ 0
Licencia NX 0
Licencia Moodle 0
TOTAL: 635
Tabla 35: Costes de Software
RECURSOS CONSUMIBLES
Concepto Precio Duracin Uso Total
Tner Negro 190 10.500 pginas 200 pginas 3,62
Tner Amarillo 258 7.000 pginas 200 pginas 7,38
Tner Cian 258 7.000 pginas 200 pginas 7,38
Tner Magenta 258 7.000 pginas 200 pginas 7,38
Papel 15 5.000 pginas 200 pginas 0,6
Encuadernacin 60 60
TOTAL: 86,36
Tabla 36: Costes de consumibles
156
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
p porcentaje
P Presupuesto de Ejecucin Material
C Coeficiente reductor
157
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
HONORARIOS FACULTATIVOS
TOTAL: 928,96
Tabla 42: Honorarios facultativos
TOTAL PRESUPUESTO
Concepto Coste
Presupuesto de Ejecucin por contrata 16.192,45
Honorarios 928,96
SUBTOTAL 17.121,41
IVA (18%) 3.081,85
TOTAL: 20.203,26
Tabla 43: Presupuesto total
158
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
159
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
debido al imitaciones temporales, pero que sera bueno tener en cuenta para futuras
versiones de la aplicacin.
Entre ellos, cabe destacar que con la entrada de las universidades espaolas en
el Espacio Europeo de Educacin Superior (conocido como Plan Bolonia) no slo se
forman grupos (ms o menos grandes) para trabajar en el laboratorio, tal y como cubre
este proyecto como necesidad directamente planteada por el Departamento de
Matemticas de la Universidad de Alcal. Sin embargo, tambin hay que formar
grupos para hacer trabajos, resolver bloques de problemas, exponer bloques de
contenidos en clase, trabajos de campo, etc. Para todas estas situaciones sera muy til
disponer de una herramienta para automatizar en la medida de lo posible la creacin y
gestin de grupos. Por tanto sera interesante tratar de generalizar el mdulo Gruposlab
tanto como fuera posible para abarcar todos estos problemas, realizando los cambios
oportunos (si fueran necesarios).
160
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
161
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
10 Bibliografa
AGGARWAL, A. K. & BENTO, R. (2000). Web-based education. En A.
Aggarwal, (Ed.), Web Based Learning and teaching technologies: opportunities and
challenges (pp. 198-215). Hercshey/London: Idea Group.
AVGERIOU, P., PAPASALOURUS, A., RETALIS, S. (2001). Web-Based
Learning Environments: Issues, Trends, Challenges. En Proceedings of the 1 st
IOSTE Symposium in Southern Europe, Science and Technology Education .
(paralimmi, Cyprus , May 2001)
BALLESTER, A. (2002). El Aprendizaje Significativo en la Prctica. Cmo hacer
el Aprendizaje Significativo en el Aula. Espaa
BARTOLOM, A. (2004). Blended Learning, Conceptos Bsicos. Pxel-Bit
Revista de Medios y Educacin, 23, 7-20.
BATES, T. (A.W.) (2000) Managing Technological Change. Strategies for
College and University Leaders. San Francisco: Jossey-Bass.
BELANGER, F Y JORDAN, D. H. (2000). Evaluation and Implementation Of
Distance Learning: Technologies Tools and Techniques. Virginia Polytecnnic
Institute and State University, USA
BRIET PLANELLS, D. (2006). Un reto en la Formacin del Profesorado.
Ponencia presentada al VI Congreso Internacional Virtual de Educacin CIVE
2006, Espaa.
BRODSKY, M. W. (2003). Four Blended Learning Blunders and How to Avoid
Them. Learning Circuits, Noviembre 2003.
COMEZAA, O. & GARCA, F. (2005). Plataformas para Educacin Basada en
Web: Herramientas, Procesos de Evaluacin y Seguridad. Informe Tcnico DPTOIA-
IT-2005-1. Salamanca: Departamento de Informtica y Automtica, Universidad
de Salamanca.
DODGE, B. (2001). FOCUS: Five rules for writing a great webquest. Learning &
Leading with Technology, 28(8). Recuperado en lnea el 3 de junio de 2008, en
http://webquest.sdsu.edu/documents/focus.pdf
DUART, J. & LUPIEZ, F. (2005). La perspectiva organizativa del e-learning.
Revista de Universidad y Sociedad del Conocimiento Vol.2 - N 1 / Mayo de
2005. Recuperado en lnea el 3 de junio de 2008, de www.uoc.edu/rusc
EDUTOOLS. (2010). Compare Management Systems . Recuperado en lnea el 7
noviembre 2010, de http://www.edutools.info/course/compare/all.jsp.
ESCORCIA G. (2001). La Importancia de la Tecnologa en la Educacin.
GARCA PEALVO, F.J. (s/f) Estado actual de los sistemas e-learning.
Recuperado en lnea el 7 de noviembre de 2010, en
163
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
http://campus.usal.es/~teoriaeducacion/rev_numero_06_2/n6_02_art_garcia_pe
nalvo.htm
GARCA PEALVO, F. J. y GARCA CARRASCO, J. (2001) Los espacios
virtuales educativos en el mbito de Internet: Un refuerzo a la formacin
tradicional, Teora de la Educacin. Educacin y Culturaen la Sociedad de la
Informacin. Recuperado en lnea el 7 de noviembre de 2010, en
http://www3.usal.es/~teoriaeducacion/rev_numero_03/n3_art_garcia-
garcia.htm
GMEZ, J. (2006). Moodle 1.5 Manual de Consulta. Propuesta Pedaggica.
Valladolid: GNU Press.
GONZLEZ DE FELIPE, A.T. (s/f). Gua de apoyo para el uso de Moodle 1.9.4.
Usuario desarrollador. EUITIO, Universidad de Oviedo. Recuperado en lnea el
9 de noviembre de 2010, en
http://download.moodle.org/docs/es/1.9.4_usuario_desarrollador.pdf
GONZLEZ DE FELIPE, A.T. (s/f). Gua de apoyo para el uso de Moodle 1.9.4.
Usuario profesor. EUITIO, Universidad de Oviedo. Recuperado en lnea el 9 de
noviembre de 2010, en
http://download.moodle.org/docs/es/1.9.4_usuario_profesor.pdf
GONZLEZ MARIO J.C. (2006). B-Learning utilizando Software Libre, una
alternativa viable en Educacin Superior. Universidad Autnoma de
Tamaulipas. Mexico. Recuperado en lnea el 9 de noviembre de 2010, en
http://revistas.ucm.es/edu/11302496/articulos/RCED0606120121A.PDF
HERNNDEZ, J.M. (2005). Software libre: tcnicamente viable,
econmicamente sostenible y socialmente justo. Zero Factory S.L. Barcelona.
IVORRA OLTRA, I. (2009). Tutorial:Creacin de unmdulo actividad.Moodle
(1.9.3). Recuperado en lnea el 9 de noviembre de 2010, en
http://gplsi.dlsi.ua.es/~slujan/materiales/creacion-modulo-moodle.pdf
JOIN (2005). Evaluacin de las plataformas LMS.
KAPLAN-LEISERSON, E. (s/f). Glosary. American Society of Training and
Development. Citado por Clara Lpez Guzmn.
LARA FUILLERAT J.M. (2009). Moodle, Manual de referencia para el
profesorado. Recuperado en lnea el 9 de noviembre de 2010, en
http://www.scribd.com/doc/16990042/Moodle-Manual-de-referencia-para-
profesores-version-19
LPEZ GUZMN, C. (2005) Los repositorios de objetos de aprendizaje como
soporte para los entornos e-learning (Cap. 2). Recuperado en lnea el 9 de
noviembre de 2010, en
http://www.biblioweb.dgsca.unam.mx/libros/repositorios/la_web.htm
164
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
165
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
166
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
11 ndice de ilustraciones
Ilustracin 1: Sistemas de Administracin de Aprendizaje (LMS) ....................... 26
Ilustracin 2: Plataformas de enseanza virtual ms comunes ............................ 27
Ilustracin 3: Sistemas de Administracin de Contenidos de Aprendizaje
(LCMS) ....................................................................................................................................... 28
Ilustracin 4: Entorno LAMP ..................................................................................... 34
Ilustracin 5: Arquitecturas tpicas de Moodle ....................................................... 36
Ilustracin 6: Las tres reas de Moodle .................................................................... 37
Ilustracin 7: Directorios de Moodle ........................................................................ 38
Ilustracin 8: Estructura general de Moodle............................................................ 41
Ilustracin 9: Apache instalado correctamente ....................................................... 53
Ilustracin 10: Instalacin de MySql ......................................................................... 54
Ilustracin 11: Instalacin de Moodle-Paso 1 .......................................................... 55
Ilustracin 12: Instalacin de Moodle-Paso 2 .......................................................... 56
Ilustracin 13: Instalacin de Moodle-Paso 3 .......................................................... 56
Ilustracin 14: Instalacin de Moodle-Paso 4 .......................................................... 57
Ilustracin 15: Instalacin de Moodle-Paso 5 .......................................................... 57
Ilustracin 16: Instalacin de Moodle-Paso 6 .......................................................... 58
Ilustracin 17: Instalacin de Moodle-Paso 7 .......................................................... 58
Ilustracin 18: Instalacin de Moodle-Paso 8 .......................................................... 59
Ilustracin 19: Instalacin de Moodle-Paso 9 .......................................................... 59
Ilustracin 20: Instalacin de Moodle-Paso 10 ........................................................ 60
Ilustracin 21: Instalacin de Moodle-Paso 11 ........................................................ 60
Ilustracin 22: Instalacin de Moodle-Paso 12 ........................................................ 61
Ilustracin 23: Instalacin de Moodle-Paso 13 ........................................................ 61
Ilustracin 24: Formulario generado con la clase moodleform_mod................... 93
Ilustracin 25: Aadir un campo selector de fecha a un formulario .................... 94
Ilustracin 26: Editor XMLDB.................................................................................... 95
Ilustracin 27: Entorno tecnolgico......................................................................... 105
Ilustracin 28: Diagrama Entidad/Relacin ........................................................... 117
Ilustracin 29: Modelo de casos de uso general .................................................... 121
Ilustracin 30: Modelo de casos de uso: Gestin de instancias ........................... 122
Ilustracin 31: Modelo de casos de uso: Gestin de grupos ................................ 123
Ilustracin 32: Modelo de casos de uso: Gestin de alumnos ............................. 124
Ilustracin 33: Modelo de casos de uso: Avisos .................................................... 125
Ilustracin 34: Modelo de casos de uso: Inscripcin ............................................ 126
Ilustracin 35: Diagrama de flujo de usuario profesor ......................................... 127
Ilustracin 36: Diagrama de flujo del usuario Alumno........................................ 128
Ilustracin 37: Diagrama de flujo del algoritmo de reparto de grupos ............. 129
167
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
168
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
12 ndice de tablas
Tabla 1: RQF-01_Visualizacin de informacin .................................................... 106
Tabla 2: RQF-02_Inscripcin .................................................................................... 107
Tabla 3: RQF-03_Modificacin de la inscripcin................................................... 107
Tabla 4: RQF-04_Aviso de reparto .......................................................................... 107
Tabla 5: RQF-05_Informacin de grupo asignado ................................................ 108
Tabla 6: RQF-06_Insercin en un curso .................................................................. 108
Tabla 7: RQF-07:_Eliminacin de un curso ............................................................ 108
Tabla 8: RQF-08_Configuracin de la instancia .................................................... 108
Tabla 9: RQF-9_Modificacin de la instancia ........................................................ 109
Tabla 10: RQF-10_Configuracin particular de cada grupo ................................ 109
Tabla 11: RQF-11_Modificacin particular de grupo ........................................... 109
Tabla 12: RQF-12_Visualizacin de grupos ........................................................... 109
Tabla 13: RQF-13_Visualizacin de listas de estudiantes .................................... 110
Tabla 14: RQF-14_Descarga de listas de estudiantes ............................................ 110
Tabla 15: RQF-15_Redistribucin de estudiantes ................................................. 110
Tabla 16: RQF-16_Aviso de reparto ........................................................................ 110
Tabla 17: RQF-17_Instalacin del mdulo ............................................................. 111
Tabla 18: RQF-18_Actualizacin del mdulo ........................................................ 111
Tabla 19: RQF-19_Desinstalacin del mdulo ....................................................... 111
Tabla 20: RQF-20_Reparto de grupos ..................................................................... 112
Tabla 21: RQF-21_Eliminacin de archivos temporales ....................................... 112
Tabla 22: RQD-01_Datos de la instancia................................................................. 113
Tabla 23: RQD-02_Datos de los grupos .................................................................. 113
Tabla 24: RQD-03_Datos de los estudiantes .......................................................... 114
Tabla 25: RQI-01_Interfaces separadas ................................................................... 114
Tabla 26: RQI-02_Calendario de grupos ................................................................ 114
Tabla 27: RQS-01_Control de acceso de usuarios ................................................. 115
Tabla 28: RQS-02_Configurar grupos ..................................................................... 115
Tabla 29: RQS-03_Inscribirse ................................................................................... 115
Tabla 30: RQC-01_Estilo de cdigo ......................................................................... 116
Tabla 31: Interfaces de usuario ................................................................................ 131
Tabla 32: Especificacin del plan de pruebas ........................................................ 140
Tabla 33: Costes de sistemas .................................................................................... 155
Tabla 34: Costes de Hardware ................................................................................. 155
Tabla 35: Costes de Software ................................................................................... 156
Tabla 36: Costes de consumibles ............................................................................. 156
Tabla 37: Coste total de tiempo trabajado .............................................................. 156
Tabla 38: Coste total de ejecucin material ............................................................ 157
169
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
170
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
13 ndice de cdigo
Cdigo 1: Instalacin de Apache2 ............................................................................. 53
Cdigo 2: Instalacin de MySQL ............................................................................... 53
Cdigo 3: Instalacin de PHP .................................................................................... 54
Cdigo 4: Descarga de Moodle .................................................................................. 54
Cdigo 5: Descomprimir Moodle y colocarlo el directorio www ........................ 54
Cdigo 6: Crear el directorio moodledata y darle permisos adecuados ............. 55
Cdigo 7: Ejemplos de nombres de variables correctos e incorrectos ................. 64
Cdigo 8: Ejemplo de definicin de una constante ................................................ 64
Cdigo 9: Ejemplo de funcin bien definida ........................................................... 64
Cdigo 10: Ejemplo de bloque de cdigo correcto siguiendo el estilo de Moodle
..................................................................................................................................................... 65
Cdigo 11: Ejemplos de definicin de cadenas ....................................................... 65
Cdigo 12: Ejemplos de comentarios de lnea y prrafo........................................ 66
Cdigo 13: Ejemplo del uso de espacios para hacer ms claro el cdigo ............ 66
Cdigo 14: Ejemplo de copia correcta de un objeto ................................................ 66
Cdigo 15: Ejemplo de fichero access.php ............................................................... 73
Cdigo 16: Ejemplo de fichero install.xml ............................................................... 76
Cdigo 17: Ejemplo de fichero upgrade.php ........................................................... 77
Cdigo 18: Ejemplo de fichero mod_form.php ....................................................... 80
Cdigo 19: Ejemplo de fichero version.php............................................................. 81
Cdigo 20: Ejemplo de fichero view.php ................................................................. 83
Cdigo 21: Funcin require_capability .................................................................... 84
Cdigo 22: Funcin has_capability ........................................................................... 84
Cdigo 23: Funcin get_context_instance ................................................................ 84
Cdigo 24: Funcin get_users .................................................................................... 85
Cdigo 25: Funcin execute_sql ................................................................................ 86
Cdigo 26: Funcin record_exists ............................................................................. 87
Cdigo 27: Funcin record_exists_select.................................................................. 87
Cdigo 28: funcin record_exists_sql ....................................................................... 87
Cdigo 29: Funcin count_records ........................................................................... 88
Cdigo 30: Funcin count_records_select ................................................................ 88
Cdigo 31: Funcin count_records_sql .................................................................... 88
Cdigo 32: Funcin insert_record ............................................................................. 89
Cdigo 33: Funcin update_record........................................................................... 89
Cdigo 34: Ejemplo aadir lista desplegable ........................................................... 93
Cdigo 35: Ejemplo de cadenas en el fichero de idioma ........................................ 96
Cdigo 36: Recuperacin de cadenas del fichero de idioma ................................. 96
Cdigo 37: Ejemplo de definicin de capacidades ................................................. 98
171
Anlisis del desarrollo de extensiones para Moodle: Desarrollo de un mdulo para la gestin de
laboratorios docentes
172