You are here

function opigno_tincan_api_quiz_statements_tincan_question_statement_short_answer_alter in Opigno TinCan API 7

File

modules/opigno_tincan_api_quiz_statements/opigno_tincan_api_quiz_statements.questions_alter.inc, line 249

Code

function opigno_tincan_api_quiz_statements_tincan_question_statement_short_answer_alter(TinCan\Statement &$statement, $question, $answers) {

  // If the question is manually validated, the variables are not in the same place
  if ($question->correct_answer_evaluation == 3) {

    /******
     ** Set the result
     ***/
    $answer = short_answer_get_answer($question->nid, $question->vid, $answers[0]['result_id']);
    _opigno_tincan_api_set_result($statement, $answer['score'], $answer['rel_max_score'], null, $answer['answer']);

    /******
     ** Set the interaction type properties
     ***/
    $objectDefinition = _opigno_tincan_api_get_object_definition($statement);
    $objectDefinition
      ->setInteractionType(OpignoTincanApiTinCanInteractionTypes::$fill_in);
  }
  else {

    /******
     ** Set the result
     ***/
    _opigno_tincan_api_set_result($statement, $answers[0]['score'], $question->max_score, $question->correct, $answers[0]['answer']);

    /******
     ** Set the interaction type properties
     ***/
    $objectDefinition = _opigno_tincan_api_get_object_definition($statement);
    $objectDefinition
      ->setInteractionType(OpignoTincanApiTinCanInteractionTypes::$fill_in);
    $objectDefinition
      ->setCorrectResponsesPattern(array(
      $question->correct_answer,
    ));
  }
}