Diario de mi Proyecto : PFC sobre Moodle

  Archivos
Jul 07 [2]
Jun 07 [12]
Mayo 07 [13]
Mar 07 [3]
Nov 06 [6]
Oct 06 [5]


Sindicación
Artículos
Comentarios


Enlaces
eGrupos
ZoomBlog

 
Inicio | Mi Perfil | Suscríbete al blog
Noviembre del 2006

 

Empezando con la 4º entrega

Enlace permanente 30 de Noviembre, 2006, 21:33

Hola de nuevo!
Continuamos con el PFC. Una vez que corrija los fallos y sugerencias que me indica Alberto en la anterior entrega me pondré a trabajar con la siguiente. El trabajo consistirá básicamente en la creación de manuales de documentación y empezar a trabajar en el módulo CERP. El contenido es el siguiente:

  • Creación de una guía para la programación del módulo. En este manual iré explicando los pasos para la creación del módulo que pretendo desarrollar y los problemas que me iré encontrando junto con sus respectivas soluciones.
  • Investigar en el curso de inglés Using Moodle si existe algún manual como el que pretendo desarrollar.
  • Ir pensando en la documentación. Si tengo tiempo iré desarrollándola.
  • Ir añadiendo funcionalidad al módulo de "ejemplo" para investigar y probar nuevas opciones.
Bye.
Comentarios 38 ~ Comentar | Referencias (0)


 

Creación de un módulo de ejemplo

Enlace permanente 29 de Noviembre, 2006, 8:08

En este artículo voy a comentar el desarrollo y los problemas que he tenido al crear un módulo muy sencillo que he titulado "Ejemplo" (os dije que no tenía mucha imaginación).

Lo primero que hay que hacer es bajarse la plantilla NEWMODULE.ZIP. Os la podéis bajar del siguiente enlace. La estructura de archivos de este .zip la podéis estudiar en el módulo de actividades de Moodle. Lo que tenéis que quedaros para empezar es con lo siguiente:
  • mod.html: aquí editareis el formulario para insetar los datos del módulo cuando creéis una instancia del mismo (cuando se añade una nueva actividad).
  • db/mysql.sql: aquí creáis las tablas que necesitéis (esto lo explico más adelante).
  • lib.php: es la "librería" del módulo, es decir, aquí es donde crearéis vuestras funciones nuevas y editaréis las ya existentes.
¿Y ahora qué? Bueno, vamos paso a paso, para empezar a programar lo primero es pensar en las opciones de configuración del módulo. Para este "cutre-ejemplo" he elegido que va a tener un nombre, una descripción y una calificación, por lo tanto estas opciones las tendré que pedir cuando añada una nueva actividad ejemplo. Para realizar esto edito el fichero mod.html y añado (código html) un formulario normal y corriente, por ejemplo:

<td align="right"><b><?php  print_string("name", "ejemplo") ?>:</b></td>
    <td>
        <input type="text" name="name" size=60 value="<?php p($form->name) ?>">
    </td>

Aquí estoy añadiendo la variable "name" y le estoy diciendo a Moodle que guarde ese valor en $form->name. Se me ha olvidado antes que para iniciar esas variables al principio del formulario (mediante php) he insertado el código siguiente:

if (!isset($form->name)) {
    $form->name = '';
}
if (!isset($form->description)) {
    $form->description = "";
}
if (!isset($form->grade)) {
    $form->grade = 100; //100 es el valor predeterminado que tendrá.
}

Una vez que tengo el formulario creado salvo y guardo. Como buen pardillo, lo primero que hice fue integrarlo (que es sumamente sencillo) e intentar ver si funcionaba. GRAN ERROR. No funcionaba nada de nada, ni siquiera me salía el texto en español y cuando le daba a "añadir una nueva actividad" me salía en la lista de actividades [[newmodule]].

¿
Y por qué eso de newmodule? Bueno, esto me sirve para hablar del fichero de idioma. Ya sabéis que Moodle es internacional y ahí entra en juego el tema de los idiomas. Todavía no tengo muy claro los formatos de texto "oficiales" (utf-8, windows, etc), así que os explico algo muy sencillo. Para que en vuestro módulo os salgan las opciones y frases como queráis (Nuevo nombre para la actividad ejemplo en vez de Nombre) tendréis que crear un fichero en el directorio lang con el mismo nombre que el módulo. En mi caso se llamó ejemplo.php. En este fichero creamos entradas de este tipo:

//moodle
$string['modulename'] = 'Ejemplo';
$string['modulenameplural'] = 'Ejemplos';

//Del propio módulo

$string['Name'] = 'Nombre para la actividad Ejemplo';
$string['name'] = 'Nombre para la actividad Ejemplo';
$string['description'] = 'Descripción';
$string['grade']='Calificación del Ejemplo';

Y
para llamar a los "string" lo hacéis de la siguiente manera:

<td align="right"><b><?php  print_string("name", "ejemplo") ?>:</b></td>

Es decir, con la función print_string() le estoy diciendo que me devuelva la cadena name del fichero ejemplo. Una vez hecho esto e insertado el fichero de lenguaje ejemplo.php en /Appserv/moodledata/lang/es_utf8 ya funciona el tema del lenguaje correctamente y cuando añadimos una nueva actividad la apariencia es la siguiente:

            
Image Hosted by ImageShack.us

Bueno y ahora, introducimos las opciones le damos a "guardar cambios" y... TOMA ERROR!!!! Y así unas cuantas de veces... El error era el siguiente:

A required parameter (sesskey) was missing

Pufffffffffffff, parece grave no? Pues la verdad es que no lo es tanto cuando te das cuenta de lo que pasa. Esta variable la utiliza Moodle para temas de seguridad y se va propagando, por así decirlo, por toda la plataforma. Por lo tanto para que se siga propagando por nuestro módulo, hay que insetar en mod.html el siguiente código (al final del archivo):

<input type="hidden" name=sesskey       value="<?php p($form->sesskey) ?>" />


Guardamos los cambios, volvemos a añadir y... más errores!! Nos siguen faltando parámetros requeridos por Moodle, en este caso es el parámetro mode. Así que para concretar os recomiendo que nunca falte lo siguiente en el fichero mod.html:

<input type="hidden" name=course        value="<?php  p($form->course) ?>" />
<input type="hidden" name=module        value="<?php  p($form->module) ?>" />
  <input type="hidden" name=modulename    value="<?php  p($form->modulename) ?>" />
<input type="hidden" name=instance      value="<?php  p($form->instance) ?>" />
<input type="hidden" name=sesskey       value="<?php p($form->sesskey) ?>" />
<input type="hidden" name="mode"          value="<?php  p($form->mode) ?>" />
<input type="hidden" name="section"       value="<?php  p($form->section) ?>" />


¿Funciona ya por fin? Pues todavía no, nos falta un tema importantísimo en Moodle, las tablas... Como ya sabemos, Moodle guarda la información en bases de datos asi que nuestro módulo tendrá que tener tablas para almacenar la información. Este tema no lo tengo muy claro todavía, pero lo que sí se es que para nuestro ejemplo hay que crearse como mínimo una tablita e insetar el código en db/mysql.sql:

CREATE TABLE `prefix_ejemplo` (
  `id` int(10) unsigned NOT NULL auto_increment, //ESTE ATRIBUTO ID NUNCA DEBE FALTAR
  `course` int(10) unsigned NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `description` text NOT NULL,
  `grade` int(10) NOT NULL default '0',
  `timemodified` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`)
) COMMENT='Define Ejemplo';

Y una vez realizado esto solo nos faltará retocar la función para añadir una instancia en lib.php:

function ejemplo_add_instance($ejemplo) {
   
    $ejemplo->timemodified = time();
    if ($mod->course) {
        if (!
$course = get_record("course", "id", $mod->course)) {
            error("Course is misconfigured");
        }
    }

    # May have to add extra stuff in here #
    return insert_record("ejemplo",$ejemplo);
}

Simplemente he añadido $ejemplo->timemodified = time(); porque esto no lo recogo en el formulario, es una variable que me indica el momento en el que modifico la instancia.

Ahora una vez que guardemos todos los cambios e insertemos el módulo, lo primero que se produce es la creación de la tabla. Y una vez introducida la información desde el formulario pues se crea la instancia del nuevo módulo y todo funcionará correctamente.

Os resumo los pasos:

  1. Creación de las respectivas tablas en db/mysql.sql
  2. Creación del formulario.
  3. Editar función ****_add_instance() en lib.php

Bye

Comentarios 23 ~ Comentar | Referencias (0)


 

Título del módulo

Enlace permanente 16 de Noviembre, 2006, 19:35

Pues en esta tercera entrega también hemos quedado en darle un nombre al módulo que pretendemos crear. Como tengo poca imaginación para estas cosas y la actividad básicamente trata sobre Compilación y Ejecución Remota de Programas he pensado en ponerle el flamante título de...

    MÓDULO CERP

Así que, si Aberto está de acuerdo, pues ya tento título para el módulo!!

Bye



Comentarios 46 ~ Comentar | Referencias (0)


 

Primera parte finalizada

Enlace permanente 14 de Noviembre, 2006, 17:54

Acabo de terminar la primera parte de esta tercera entrega! Ha sido más pesada que lo que he hecho hasta ahora pues he tenido que investigar cada opción de configuración para los módulos comunes de Moodle.

Para cada actividad, en el momento de su creación, Moodle proporciona una serie de opciones de configuración que son específicas para cada una de ellas. Mediante esta entrega he revisado cada opción de configuración para tomar ideas para la actividad que pretendo crear.

Como ejemplo, presento los resultados para el módulo cuestionario:

 


La actividad cuestionario está orientada a la realización de exámenes. El nivel de configuración que presenta es el siguiente:

 

  • Nombre: texto con el título o nombre del examen.
  • Introducción: en este editor html se podrá hacer una descripción del cuestionario.
  • Abrir cuestionario, cerrar cuestionario: son las fechas para comenzar y finalizar el ejercicio.
  • Límite de tiempo: aquí se introducirán los minutos que durará el examen.
  • Número máximo de preguntas por página: en este cuadro indicaremos el número de preguntas máximo por página.
  • Barajar preguntas, barajar dentro de las preguntas: indica si en cada cuestionario mostrará un orden distinto cada vez que se inicie y si las partes que componen las preguntas individuales serán barajadas aleatoriamente cada vez que un estudiante comienza a contestar el cuestionario respectivamente.
  • Intentos permitidos: número de veces que un estudiante podrá resolver el ejercicio.
  • Cada intento se construye sobre el anterior: mediante esta opción se podrá mantener las respuestas anteriores si el alumno vuelve a realizar el examen.
  • Método de calificación: si se permiten múltiples intentos aquí se podrá especificar cual es el método de calificación final.
  • Método adaptativo: con esta opción se permite al alumno dar varias respuestas a una pregunta.
  • Aplicar penalizaciones: mediante esta elección se aplicará un factor de penalización si se ha elegido anteriormente dar respuestas múltiples.
  • Número de decimales en calificaciones: aquí se especifican el número de decimales que se mostrarán en la calificación.
  • Los estudiantes pueden revisar: este nivel de configuración controla si los estudiantes podrán revisar sus intentos pasados de resolver el cuestionario y cuándo podrán hacerlo.      
  • Tiempo entre el primer y segundo intento, tiempo entre los intentos posteriores: aquí se especifica el tiempo que ha de pasar entre un intento y otro cuando se ofrece la posibilidad de volver a repetir el ejercicio.
  • Mostrar el cuestionario en una ventana segura: si se selecciona esta opción se aplicarán condiciones al cuestionario para que sea más difícil la copia del ejercicio.
  • Se requiere contraseña, se requiere dirección de red: mediante estas dos elecciones opcionales se aplica un nivel. Los alumnos han de introducir una contraseña y su dirección de red ha de ser la adecuada para la realización de examen.

La actividad cuestionario presenta múltiples opciones además de las comentadas. Una vez que se configuran las anteriores, Moodle da la posibilidad de volver a configurar las preguntas del ejercicio.



Saludos!!


Comentarios 29 ~ Comentar | Referencias (0)


 

Trabajito para la tercera entrega

Enlace permanente 2 de Noviembre, 2006, 16:17

Hola gente, pues después de reunirme con Alberto, hemos fijado los objetivos para una tercera entrega. Ésta consistirá en el siguiente estudio:

  • Estudiar las posibilidades de configuración de todas las actividades básicas (tarea, foros, chat, etc) de Moodle.
  • Elegir un nombre para el módulo que se va a desarrollar.
  • Realizar un pequeño módulo de ejemplo con algunos campos de configuración como puede ser:
    • Fecha entrega.
    • Calificación.
    • Comentario.
Salu2.
Comentarios 32 ~ Comentar | Referencias (0)


 

Analizando código fuente

Enlace permanente 1 de Noviembre, 2006, 10:48

Como os comentaba en mi artículo anterior, esta segunda entrega consta básicamente en el estudio del código fuente de la actividad "tarea" (assignment). Para ello que mejor que ver el proceso que se produce cuando se crea una nueva tarea.

Al crearse una nueva tarea, el navegador se dirige hacia la siguiente dirección:

http://localhost/moodle/course/mod.php?id=2&section=2&sesskey=1zYhJRXq3z&add=assignment

Se puede comprobar a simple vista que lo que estamos haciendo es añadir (&add) una nueva tarea (assignment). Las demás variables son identificadores de curso y caracteres de seguridad que en cada ordenador donde esté intalado Moodle serán distintas. El navegador nos mostrará entonces unas opciones de configuración para la actividad tarea:

Image Hosted by ImageShack.us

Si observamos el código fuente de este fichero mod.php nos damos cuenta que se encarga de llamar a los formularios pertinentes (opciones de la imagen anterior). Por supuesto realiza un control exhaustivo de errores como puede ser la identificación correcta del profesor, del administrador, curso y sección correcta, etc.

Una vez terminada de configurar la tarea finalizaremos la misma con una visión de la tarea, con su descripción y la posibilidad de subir un archivo si el tipo de tarea es subir un solo archivo. El código que se ejecuta en este paso es el perteneciente al archivo …\mod\assignmentt\view.php que se encarga de llamar a la clase tarea (tres tipos de clases según las modalidades de tareas) y al método view() que se encargará de mostrar la tarea:


Image Hosted by ImageShack.us
Las conclusiones que se obtienen de analizar el código de los diferentes archivos que forman una tarea son los siguientes:

  • Moodle realiza para cada paso y en cada fichero un control exhaustivo de errores.
  • En casa paso se requiere la autentificación correcta del usuario (si es profesor, alumno o administrador).
  • Para programar un módulo en Moodle hay que seguir una serie de pautas como por ejemplo utilizar los ficheros .php para el código fuente y los ficheros .html para las plantillas y formularios.
  • Todas las funciones que se desarrollen tendrán que estar en el fichero lib.php.
  • Si se ejecuta código SQL tendrá que desarrollarse en otro fichero .php. Lo más utilizado es crear un directorio db que contenga los ficheros de código para las bases de datos.

Saludos!!!
Comentarios 36 ~ Comentar | Referencias (0)



Blog alojado en ZoomBlog.com

 

 

<<   Noviembre 2006  >>
LMMiJVSD
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30    

Categorías
General [41] Sindicar categoría