opigno_tincan_api_quizfileupload_statements.module in Opigno TinCan API 7
File
modules/opigno_tincan_api_quizfileupload_statements/opigno_tincan_api_quizfileupload_statements.module
View source
<?php
module_load_include('inc', 'opigno_tincan_api', 'includes/opigno_tincan_api.statements_func');
module_load_include('inc', 'opigno_tincan_api', 'includes/opigno_tincan_api.tincan_interaction_types');
function opigno_tincan_api_quizfileupload_statements_tincan_question_statement_quizfileupload_alter(TinCan\Statement &$statement, $question, $answers) {
$user_score = _opigno_tincan_api_get_quizfileupload_user_score($question->nid, $question->vid, $answers[0]['result_id']);
if (empty($user_score)) {
$user_score = null;
}
_opigno_tincan_api_set_result($statement, $user_score, $question->max_score, $question->correct);
$objectDefinition = _opigno_tincan_api_get_object_definition($statement);
$objectDefinition
->setInteractionType(OpignoTincanApiTinCanInteractionTypes::$other);
}
function _opigno_tincan_api_get_quizfileupload_user_score($question_nid, $question_vid, $rid) {
$scores = db_query('
SELECT score
FROM {quiz_fileupload_user_answers} qua
WHERE result_id = :rid
AND question_nid = :qnid
AND question_vid = :qvid
', array(
':rid' => $rid,
':qnid' => $question_nid,
':qvid' => $question_vid,
))
->fetchCol();
return empty($scores) ? null : $scores[0];
}