Condicionar SCORM

Condicionar SCORM

de Rosa López -
Número de respuestas: 1

Hola a todos,


al final, me ha costado, pero he conseguido implementar los condicionales en mi moodle 1.9.9 en localhost, pero me surge una duda.

He visto que puedo condicionar cualquier cosa (recursos, etc.) pero quisiera saber, ¿es posible condicionar un scorm?, es decir, que "hasta que no vea un alumno el 100% del scorm no pueda acceder a la prueba de evaluación".


Muchas gracias a todos.

(Edited by David Hernandez - Mensaje movido desde el foro "Cosas de administradores" pues la temática trata de una funcionalidad no estándar de Moodle - original submission Wednesday, 7 November 2012, 4:34 AM)

Promedio de valoraciones: -
En respuesta a Rosa López

Re: Condicionar SCORM

de Rosa López -

Hola a todos,

a quien le pueda interesar, he hecho un "apaño" para que el alumno no pueda acceder a la prueba de evaluación hasta que no haya hecho el 100% de los contenidos.

En mod/quiz/view.php, despues de la línea 63 ( echo '<table id="layout-table"><tr>';) he recogido 3 variables:

$usuario = $USER->id;
$curso = $COURSE->id;
$cuestionario =  $quiz->id;

Y luego he ido poniendo if dependiendo del id del cuestionario:

 

if ($cuestionario == 1){

busco si ese alumno vio el scorm correspondiente a esa autoevaluación
$prueba="SELECT * FROM mdl_grade_grades WHERE userid='".$usuario."' AND itemid=5";
$queryPrueba=mysql_query($prueba);
echo '<br>';
si no encontró nada esque el alumno ni entró a verlo
if (mysql_num_rows($queryPrueba)==0){
    echo '<table align=center><tr><td>No entraste</td></tr></table>';
}else{
while($arrayPrueba=mysql_fetch_array($queryPrueba)){
sino esque entró pero tengo que comprobar que lo vio todo. el numero 7 en este caso significa el numero total de apartados del scorm
'.$arrayPrueba["rawgrade"].'</option>';
if ($arrayPrueba["rawgrade"]<7.00000 ){
    echo '<table align=center><tr><td>No puedes acceder a la autoevaluaci&oacute;n hasta que no hayas completado los contenidos</td></tr></table>';
}else{

sino esque lo vio todo por lo que guardo los registros en una nueva tabla que he creado
    $sql = "INSERT INTO mdl_final (idusuario,idcurso,idscorm,idcuestionario,idterminado)VALUES (".$usuario.", ".$curso.",5, ".$cuestionario.",1)";
   
}
miro aver si está el terminado a 1que significa que ha visto todo
$prueba2="SELECT * FROM mdl_final WHERE idusuario='".$usuario."' AND idcurso='".$curso."' AND idscorm= 5 AND idcuestionario='".$cuestionario."' AND idterminado=1";
$queryPrueba2=mysql_query($prueba2);
while($arrayPrueba2=mysql_fetch_array($queryPrueba2)){

if ($arrayPrueba2["idterminado"]==1){

->aquí meto el código del view del moodle.Sería todo despues de la línea 63

Y ya estaría, lo único que esto va bien cuando el cuestionario es de un solo intento, no para más, de momento me he quedado ahí.

Espero que sirva de algo.


Gracias!!!