if (!isset($op)) { $op = null; } switch ($op) { case 'answer': if (isset($useranswer)) { $exercise = ExerciseDAO::getExercise($id_node); $correttore = ExerciseCorrectionFactory::create($exercise->getExerciseFamily()); $correttore->rateStudentAnswer($exercise, $useranswer, $sess_id_user, $sess_id_course_instance); /* * salviamo l'esercizio svolto solo se l'utente che lo ha svolto * e' uno studente, altrimenti si tratta di un autore o di un tutor che ha * testato l'esercizio. */ if ($id_profile == AMA_TYPE_STUDENT) { if (!ExerciseDAO::save($exercise)) { $errObj = new ADA_Error(NULL, translateFN('Errore nel salvataggio della risposta utente')); } // se l'esercizio appena corretto è un esercizio di sbarramento e lo studente lo ha superato, // aumenta di uno il livello dello studente if ($correttore->raiseUserLevel($exercise)) { $result = $dh->raise_student_level($sess_id_user, $sess_id_course_instance, 1); if (AMA_DataHandler::isError($result)) { $errObj = new ADA_Error($result, translateFN("Errore nell'aggiornamento dati utente")); } //$new_user_level = $user_level + 1; $new_user_level = $userObj->get_student_level($sess_id_user, $sess_id_course_instance); //$max_level = ADA_MAX_USER_LEVEL; // da config_install.inc.php $max_level = $dh->get_course_max_level($sess_id_course); if ($new_user_level >= $max_level) { // se è l'ultimo esercizio (ovvero se il livello dello studente è il massimo possibile)