/** * Save question answer * * @param * @return */ function saveQuestionAnswer($a_type, $a_id, $a_answer) { global $ilUser, $ilLog, $ilDB; //$a_type = "assOrderingQuestion"; //$a_id = 74; //$a_answer = '{"tries":1,"wrong":2,"passed":false,"answer":[true,true,false,true,false],"interactionId":null,"choice":["1","2","5","4","3"]}'; $ilLog->write($a_type); $ilLog->write($a_id); $ilLog->write($a_answer); include_once "./Services/JSON/classes/class.ilJsonUtil.php"; $answer = ilJsonUtil::decode($a_answer); $tries = $answer->tries; $passed = $answer->passed; $choice = $answer->choice; $points = ilPageQuestionProcessor::calculatePoints($a_type, $a_id, $choice); $ilLog->write("Points: " . $points); $set = $ilDB->query("SELECT * FROM page_qst_answer WHERE " . " qst_id = " . $ilDB->quote($a_id, "integer") . " AND " . " user_id = " . $ilDB->quote($ilUser->getId(), "integer")); if ($rec = $ilDB->fetchAssoc($set)) { $ilDB->manipulate("UPDATE page_qst_answer SET " . " try = try + 1," . " passed = " . $ilDB->quote($passed, "integer") . "," . " points = " . $ilDB->quote($points, "float") . " WHERE qst_id = " . $ilDB->quote($a_id, "integer") . " AND user_id = " . $ilDB->quote($ilUser->getId(), "integer")); } else { $ilDB->manipulate("INSERT INTO page_qst_answer " . "(qst_id, user_id, try, passed, points) VALUES (" . $ilDB->quote($a_id, "integer") . "," . $ilDB->quote($ilUser->getId(), "integer") . "," . $ilDB->quote(1, "integer") . "," . $ilDB->quote($passed, "integer") . "," . $ilDB->quote($points, "float") . ")"); } //$ilLog->write("tries: ".$tries); //$ilLog->write("passed: ".$passed); //$ilLog->write("points: ".$points); exit; }