function _opigno_tincan_api_send_quiz_results in Opigno TinCan API 7
2 calls to _opigno_tincan_api_send_quiz_results()
- opigno_tincan_api_quiz_finished in modules/
opigno_tincan_api_quiz_statements/ opigno_tincan_api_quiz_statements.module - opigno_tincan_api_quiz_scored in modules/
opigno_tincan_api_quiz_statements/ opigno_tincan_api_quiz_statements.module
File
- modules/
opigno_tincan_api_quiz_statements/ opigno_tincan_api_quiz_statements.module, line 72
Code
function _opigno_tincan_api_send_quiz_results($quiz, $score, $rid) {
/**
* - When user finish a quiz
* Actor: user
* Verb: xAPI/passed || xAPI/failed
* Object: xAPI/lesson
* Result: Get final quiz result
* Context: Course
*/
// Know if the user has passed or failed this quiz
$passed = $score['percentage_score'] >= $quiz->pass_rate;
//////
// Statement creation
$statement = _opigno_tincan_api_statement_base_creation($passed ? OpignoTincanApiTinCanVerbs::$passed : OpignoTincanApiTinCanVerbs::$failed, OpignoTincanApiTinCanActivityDefinitionTypes::$lesson, $quiz);
if ($statement === false) {
return;
}
//////
// Context creation
$context = new TinCan\Context();
// If there is a parent, set it.
if (isset($quiz->og_group_ref[LANGUAGE_NONE])) {
$parent_courses_nids = array_map(function ($e) {
return $e['target_id'];
}, $quiz->og_group_ref[LANGUAGE_NONE]);
_opigno_tincan_api_context_set_parents($context, $parent_courses_nids, OpignoTincanApiTinCanActivityDefinitionTypes::$course);
}
_opigno_tincan_api_context_set_language($context, $quiz->language);
$result = _opigno_tincan_api_get_result_data($rid);
if (!empty($result)) {
$duration = $result->time_end - $result->time_start;
_opigno_tincan_api_set_result($statement, $score['numeric_score'], $score['possible_score'], $passed, null, $duration);
}
_opigno_tincan_api_send_questions_results($quiz, $rid);
$statement
->setContext($context);
//////
// Sending statement
_opigno_tincan_api_send_statement($statement);
}