Agregar un modulo a los cursos..

Agregar un modulo a los cursos..

de Javier Hernández Rivera -
Número de respuestas: 7
Que tal amigos desarrolladores de Moodle!

Resulta que quiero agregar un bloque personalizado a Moodle, pero no se por donde empezar, leyendo un poco en Internet, me he encontrado con que debo generar como 5 archivos php para la conexión con la Base de Datos de MOODLE y para instalar el nuevo módulo, para mí es algo confuso puesto que no se mucho de la estructura de Moodle y su programación parace estar orienta a objetos por las clases que he visto tiene implementadas.

Alguno de uds. pudiera orientarme que es lo que debo hacer primero, claro que la idea a implementar la tengo en papel, solo me falta entrarle a la programación para el módulo.

De antemano muchas gracias.

Saludos
Promedio de valoraciones: -
En respuesta a Javier Hernández Rivera

Re: Agregar un modulo a los cursos..

de Xavier Paz -
¿Nos podrías dar algunos detalles más acerca de lo que quieres que haga el bloque? lo más sencillo para comenzar es revisar la documentación oficial y tomar alguno de los bloques existentes en Moodle como base de código.
En respuesta a Xavier Paz

Re: Agregar un modulo a los cursos..

de Javier Hernández Rivera -
Que tal Xavier!

Una vez más acudiendo a uds!, no se si recuerdas que hace una semana planteaba yo la situación de que deseo incluir en la plataforma (personalizarla) para que mediante un bloque el profesor pueda introducir las calificaciones obtenidas por los alumnos en examenes escritos, examenes parciales, practicas de laboratorio, etc.

Se que en Moodle se pudiesen aplicar los examenes con alguna herramienta generadora de examenes como Hot Potatoes, etc. pero desafortunadamente los maestros de mi institución no estan familiarizados con estas herramientas, asi que prefieren hacer examenes escritos.

He creado el bloque con un tutorial que me encontre por aqui, pero necesito que este al agregarse al curso genere un link que me lleve a un pequeño formulario donde el maestro escogera el numero de examenes parciales , numero de practicas, etc de un periodo de 3 meses (en mi institucion se manjean semestres, en los cuales se aplican dos examenes de departamento, 2 o 3 parciales entre cada departamental, practicas de laboratorio, este enfoque es con respecto a la carrera de Ing. en Sistemas), entonces quiero aprovechar cuestiones como nombres de alumno, nombre del profesor, nombre del curso, calificaciones de un curso, datos que Moodle ya me da, para generar una tabla que concentre las calificaciones de cada uno de los alumnos, claro que para esto el maestro introducira manualmente dichas calificaciones, estas calificaciones se podran editar dentro del periodo establecido por el administrador como fecha limite, una vez terminado el tiempo, el reporte no se puede editar, solo consultar, tanto por alumnos y maestro; posteriormente el administrador establecera de nuevo las fechas de entrega y de cierre para el siguiente periodo, se repite el proceso anterior, y despues el admin establece fechas para entrega de calificaciones finales.

Se que se escucha muy robusto, pero tambien se que no es imposible, tengo el dilema de si crear este formulario internamente en Moodle (programacion orientada a objetos), o hacer mi propio formulario externo a Moodle, lo que no se si debo pedirle permiso a la base de datos de Moodle para obtener los datos que requiero para mi formulario externo, generar el reporte y que este se almacene en una Base de Datos aparte, no en la de Moodle, para despues generar reportes pdf, excel, etc.

Te agradecería tu opinion y tu gran ayuda.

Saludos.
En respuesta a Javier Hernández Rivera

Re: Agregar un modulo a los cursos..

de Xavier Paz -
Por lo que cuentas y entiendo, imposible no es pero tampoco sencillo. No lo digo por la posible complejidad, pues en principio no son más que varios scripts php y posiblemente alguna tabla para almacenar datos de cada curso, sino porque tal vez a fuerza de no implicar a los usuarios en el uso de nuevas herramientas, estés cargando tu con parte del trabajo.

Antes de nada, yo intentaría convencer de nuevo a los profesores de que aprendieran a usar Hot Potatoes o similar, pues aunque sea no tengas ganas de aprender el uso de una nueva herramienta, a la larga obtendrás tanta soltura y control, que ni siquiera te acordarás como era la vida antes de usarla. Yo intentaría a toda costa explicarles las ventajas (formato común de los examenes, reutilización sencilla y rápida de contenidos, compatibilidad con otras plataformas, etc..) porque posiblemente vayas a realizar trabajos o tareas que la plataforma ya te da per se. Sé que es complicado convencer a los usuarios, sobre todo gente reticente a cambiar su metodología de trabajo, pero cualquier avance que hagas en este sentido te puede ayudar en el futuro y puede suponer un avance en la adopción de otras futuras mejoras.

Dicho esto, no sé si he entendido correctamente el planteamiento, pero si mediante este bloque vas a introducir las notas de los exámenes, supongo que los exámenes no existen dentro de Moodle como recursos/actividades del curso ¿no? así pues, tendrías que poner el nombre de los exámenes a mano, al igual que las notas.

En resumen, lo que necesitas es algo así como un cuaderno de notas, donde los profesores introduzcan los exámenes, los alumnos que han participado, y sus notas, siempre dentro de unas fechas establecidas por el administrador. En cualquier otro periodo de tiempo, ese cuaderno solo se podrá consultar ¿es eso más o menos lo que buscas, Javier?
En respuesta a Xavier Paz

Re: Agregar un modulo a los cursos..

de Javier Hernández Rivera -
Que tal Xavier!

Una vez más gracias por tu opinión y es muy válida y cierta, pero como tu mismo mencionas algunos aún se resisten a ese cambio.

Efectivamente los exámenes no existen dentro de Moodle, los nombres de los examenes son tan obvios como ponerles Examen Departamental 1, Examen Parcial 1, Practica 1, cosa que yo puedo programar con mi scrip php como header de cada columna de la tabla que yo pretendo mostrar al docente para ingresar las calificaciones.

Lo que tu concluyes es exactamente lo que deseo implementar, un cuaderno de notas, con los periodos de tiempo y su sola consulta fuera de ese periodo.

En el post pasado te preguntaba que si le tengo que pedir permisos a la Base de Datos de Moodle para obtener datos desde la misma, como yo te comentaba no manejo la programacion con clases que hasta el momento veo que usa Moodle, es por eso que no quiero incrustar mi formulario de reporte de notas dentro de la plataforma, a cambio deseo hacer este formulario de forma externa a Moodle, manejando estos datos con una nueva Base de Datos, ¿tu que opinas? me interesaría tu oportuna opinión, con respecto a los permisos me refiero a que si mi nueva Base de Datos necesita pedir permiso a la Base de Datos de Moodle para extraer la informacion que requiero como lo son nombres de alumnos, maestro, curso, para mi tabla de notas (estilo excel).

Gracias por tu apoyo y tu atención.

Saludos.
En respuesta a Javier Hernández Rivera

Re: Agregar un modulo a los cursos..

de Xavier Paz -
En realidad, no todo Moodle está programado usando el paradigma de orientación a objetos, solo algunas partes, como los formularios. Eso no impide que tu al desarrollar para Moodle no uses clases y objetos. Puedes hacer uso de lo que Moodle te ofrece o hacerlo a la manera "tradicional".

Si lo haces de forma externa, evidentemente tendrás que pedir permiso, si por esto entiendes que para acceder a la base de datos de Moodle tienes que conectarte mediante un usuario y una contraseña, las cuales puedes obtener a través del fichero config.php.

En cualquier caso, personalmente te recomendaría que no lo hicieras externo a Moodle, pues a primera vista no hay grandes ventajas y puedes tener problemas tanto a la hora de implementarlo como de integrarlo.

Además una cosa por el estilo no parece muy complicada. A priori yo lo implementaría como bloque, con un par de tablas extra. Una para guardar los datos de cada uno de los exámenes (id,nombre,fecha, id del curso, id usuario profesor, nota máxima) y otra para guardar las notas de cada alumno en cada examen de ese curso (id, id examen, id alumno, nota) Como en las tablas tienes los ids de muchos de los elementos, puedes obtener los datos completos en las tablas correspondientes de Moodle (datos del estudiante y el profe, datos del curso, etc..)

Una vez tengas eso, yo haría lo siguiente para el bloque. Un vez esté visible en el curso, si la fecha de ese momento se encuentra dentro del periodo en que se permite introducir exámenes y notas, muestra un enlace al formulario. Además, siempre muestra enlaces a los exámenes ya existentes. El contenido del bloque sería algo así como...
  • ver Examen Parcial 1
  • ver Examen Parcial 2
  • ver Examen Parcial 3
  • ver Examen Final 1
  • ver Examen Parcial 4
  • ver Examen Final 1
  • ...
  • ...
  • Añadir examen


Los primeros enlaces te listan las notas introducidas para ese examen de ese curso, mostrando la información contenida en las tablas del bloque.

El otro examen, como dijiste, solo aparece cuando se está en periodo de introducir notas. Esto se puede implementar mediante los parámetros del bloque. Es decir, tienes un parámetro que sea periodo_examen, habilitar_insertar o similar que active o desactive dicha opción.

Una vez se pulsa en añadir examen, te lleva al formulario donde te da la opción de introducir los datos (nombre, fecha, eleccion de profesor mediante menu desplegable, etc..) y te lista los alumnos matriculados en ese curso de Moodle para que el usuario solo tenga que poner la nota. A lo mejor sería interesante poner un campo extra como no presentado o similar por si el alumno no acudió al examen, pero eso lo dejo a tu criterio.

En resumen, necesitarías al menos 3 ficheros, a saber: el formulario de configuración del bloque, el script que genera el contenido del bloque, el script del formulario para introducir los datos, y el script SQL para crear las tablas extra del bloque.
En respuesta a Xavier Paz

Re: Agregar un modulo a los cursos..

de Javier Hernández Rivera -
Que tal Xavier!

Agradezco tu orientación, me será de mucha utilidad a la hora de implementarse, una molestia más, de casualidad ¿conoces alguna documentación que me pudiera servir para el desarrollo de la misma?, ya que como mencionas puedo o no hacerla con clases, me gustaría saber si hay alguna documentación que me pudiera orientar más a fondo.

Te agradezco tu fina atención y el tiempo que te tomas para responderme, recibe un cordial saludo.

En respuesta a Javier Hernández Rivera

Re: Agregar un modulo a los cursos..

de Xavier Paz -
Si te refieres a los ficheros necesarios para crear un bloque, revisa la documentación oficial en http://docs.moodle.org/es/Desarrollo_de_bloques.

Si te refieres a como afrontar el desarrollo de los scripts php sin el paradigma de POO, busca ejemplos de bloques de Moodle que vienen por defecto o en la sección de Modules & Plugins de moodle.org. Te puedo asegurar que no hay tantos bloques desarrollados mediante POO como pueda parecer.