sábado, octubre 14, 2006

To tab or not to tab

Hemos estado trabajando en el tema de la coherencia en la navegabilidad de una wiki en formato wiki.
Lo que a principio parecía algo simple se ha complicado.

Contexto

Curso en formato Wiki
  • Al acceder a una wiki en formato curso, se carga el archivo moodle/course/view.php . Éste archivo utiliza carga los archivos moodle/course/format/wiki/format.php, formatlib.php y config.php que definien el formato de los bloques dentro del curso.
  • Los únicos archivos que a priori podemos modificar al nivel de moodle/course, son format.php y formatlib.php.
  • El archivo format.php hace un require de moodle/mod/wiki/lib.php que a su vez hace un require de moodle/mod/wiki/locallib.php . es en estos archivos donde se define la lógica de las funcionalidaes.
  • Resumiendo, es un poco kafquiano, pero las funcionalidades se cargan a partir de los arrchivos que definen el formato de los bloques que se integran al curso...
Módulo Wiki
  • La wiki se carga a partir del archivo moodle/mod/wiki/view.php y que hace un require de moodle/mod/wiki/lib.php que a su vez hace un require de moodle/mod/wiki/locallib.php
Elementos comunes
  • Las funcionalidades están definidas en la ruta moodle/mod/wiki
  • Concretamente en los archivos locallib.php y lib.php
  • Son comunes tanto al módulo wiki como al curso wiki.
Problema
  • Al acceder a una funcionalidad de una wiki integrada a un curso, como por ejemplo editar la wiki, se termina cargando el archivo moodle/mod/wiki/view.php.
  • Al guardar la edición, en lugar de volver a la wiki en formato curso, volevemos a la wiki en formato módulo. Y esto no queremos que sea así.
Posibles Soluciones
  • Crear una nueva pestaña:
    • Al estar en un curso wiki, crear una pestaña que se visualice al estar en la vista tipo módulo de la wiki, que permita volver a la vista tipo curso. Ej: Pestaña
    • Ventajas: Fácil de implementar, no duplica código.
    • Desventajas: No soluciona totalmente el problema. La navegabilidad no es óptima.
  • Redireccionar a vista curso:
    • Al estar en un curso wiki, y editar una wiki o al volver de cualquier actividad, realizar el tratamiento que corresponda y que se encuentra definido a partir de moodle/mod/wiki/view.php. Una vez realizado el tratamiento, redireccionar a moodle/course/view.php
    • Ventajas: Fácil de implementar, usando al finalizar el tratamiento de la funcionalidad requerida la siguiente instrucción: header('Location:$CFG->wwwroot.$dfform["pagecourse"]'); Donde $dfform["pagecourse"]' contiene la url de la página en moodle/course/view.php
    • Desventajas:
      • No termina de funcionar: Warning: Cannot modify header information - headers already sent by (output started at C:\moodle\moodle\mod\wiki\blocks\lib.php:13) in C:\moodle\moodle\mod\wiki\locallib.php on line 1431.
      • Hay que analizar el tema de la seguridad.
  • Efectuar tratamientos distintos en función de curso o módulo wiki:
    • Tratar de forma difeten una wiki en un curso wiki y en un módulo wiki mediante el siguiente código: i
    • if (isset($dfcourse)){
      //lo que sea referente al curso
      }else{
      //el codigo que habia antes.
      }
    • Ventajas: Navegabilidad óptima. No añadimos más pestañas. No hay problema de seguiridad
    • Desventajas:
      • Dificultad de implementación.
      • Duplicación de código.
Estado del problema
Actualemente hemos adoptado la solución de las pestañas. Pero no descartamos modificar la solución y aplicar la redirección o el tratamiento diferenciado.

No hay comentarios: