Mostrando entradas con la etiqueta New. Mostrar todas las entradas
Mostrando entradas con la etiqueta New. Mostrar todas las entradas

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)

Curso Wiki como curso principal

Siguiendo con el curso Wiki, pero ahora buscando modificar el moodle para permitir que el curso Wiki pueda ser el Curso principal. De esta manera, al acceder a Moodle, lo primero que se debe ver es el curso wiki, con su wiki y su bloque de actividades sociales integrados, pero con los demás bloques propios del curso principal, es decir el bloque de administración de Moodle, el bloque con los cursos de Moodle, etc...

Lo primero que observo es que en la tabla mdl_course, el curso principal se distingue de los demás cursos en que el campo category tiene valor 0, mientras que el resto de curso dicho campo tiene valor 1.
Otros datos a tener en cuenta, es que por defecto el formato del curso principal es "social", y que dicho formato no se puede modificar en el formulario de administración del curso principal.

El primer intento es modificar manualmente el campo category, poniendo a category=0 a un curso wiki, pero me encuentro que aunque se carga el curso wiki como curso principal sin demasiados efectos colaterales. El mayor problema que puedo observar es que en la sección del centro, además de cargarse el curso wiki, se cargan todos los bloques que con anterioridad se habían definido a dicho curso. Esto es normal, pero indica que habrá que tener un tratamiento especial en relación a que bloques se cargan y como se cargan en el caso del curso wiki ya que se están cargando dos veces. Una en la sección central, y otra en la sección de la derecha o izquierda.
Aquí puede observarse el efecto anteriormente comentado: Curso Wiki principal primera aproximación

Continúo investigando. Una solución al tema bloques pasa por introducir un if dentro de course/wiki/formatlib.php, donde se cargan los bloques, y en caso que category=0 no cargar los bloques. Aquí puede observarse el nuevo aspecto: Curso Wiki principal segunda aproximación Se ha solucionado el problema de la visualización de los bloques, pero al intentar editar el curso, se observa que hay un problema con las secciones. La integración del bloque de social_activities se carga mal.

Conclusiones:
  • Analizar en profundidad el tema de las secciones. Como mínimo es incorrecto el tratamiento que se hace en course/wiki/format.php, a la hora de integrar las social_activities.
  • Analizar como editar el formulario de configuración->site settings del curso principal, SIN TOCAR el código de moodle. Esto será posible siempre que dicho formulario se genere dinámicamente.
  • Editar (site settings) el curso principal para permitir seleccionar el formato de curso wiki y que ocurre cuando se selecciona el orden de aparición de la Lista de Novedades, de la Lista de Cursos y de la Lista de Categorias. (Se puden definir para que se visualicen Hide, First, Second..) y al guardar los cambios, se modifica la tabla de mdl_course_sections, con lo que se observa una relación al punto anterior donde se habla del tratamiento de las secciones.
  • Revisar la creación de TODOS los links, para que apunten a localhost/index.php en lugar de a localhost/course/view.php. ($WS->wikitype=localhost/index.php?=).
En principio con estos cambios se debería obtener una primera versión del curso wiki como curso principal.

jueves, octubre 12, 2006

Cursos wiki

Una de las particularidades que tiene moodle, es que es posible utilizar una wiki como página principal de un curso. El desarrollo de esta funcionalidad fué realizado el año pasado por otro grupo de proyectistas, y si bien el resultado es bastante bueno, por falt de tiempo quedaron algunos aspectos a mejorar. En este sentido, una de las tareas que se nos han solicitado es la de mejorar dicha funcionalidad y que el comportamiento de un curso wiki sea coherente con las demás funcionalidades generales de moodle y con las propias de una actividad wiki.
Durante esta semana hemos solucionado algunos problemas que se presentaban con los bloques wiki´s y el curso wiki.
El primer paso fué conseguir que el comportamiento base del curso wiki en cuanto a los nombres de páginas fuera el mismo que el nombre de página en las actividades wiki´s. Luego de varias pruebas, hemos conseguido que los nombres de pñagina se comporten igual en ambis formatos, incluidas aquellas páginas que contienen caracters como el apostrofe y la barra invetida (slash).
Sin embargo aún quedan pendientes algunos temas, como verificar el funcionamiento cuando hay grupos de por medio, verificar los links que aparecen en los bloques wikis, de modo que al estar en un curso wiki, el link lleve a la wiki en formato curso en lugar de a la wiki en formato actividad. Estos temas los veremos con profunidad la próxima semana.
Para finalizar, y en relación de las actividades sociales, hemos decido eliminar el bloque de actividades sociales, e integrar las mismas a la wiki. El resultado de esta integración puede observarse en el siguiente link: http://www.flickr.com/photos/63039100@N00/267883448/

Modificar el tamaño del editor Wiki

Nuestra primera tarea !!!!!!!!!
En principio parece algo sencillo, pero con nuestros rudimentarios conocimientos de php, encontrar las páginas que era necesario modificar para el desarrollo correcto de la funcionalidad, ha sido una ardua tarea.
Como aspecto positivo cabe destacar que nos permitió profundizar en la estructura de la nwiki.

Otro aspecto a mencionar es que la definición de la tarea a realizar no era muy extensa, y considerando nuestra poca experiencia en el mundo moodle. Tuvimos que aplicar el sentido común y tomar decisiones como en que tabla guardar los campos que hagan persistente el nuevo tamaño, o si el tamaño se debía poder definir para cada página de una wiki en particular, o para todas las páginas de una wiki determinada.

Como breve resumen, el desarrollo de la funcionalidad hizo preciso modificar los siguientes archivos:
  • moodle/mod/wiki/mod.htm
  • moodle/mod/wiki/lib.php
  • moodle/mod/wiki/loacllib.php
  • moodle/mod/wiki/version.php
  • moodle/mod/wiki/db/mysql.php
  • moodle/mod/wiki/db/mysql.sql
  • moodle/mod/wiki/editor/editor.php
  • moodle/lang/en_utf8/wiki.php
Y la tabla mdl-wiki con dos nuevos campos:
  • editorrows integer not null default=40
  • editorcols integer not null default=120

Debido a que esta tarea ha sido nuestra primera aproximación seria a la newWiki, le hemos solicitado a Pigui que verfique que como mínimo no hacemos ningún desastre antes de ofrecer la nueva funcionalidad a la comunidad Moodle.