jueves, octubre 12, 2006

Problemas con apostrofes y barras invertidas (slash)

cuando se hace un click en un nombre de página wiki, se verifica que la página exista. Si existe, se muestra la pestaña view de dicha página. en caso contrario se muestra la pestaña del editor.
El problema ocurre cuando un nombre de página contiene caracteres con la barra invertida o apóstrofe, ya que para verificar si dicha página existe se llama a la función wiki_record_exists(). Si en la llamada no se hace un tratamiento adecuado al nombre de página enviado como parámetro, la consulta se crea incorrectamente y aún cuabdo la página existe en lugar de mostrarse la pestaña view se muestra la pestaña edit.
Este problema ocurre también con el bloque de sinonimos (aunque el procedimiento puede ser diferente, es decir, falta ver que función es la que se encarga de verificar si la página existe).
Habría que revisar las llamadas relacionadas con estos fallos y pasar adecuadamente los parámetros. Seguramente falta utilizar la función de php addslashes sobre el nombre de página antes de pasarlo como parámetro.
Se observa que sin embargo, en el caso de un curso con formato wiki, el comportamiento es correcto (aunque los nombres de lapáginas se muestran mal, es decir, con la barra invertida precediento dichos caracteres). Seguramente se debe a que la página que se carga en el caso de ver una wiki integrada a un curso es view.php del directorio moodle/course, mientras que al ver un wiki desde fuera de la página principal de un curso se hace cargando la página view.php dentro de moodle/mod/wiki

No hay comentarios: