$id_course = $courseInstanceObj->id_corso; $start_date = AMA_DataHandler::ts_to_date($courseInstanceObj->data_inizio, "%d/%m/%Y"); $history = ''; if ($id_course) { // get object course $courseObj = read_course_from_DB($id_course); if (is_object($courseObj) && !AMA_dataHandler::isError($courseObj)) { $course_title = $courseObj->titolo; //title $id_toc = $courseObj->id_nodo_toc; //id_toc_node } else { $errObj = new ADA_error(translateFN("Corso non trovato"), translateFN("Impossibile proseguire.")); } } $studentObj = read_user_from_DB($id_student); if (is_object($studentObj) && !AMA_dataHandler::isError($studentObj)) { if ($studentObj instanceof ADAPractitioner) { /** * @author giorgio 14/apr/2015 * * If student is actually a tutor, build a new student * object for history and evaluation purposes */ $studentObj = $studentObj->toStudent(); } $studentObj->set_course_instance_for_history($id_course_instance); $id_profile_student = $studentObj->tipo; $user_name_student = $studentObj->username; $student_name = $studentObj->nome . " " . $studentObj->cognome; $user_historyObj = $studentObj->history;
$msg = $errObj->errorMessage(); header("Location:{$error_page}?err_msg={$msg}"); exit; } else { $course_title = $courseObj->titolo; //title $id_toc = $courseObj->id_nodo_toc; //id_toc_node $course_family = $courseObj->template_family; } } else { $errObj = new ADA_error(translateFN("Corso non trovato"), translateFN("Impossibile proseguire.")); } // ****************************************************** // get user object $userObj = read_user_from_DB($sess_id_user); if (is_object($userObj) && !AMA_dataHandler::isError($userObj)) { $id_profile = $userObj->tipo; $user_name = $userObj->username; $user_type = $userObj->convertUserTypeFN($id_profile); $user_historyObj = $userObj->history; $user_level = $userObj->get_student_level($sess_id_user, $sess_id_course_instance); $user_family = $userObj->template_family; } else { $errObj = new ADA_error(translateFN("Utente non trovato"), translateFN("Impossibile proseguire.")); } // ****************************************************** // LAYOUT if (isset($family) and !empty($family)) { // from GET parameters $template_family = $family;
$errObj = new ADA_Error(NULL, translateFN("L'oggetto in sessione non è un esercizio ADA")); } if (isset($ripetibile)) { $exercise->setRepeatable(true); } if (isset($punteggio)) { $exercise->setRating($punteggio); } $exercise->setTutorComment($comment); if (!ExerciseDAO::save($exercise)) { //print("Errore nel salvataggio dell'esercizio<BR>"); $errObj = new ADA_Error(NULL, translateFN("Errore nel salvataggio dell'esercizio")); } unset($_SESSION['exercise_object']); if (isset($messaggio)) { $studentObj = read_user_from_DB($exercise->getStudentId()); // controllo errore $subject = translateFN('Esercizio: ') . $exercise->getTitle() . "\n"; //if ($exe_type == 4) $testo .= "\n" .$correzione; /* * I problemi potrebbero verificarsi qui. */ //$res = spedisci_messaggioFN($comment,$subject,$studentObj->username, $user_name); $message_ha = array('destinatari' => $studentObj->getUserName(), 'data_ora' => 'now', 'tipo' => ADA_MSG_SIMPLE, 'mittente' => $user_uname, 'testo' => $comment, 'titolo' => $subject, 'priorita' => 2); $mh = MessageHandler::instance(MultiPort::getDSN($sess_selected_tester)); $result = $mh->send_message($message_ha); if (AMA_DataHandler::isError($result)) { // GESTIRE ERRORE } } $history = 'fine della correzione<br />';
require_once MODULES_TEST_PATH . '/include/init.inc.php'; //needed to promote AMADataHandler to AMATestDataHandler. $sess_selected_tester is already present in session $GLOBALS['dh'] = AMATestDataHandler::instance(MultiPort::getDSN($_SESSION['sess_selected_tester'])); switch ($_GET['mode']) { default: $res = false; break; case 'comment': $res = $dh->test_updateAnswer($_GET['id_answer'], array('commento' => $_POST['comment'])); if (!$dh->isError($res) && $res && $_POST['notify'] == true) { $answer = $dh->test_getAnswer($_GET['id_answer']); $answer = $answer[0]; $history = $dh->test_getHistoryTest(array('id_history_test' => $answer['id_history_test'])); $history = $history[0]; $test = $dh->test_getNode($history['id_nodo']); $studentObj = read_user_from_DB($answer['id_utente']); if (!$dh->isError($studentObj) && !$dh->isError($answer) && !$dh->isError($history) && !$dh->isError($test)) { $what = ''; $link = ''; if ($test['tipo'][0] == ADA_TYPE_TEST) { $what = 'test'; $name = 'test'; } else { if ($test['tipo'][0] == ADA_TYPE_SURVEY) { $what = 'survey'; $name = 'sondaggio'; } } $link = ''; if ($what) { $href = MODULES_TEST_HTTP . '/history.php?op=' . $what . '&id_course=' . $answer['id_corso'] . '&id_course_instance=' . $answer['id_istanza_corso'] . '&id_test=' . $test['id_nodo'] . '&id_history_test=' . $answer['id_history_test'];
/** * Wrapper function for read_user_from_DB. * @see read_user_from_DB */ function read_user($id_user = NULL) { /* * Return the user object in sess_userObj */ if (is_null($id_user)) { $sess_userObj = $_SESSION['sess_userObj']; if ($sess_userObj instanceof ADAGenericUser) { return $sess_userObj; } return new ADA_Error(NULL, translateFN('Errore in lettura oggetto utente in sessione'), 'read_user', NULL, NULL, NULL, TRUE); } // FIXME: qui $id_user diventa ZERO. VEDIAMO DI CAPIRE PERCHE'. //$id_user = is_int($id_user) ? $id_user : 0; if (isset($_SESSION['sess_id_user']) && $id_user === $_SESSION['sess_id_user']) { $sess_userObj = $_SESSION['sess_userObj']; if ($sess_userObj instanceof ADAGenericUser && $sess_userObj->getId() == $id_user) { // QUI DEVO VEDERE QUALI SONO I TESTER ASSOCIATI A QUESTO UTENTE. $user_testersAr = $GLOBALS['common_dh']->get_testers_for_user($id_user); if (!AMA_Common_DataHandler::isError($user_testersAr)) { $sess_userObj->setTesters($user_testersAr); $_SESSION['sess_userObj'] = $sess_userObj; } return $_SESSION['sess_userObj']; } } return read_user_from_DB($id_user); }