function _opigno_tincan_api_send_questions_results in Opigno TinCan API 7
1 call to _opigno_tincan_api_send_questions_results()
- _opigno_tincan_api_send_quiz_results 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 135
Code
function _opigno_tincan_api_send_questions_results($quiz, $rid) {
/**
* - When user answered a question
* Actor: user
* Verb: xAPI/answered
* Object: xAPI/question
* Result: Get this question result
* Context: Quiz
*/
// Take all the questions
$questions = _quiz_get_answers($quiz, $rid);
// Create the statement for each questions
foreach ($questions as $question) {
//////
// Statement creation
$statement = _opigno_tincan_api_statement_base_creation(OpignoTincanApiTinCanVerbs::$answered, OpignoTincanApiTinCanActivityDefinitionTypes::$question, $question);
if ($statement === false) {
return;
}
//////
// Context creation
$context = new TinCan\Context();
// Get course nids
$courses_nids = array();
if (!empty($quiz->og_group_ref[LANGUAGE_NONE]) && !empty($quiz->og_group_ref[LANGUAGE_NONE][0]['target_id'])) {
foreach ($quiz->og_group_ref[LANGUAGE_NONE] as $raw_course_nid) {
$courses_nids[] = $raw_course_nid['target_id'];
}
}
_opigno_tincan_api_context_set_language($context, $question->language);
_opigno_tincan_api_context_set_parents($context, _opigno_tincan_api_get_parent_quiz($question));
_opigno_tincan_api_context_set_grouping($context, $courses_nids, OpignoTincanApiTinCanActivityDefinitionTypes::$course);
$statement
->setContext($context);
//////
// Alter statement by question type
// Hook will looks like hook_tincan_question_statement_cloze_alter()
$hook = 'tincan_question_statement_' . $question->type;
drupal_alter($hook, $statement, $question, $question->answers);
//////
// Sending statement
_opigno_tincan_api_send_statement($statement);
}
}