function opigno_tincan_api_quiz_statements_tincan_question_statement_multichoice_alter in Opigno TinCan API 7
File
- modules/
opigno_tincan_api_quiz_statements/ opigno_tincan_api_quiz_statements.questions_alter.inc, line 3
Code
function opigno_tincan_api_quiz_statements_tincan_question_statement_multichoice_alter(TinCan\Statement &$statement, $question, $answers) {
/******
** Set the result
***/
$user_answers = _opigno_tincan_api_get_multichoice_user_answers($question->nid, $question->vid, $answers[0]['result_id']);
$response = implode('[,]', $user_answers);
_opigno_tincan_api_set_result($statement, $answers[0]['score'], $question->max_score, $question->correct, $response);
/******
** Set the interaction type properties
***/
$objectDefinition = _opigno_tincan_api_get_object_definition($statement);
$objectDefinition
->setInteractionType(OpignoTincanApiTinCanInteractionTypes::$choice);
$choices = array();
$correct = array();
foreach ($question->alternatives as $alternative) {
$choices[] = array(
'id' => $alternative['id'],
'description' => array(
'en-US' => $alternative['answer']['value'],
),
);
if ($alternative['score_if_chosen'] > 0) {
$correct[] = $alternative['id'];
}
}
$objectDefinition
->setChoices($choices);
$objectDefinition
->setCorrectResponsesPattern(array(
implode('[,]', $correct),
));
}