lunes, octubre 30, 2006

Puesta a punto del Curso Wiki

Continúo trabajando con el curso wiki.

La solución de las pestañas para visualizar el curso wiki no gusta a nadie, y menos la de la redirección, así que me pongo a trabajar para que en el curso wiki se vean todas las pestañas, no solo la de editar, y que el tratamiento se realice totalmente en el curso wiki.
Esto implica modificar el formato del curso wiki para acceder a todas las librerias de la actividad wiki (especialmente locallib.php) pero sin duplicar código. Para conseguirlo, hay que analizar e ir creando la instancia de curso wiki de forma paralela a como se hace en la actividad wiki, pero distinguiendo el tratamiento especial del curso wiki, como por ejemplo la integración de las actividades sociales.
Para conseguirlo se sigue el siguiente esquema:
  • En un curso wiki, el archivo que se carga es course/view.php, y desde aquí se cargan los bloques del curso definidos en course/format/wiki/config.php y el formato del curso definido en course/format/wiki/format.php.
  • En format.php se incluye el código de mod/wiki/lib.php que a su vez incluye el código de mod/wiki/locallib.php (Ya tenemos el 99% de las funciones de la actividad wiki para ser utilizadas en el curso wiki), y se define antes que nada la variable $WS->dfcourse = 1; que indica que estamos en un curso wiki.
  • Seguimos en format.php se realizan las verificaciones de seguridad, que la página existe, etc... y se llama a wiki_main_view_setup() donde se verifica la versión de la página. A continuación se cargan los bloques de la sección de la izquierda y en la sección central se integra el bloque social activies y luego se carga el curso wiki medienta la llamada a wiki_main_view_content()
  • En wiki_main_view_content(), definida en locallib, es donde se hará ahora el tratamiento más específico para que el curso wiki se comporte como una actividad wiki, es decir que funcionen todas las características de una wiki sobre el curso. Para esto y a medida que se van precisando se recogen todos los parámetros para el correcto tratamiento de las funcionalides y de los formularios, mediante la función optional_param(). y luego se hace la llamada a wiki_setup_content($WS); donde se define el contenido del curso wiki y finalmente se imprime mediante la llamada a wiki_print_content ($WS); (ambas funciones definidas en mod/wiki/lib.php.
Ya tenemos el comportamiento correcto, ahora falta revisar que todos los links distingan entre un curso wiki y una actividad wiki.
En una actividad, el link es del tipo mod/wiki/view.php?=ID_de_la_ página_wiki, mientras que en el curso el link se ha de ser del tipo course/view-php?=ID_del_módulo_wiki.
Lo primero que se me ocurre es hacer la asignación la asignación a $WS->cm->id=$WS->course->id, que aunque es incorrecto me permite fácilmente verificar las funcionalidades. De momento dejo dicha asignación, aún sabiendo que debe cambiarse y verifico las funcionalidades.

Las pestañas de view, edit, discuss, history, navegation, evaluate, las voy verificando correctamente y voy solucionando pequeños problemas que aparecen (Como por ejemplo cargar el javascript para que aparezcan los botones en el editor dfwiki y e-wiki).

Los bloques parecen funcionar bien, gracias a que con anterioridad ya se habían programado para fucnionar tanto en actividad como en curso wiki.

El último gran tema que queda es el del bloque de administración de las ead_tools. Algunas funcionan y otras no...Para solucionar este problema, es necesario tratar correctamente el tema de los links, es decir eliminar la asignación comentada arriba, y hacer el tratamiento sugerido por Pigui con el siguiente código:
if (isset($dfcourse)){
//lo que sea referente al curso
}else{
//el codigo .
}

Con el curso wiki "funcionando", lo subo al cvs de sourceforge.Pigui la prueba y lo primero que comenta es que NO funciona.
Extrañado, aunque no mucho, ya que en mi instalación perfectamente, y en la de Paton también.
El primer indicio parece ser que es debido a un problema al cargar los bloques.
Con Marc Catala y utilizando su instalación de Moodle, verificamos que el curso wiki a él también le falla. Investigando, llegamos a la conclusión que el problema ocurre cuando se tiene instalada la dfwiki y la newwiki en un mismo sistema. No era ese mi caso, ya que en su momento no pude instalar la dfwiki, y por lo tanto solo tenía la new wiki.


En la reunión del miércoles trataremos este tema para ver como lo solucionamos.
Por este tema, entre entre otros, se decide no entregar el código a Dougiamas, pero deberemos darnos prisa para solcuionarlo lo antes posible.
En esta imágen puede observarse como falla el curso wiki con la dfwiki y la newwiki instalada:
Fallo(Solo se cargan algunos bloques de la sección de la izquirda)

No hay comentarios: